EnOcean EDK350/TCM320 (USB) - Telegramm empfangen/versenden

Gast #3520041
Lesenswert?
• ▲
▼
Hallo,
ich habe das EDK 350 vor mir liegen und versuche die empfangenen 
Telegramme/Daten des Funktranceivermoduls USB300 bzw. TCM320 aus dem 
EDK350 über den installierten virtuellen COM-Port auszulesen bzw. 
Telegramme entsprechend zu senden. Beim empfangen der Telegramme kann 
ich jedoch keinen entsprechendes Profil finden, dass der empfangenen 
Daten entspricht. Irgendetwas mache ich wohl noch falsch. Ich bin noch 
neu auf diesem Gebiet. Laut der ESP3-Dokumentation von EnOcean müsste 
ich nach der UART das Profil bestimmen können. Jedoch bekomme ich weder 
die überall dokumentierten Eingangsbits "A5 5A" geliefert. Ich habe 
dieses Tests mit einem einfach Schalter PTM210 durchgeführt. Das was ich 
in DolphinView und das was ich auslese sind komplett unterschiedliche 
Daten/Telegramme. Ich weiß beim besten Willen zur Zeit nicht wo ich 
einen Denkfehler habe bzw. wo ich etwas vergessen habe. Habe dies durch 
ein einfaches Programm in c# realisiert. Ein Codeausschnitt nachfolgend:
[code]void comPort_DataReceived(object sender, 
SerialDataReceivedEventArgs e) {
           int bytes = comPort.BytesToRead;
           //create a byte array to hold the awaiting data
           byte[] comBuffer = new byte[bytes];
           //read the data and store it
           comPort.Read(comBuffer, 0, bytes);
           //display the data to the user
           DisplayData(MessageType.Incoming, ByteToHex(comBuffer) + 
"\n");
        }

        private string ByteToHex(byte[] comByte)
        {
            //create a new StringBuilder object
            StringBuilder builder = new StringBuilder(comByte.Length * 
3);
            //loop through each byte in the array
            foreach (byte data in comByte)
                //convert the byte to a string and add to the 
stringbuilder
                builder.Append(Convert.ToString(data, 16).PadLeft(2, 
'0').PadRight(3, ' '));
            //return the converted value
            return builder.ToString().ToUpper();
        }[\code]

Vielleicht hat jemand von Euch eine Idee.
Im Voraus danke für Eure Mühen!

Gruß,
Milo
Gast #3991031
Lesenswert?
• ▲
▼
Es kann sein, dass die Daten nicht alle auf einmal gelesen werden... Du 
musst also auf das Startbyte warten und dann bis zum Ende des Pakets 
lesen.  Die Länge kann ANhand der weiteren Informationen in dem Paket 
bestimmt werden...

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.