Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#35

AW: OnChangeValue ?

  Alt 15. Jan 2016, 18:27
Ich verstehe noch immer nicht, wo das Problem sein soll. Was ich bisher, nachdem nun weitere Informationen vorliegen, verstanden habe:
  1. Eine CNC-Maschine sendet bei Änderung eines ihrer Parameter einen Bytecode an die serielle Schnittstelle.
  2. Ein eigenständiger Thread pollt diesen Input im Millisekunden-Abstand.
  3. Weicht der eingegangene Byetcode vom voherigen ab, soll ein Ereignis ausgelöst werden.
Hier muß man sich doch einfach nur den eingegangenen Bytecode merken und mit dem aktuellen vergleichen. Weist der neue Bytecode Unterschiede zum gespeicherten Bytecode auf, wird der neue Bytecode gespeichert und danach ein Ereignis ausgelöst, auf das eine Methode in der aufrufenden Unit oder Form reagiert. Da der gemerkte Bytecode außerhalb des pollenden Threads nicht verändert wird, ist auch keine Synchronisation notwendig.

Nachtrag: Es gibt doch diese AsyncPro-Komponente, mit der man, soweit ich informiert bin, alles handeln kann, was mit seriellen Schnittstellen zusammenhängt. Ich bin mir sicher, daß diese Komponentensammlung auch die Möglichgkeit beinhaltet, einen Com-Port zu überwachen und bei gewissen Änderungen ein Ereignis auszulösen:
The TApdComPort is designed to interface with a standard RS-232 or RS-485 serial port via the Windows communication drivers. (Quelle: DevGuide, S. 11)

Triggers and trigger handlers

Async Professional uses the term "trigger" for any serial port action that can cause its communications dispatcher to generate a VCL event. There are four types of triggers:
  • Data available – received data ist available
  • Data match trigger – a particular character or character string was received.
  • Status trigger – a status event occured
  • Time trigger – a timer expired.

Quelle: Reference Guide, Seite 22

Geändert von Perlsau (15. Jan 2016 um 18:50 Uhr) Grund: Nachtrag
  Mit Zitat antworten Zitat