MSCOMM является мощным последовательным контролем связи для Microsoft. Следующие коды обрабатываются в шестнадцатеричном направлении для отправки и получения.
вар
SendData: Array [1..10] of Char;
Redata: массив варианта;
Sendstr: String;
Restr: String;
я: longint;
Начинать
mscomm1.commport: = 1; // Укажите порт
mscomm1.settings: = '9600, n, 8,1'; // Другие параметры
mscomm1.inbuffersize: = 1024;
mscomm1.outbuffersize: = 1024;
mscomm1.inputmode: = cominputmodebinary;
mscomm1.inputlen: = 0;
mscomm1.sthreshold: = 0;
mscomm1.inbuffercount: = 0;
mscomm1.outbuffercount: = 0;
mscomm1.portopen: = true;
Mscomm1.rthreshold: = 16; // Установите, сколько байтов для получения для создания события OnComm
SendData [1]: = Chr ($ 06);
SendData [2]: = Chr ($ 03);
SendData [3]: = Chr ($ 00);
SendData [4]: = Chr ($ 03);
SendData [5]: = Chr ($ 10);
sendstr: = '';
для i: = 1-5
sendstr: = sendstr + senddata [i];
mscomm1.Output: = sendstr;
i: = 0;
bzw: = false;
повторить
сон (10);
Application.ProcessMessages;
i: = i + 1;
Если я> 30000, тогда
Начинать
ShowMessage ('отправить тайм -аут!');
перерыв;
конец;
Пока bzw = true;
Redata: = mscomm1.input;
Restr: = '';
для i: = 0 в vararrayhighbound (redata, 1)
Restr: = Restr + inttoHex (redata [i], 2) + '';
mscomm1.portopen: = false;
flatmemo1.text: = Restr;
конец;
// Событие OnComm
Процедура tform1.mscomm1comm (отправитель: tobject);
Начинать
case mscomm1.commevent of
comevreceive: bzw: = true;
конец;
конец;
Наконец, при выпуске программного обеспечения вы должны принести файл MSCOMM32.ocx.