Hallo zusammen,
ich habe ein Problem mit der Komponente TSerial. Ein Mikrocontroller sendet unmittelbar hintereinander Befehle über RS232 an den PC, alle Befehle werden mit #13 abgeschlossen. Ich habe nun bei TSerial #13 als EventChar eingetragen. Meiner Auffassung nach sollte sieser Eventhandler bei jeder empfangenen #13 aufgerufen werden, wird er aber nicht
Wenn ich einen Breakpoint setze, sehe ich, dass in dem empfangenen String (wird mit Serial1.ReceiveText eingelesen) immer mehre Befehle hintereinander stehen, also z.B. "gp0#13gp1#ang1023". Das sind ganau die Befehle, die hintereinander im Timer-Interrupt des Mikrocontrollers gesendet werden. Es scheint also, als ob der PC jedesmal zwei #13 einfach ignoriert.
Ist also die Interrupt-Latenz des PCs tatsächlich zu groß? Als Alternative habe ich schon mal einen kleinen Parser geschrieben, der den String dann wieder "zerpflückt". So muss ich aber beim Mikrocontroller, wenn alle Befehle rausgeschickt wurden nochmal ein extra EventChar senden...
Weiß jemand Rat?
P.S. Ich hoffe ich bin inder richtigen Rubrik, wusste nicht wo das sonst hinpasst...