Hallo, ich möchte eine "quick and dirty" Lösung programmieren, mir der man die Messdaten ansehen und weiterverarbeiten kann. Es gibt schon so ein Programm (KeyWizard von GretagMacBeth - der Hersteller des Gerätes) - macht genau das selbe. Speichert oder zeigt die Daten sofort an. Ich will aber meine eigene, eher experimentelle Version programmieren. Ich versuche gerade über serielle Schnittstelle mit dem Spektralmessgerät zu kommunizieren. Ich benutzte hierfür Flash+Zinc (Compiler für exe) mit ComPort API > [http://www.multidmedia.com/support/livedocs/index.php?url=class.php?action=class¬class=COMPort] Serial Interface "HOW TO" für Spectrolino > [http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_serial_5-en.pdf] Anhand dieser Dokumentation habe ich versucht das Gerät zu initialisieren usw. - es klappt nicht so richtig. Das Gerät sollte eigentlich auf die Befehle reagieren (reply) aber da tut sich nichts und beim manuellen Auslösen der Messtaste am Gerät liefert der sehr knappe Daten. Hm... Die ComPort API ist auch so ziemlich abgespeckt - da fehlen einige Befehle - ich habe die Trace-Protokolle vom Herstelleprogramm und meinem vergliechen - wichtige fehlende SET Befehle IOCTL_SERIAL_SET_TIMEOUTS IOCTL_SERIAL_SET_WAIT_MASK IOCTL_SERIAL_SET_HANDFLOW Es ist möglich mit Zinc DLL API eine dll anzusprechen und steuern > [http://www.multidmedia.com/support/livedocs/index.php?url=class.php?action=class¬class=DLL] Was würdet ihr mir empfehlen wie es fortzufahren ist: eine Möglichkeit wäre z.B. mit Delphi und einer COM Komponente eine DLL zu kompilieren oder gibt es schon kompilierte (mit Dokumentation) die ich einfach nutzen kann? Falls nicht - welche Komponente würdet ihr mir empfehlen damit es übersichtlich bleibt und auch funktioniert. Welche Methoden wären vielleicht sogar besser? Ich danke euch
Dein Problem scheint also viel weniger die Kommunikation mit dem Gerät zu sein, sondern eher, wie man aus Flash heraus die serielle Schnittstelle anspricht.
Serge Berlin wrote: > Ich versuche gerade über serielle Schnittstelle mit dem > Spektralmessgerät zu kommunizieren. > Ich benutzte hierfür Flash+Zinc (Compiler für exe) mit ComPort API > > [http://www.multidmedia.com/support/livedocs/index.php?url=class.php?action=class¬class=COMPort] > > Serial Interface "HOW TO" für Spectrolino > > [http://www.mcolorcontrol.com/_pdf/Sl/spectrolino_serial_5-en.pdf] > Anhand dieser Dokumentation habe ich versucht das Gerät zu > initialisieren usw. - es klappt nicht so richtig. Ich geh normalerweise so vor: Bevor ich auch nur 1 Zeile Code schreibe, hänge ich das Gerät an die Serielle Schnittstelle, starte Hyperterm oder was ich sonst als Terminalprogramm vorrätig habe und versuch erst mal das Gerät 'mit der Hand' über die serielle anzusprechen. Das gibt normalerweise einen guten Überblick darüber, wie sich das Gerät verhält, klärt Unklarheiten in der Doku, zeigt auf wo die Doku fehlerhaft ist etc. Auch kann man so leicht und schnell ausprobieren, wie sich Konfigurationsänderungen auswirken, wie das Gerät antwortet, was im Fehlerfall passiert, etc. Nach einer Zeit des Spielens kristallisieren sich dann die Sequenzen heraus, die ich zu benutzen gedenke. Und erst dann wird Editor + Compiler angeworfen.
Hm... so oder so ähnlich hatte ich zuerst auch gemacht. Ich hatte über Terminal (simples Delphi Beispiel) versucht erst ein Mal das Gerät zu initialisieren, Terminal, was ich mit Flash+Zinc (DLL API) selbst programmiert habe, wo man Codes bzw. Code-Sequenzen ausführt und auch im Serial Interface Tracer(Serial Port Monitor von eltima) - das Gerät antwortet nicht. Decimal Initialisierungssequenz: ; 0#13#10 ; 43#13#10 ; 90 1 4 5#13#10 @kbuchegg : ich versuch über Hyperterm und berichte später Danke für den Einsatz :-)
Du solltest die Kommunikation zwischen der bestehenden Software und dem Gerät abhören, dann findest Du am leichtesten heraus, wie die Feinheiten des Protokolles aufgebaut sind.
Also das #13#10 sieht verdammt nach einem \r\n aus - bist du dir sicher dass du die Daten korrekt sendest? Baudrate richtig eingestellt? Verwende einmal hterm, damit solltest du schonmal weiterkommen.
Hallo Leute! Ich danke euch für die Hilfe - habe die Ursache gefunden - es lag alleine an der Baudrate, zwar unterstützt das Gerät von 110-57600, aber funktionieren tut es nur mit 19200. Seltsam, aber wahr! Auf jeden Fall funktioniert jetzt alles. Gruss
Eigentlich gar nicht so seltsam. Oftmals hast du einen Befehl im Gerät mit dem du die Baudrate umstellen kannst (trotzdem ist sie immer auf eine eingestellt). Ausnahme war nur mal ein HP Switch, der konnte mit ein paar Tastendrücken (Enter) die Baudrate automatisch einstellen :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.