TChannelData = record ID: Integer; RxData: array of Byte; TxData: array of Byte; end;
TI87017Module = class public ComPort: TComPort; Channels: array[0..19] of TChannelData; procedure ReadData(ChanID: Integer; var Data: array of Byte); procedure WriteData(ChanID: Integer; const Data: array of Byte); end;
Периодически нужно читать ком-порт, разгребать полученные данные и раскидывать по каналам в свойство RxData. И заодно собирать данные для отправки из свойств TxData, трансформировать в протокол модуля и отправлять в порт.
Я обычно создаю метод класса Tick(), который вызывается с маленькими интервалами по таймеру или в цикле фонового процесса. И в нем происходит чтение из порта, отправка команд и данных.
Я обычно создаю метод класса Tick(), который вызывается с маленькими интервалами по таймеру или в цикле фонового процесса. И в нем происходит чтение из порта, отправка команд и данных.
ну я читаю ответ после паузы сразу для каждого модуля свои методы которые возвращают уже сформированные данные