INFO - FAQ - CC2-Forum - CCPro-Forum |
|
Hallo Florian, Die einzige Möglichkeit, das eDIP an einer CC1 zu betreiben, ist die ohne Smart-Protocol. Das liegt u.a. an der fehlenden echten Stringverarbeitung. Auch sollte zum eDIP nicht Klartext(ASCII-Mode) gesendet werden, sondern im Binärmode. Hier schleichen sich beim Programmieren weniger Fehler ein. Die Prüfsumme wird folgendermaßen berechnet: Summer aller gesendeten Byte-Werte modulo 256. Wenn Du also das Kommando "ESC Y H 50" senden willst, müßte die Ausgabe folgendermaßen aussehen: put &h11 ' <DC1> put 4 ' Len put 27 'ESC print "YH"; put 50 put &h11 + 4 + 27 + "Y" + "H" + 50 ' Für "Y" und "H" die ASCII-Codes 'Hier ist kein Modulo erforderlich, da bei Byte-Sendekommandos nur die unteren 8 Bit beachtet werden Dieser Datenrahmen wird dann mit ACK oder NOACK quittiert. Spätestens beim Empfang muß auf jeden Fall ohne dem Protokoll gearbeitet werden, da allein schon der beschränkte Empfangspuffer der CC1 überlaufen würde. Ich kann eigentlich nur empfehlen, das eDIP mit Controllern zu betreiben, die mehr Ressourcen bieten, wie die CC2 oder CC-Pro. MfG André H. > Hallo, > > Ich hoffe das Thema langweilt euch nicht... > Also ich hab mir kürzlich bei Conrad eine C-Control M-Unit 2.0 und ein Application Board gekauft. > Ich habe vor damit eine Schwimmbadsteuerung zu realisieren mit Bedienung via eDip240. Das Display habe ich noch nicht, ich simuliere das derzeit noch am PC. > Also ich habe einiges an erfahrung mit Visual Basic gesammelt und daher ist mir dieses Basic++ einigermaßen zugänglich :) > zu meinem Problem: Ich habe versucht den Protokollrahmen welches ja vom eDip gefordert wir zu erzeugen, doch so ganz will es nicht funktionieren, d.h. es funktioniert nur wenn ich das Smartprotokoll deaktiviere. Ein > Hier mein momentaner Code (Bitte nicht schlagen) > > befehl = "#TA #GD 0,0,239,127" > bezeichner = "DC1" > bytes = LEN(befehl) > checksum = Len(bezeichner) + 1 + Len(befehl)' mod 256 > print bezeichner & bytes & befehl & checksum > > > (Das DC1 steht in dreiecksklammern, das schluckt aber der Browser...) > Das kommt am Terminal raus: > > DC119#TA #GD 0,0,239,12725 > > > ich denke ich hab da ein grundsätzliches verständnis problem, ich weis z.B. nicht wie ich die checksum vom übrigen teil trennen muss. ein CR habe ich schon versucht > > Hoffe ihr könnt mir helfen... > > Gruß Florian |
Antwort schreiben |