Freitag, 9. November 2012

Aktuelle Liste der anwesenden Bewohner - Implementierung Teil 1

Während Christian Venga sich unter Einsatz seines Lebens damit beschäftigt die Belegung des DVI/HDMI-Adapter herauszufinden, möchte ich mich kurz mit einem Teil der Softwareimplementierung befassen.

Wir haben als Erstes damit begonnen die Funktionalität fertigzustellen, die es ermöglicht, die gerade anwesenden Bewohner anzuzeigen. Ein erster Schritt dahin besteht darin, anhand einer Liste die momentan im Netzwerk verfügbaren Geräte zu ermitteln. Wir nehmen dabei eine simple XML-Datei zu hilfe, um nicht groß eine Datenbankinfrastruktur aufbauen zu müssen.

Diese sieht wie folgt aus und beinhaltet eine Liste der User mit Namen, Hostname des Smartphones und ein Statusinformation, die anzeigt, ob das Gerät im lokalen Netzwerk ist. Wir werden diese Information später durch unser Programm dynamisch ändern.

 
  *Name*
  *Hostname oder IP*
  false
 

Wir werden die XML-Datei jetzt mithilfe von Java einlesen und dann die aktualisierten Daten in die Datei schreiben. Da wir vielleicht später noch einmal XML-Dateien lesen müssen, erstellen wir uns erstmal eine Hilfsklasse, die den Zugriff und Speicherung übernimmt.
import java.io.File;
import java.io.PrintStream;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.Transformer;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;

import org.w3c.dom.Document;

/**
 * @author Vengadivision
 *
 */
public class XmlIO {

 /**
  * @param FilePath
  * @return
  */
 public static Document getXmlByFilePath(String FilePath) {
  DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  DocumentBuilder builder = null;
  try {
   builder = factory.newDocumentBuilder();
   Document document = builder.parse(new File(FilePath));
   return document;
  } catch (Exception e) {
   return null;
  }

 }

 /**
  * @param FilePath
  * @param document
  */
 public static void writeXmlByFilePath(String FilePath, Document document) {
  DOMSource source = new DOMSource(document);

  PrintStream ps;
  try {
   ps = new PrintStream(FilePath);
   StreamResult result = new StreamResult(ps);

   TransformerFactory transformerFactory = TransformerFactory
     .newInstance();
   Transformer transformer;
   transformer = transformerFactory.newTransformer();
   transformer.transform(source, result);
  } catch (Exception e) {
   e.printStackTrace();
  }

 }

}
Die beiden statischen Methoden sind denke ich soweit selbst erklärend. Mehr dann im nächsten Teil ;-)

Freitag, 2. November 2012

MDR-Stecker - Belegung

Hier schonmal auf Anfrage die Belegung des MDR Steckers. Die Pins die ich nicht beschriftet habe, müssen wir nochmal nachmessen. Die Liste erhebt keinen Anspruch auf Richtigkeit. Sobald wir die Gelegenheit haben (also wenn das Kabel und der Stecker da ist), werden wir es nachprüfen und die Tabelle ggf. korrigieren.

MDR-PinBelegung
1DDC Masse
2TMDS Clock Abschirmung
3DDC 5V Versorgungsspannung
4TMDS Data 0-
5TMDS Data 0+
6frei
7frei
8frei
9SDA (Pin 16 am HDMI)
10TMDS 1 Abschirmung
11frei
12TMDS 2-
13TMDS 2+
14TMDS Clock-
15TMDS Clock+
16frei
17TMDS 0 Abschirmung
18SCL (Pin 15 am HDMI)
19frei
20frei
21frei
22TMDS 1-
23TMDS 1+
24Hot Plug
25TMDS 2 Abschirmung
26frei
Die beiden fehlenden Pins sind ergänzt. Danke an den annonymen Kommentator ;) Die Belegung der HDMI-Stecker ist übrigens bei Wikipedia zu finden!
Blogverzeichnis - Blog Verzeichnis bloggerei.de