var
SendData:array[0..5]of byte;
begin
SendData[0]:=byte($02);
SendData[1]:=byte($01);
SendData[2]:=byte(strToint('$'+s));
.....
SendBuffer[5]:=byte($03);
Comm1.WriteCommData(@SendData,sizeof(SendData));
SendData:array[0..5]of byte;
begin
SendData[0]:=byte($02);
SendData[1]:=byte($01);
SendData[2]:=byte(strToint('$'+s));
.....
SendBuffer[5]:=byte($03);
Comm1.WriteCommData(@SendData,sizeof(SendData));
Comm1.WriteCommData(@SendPack,Length(SendPack));
comm1.StartComm; //打开串口
sleep(10); //打开串口后延迟(必要,时间长短可根据具体情况调整)
sbuf[1]:=byte($2e); //
sbuf[2]:=byte($5a); //命令号 ,表示开始送数
if xtsdz(bzc+'条屏序列号','81',bjjh)='82' then sbuf[3]:=byte($82); //条屏唯一序列号,第二号屏:82
if xtsdz(bzc+'条屏序列号','81',bjjh)='81' then sbuf[3]:=byte($81); //条屏唯一序列号,第一号屏:81
sbuf[42]:= byte($ff);//送数结束符。
for i:=1 to 3 do
begin
comm1.writecommdata(@sbuf[i],1); //逐位送命令号和条屏序列号
sleep(10); //串口送数后的时间延迟(必需)
end;
xxx:=str0+space(38); //条屏需要显示的内容,这里可以直接取分发程序原拼好的字符串。 此处为测试
xxx:= copy(xxx,1,38); //以上两句为保证送条屏的字串为38位,实际可能不需要。
comm1.writecommdata(pchar(xxx),38); //开始送条屏数,需将拼好的串转换为PCHAR,后面附上长度。
sleep(10); //串口送数后的时间延迟(必需)
for i:=42 to 44 do
begin
comm1.writecommdata(@sbuf[42],1); //往条屏送结束符,可以多送几个,也可以只送一个。
sleep(10); //串口送数后的时间延迟(必需)
end;
comm1.StopComm; //关闭串口(对应打开串口,成对使用)。