有谁做过电子天平的管理程序,能否把里面的通讯参数设置告诉小弟。
解决方案 »
- image1.Picture.Bitmap.Canvas.Handle和Image1.Canvas.Handle有区别吗?
- DBGrid1CellClick不能将记录显示出来
- Delphi 导出Excel时,相邻两个单元格数据如果相同,就合并。
- 要得到汉字的竖排点阵数据,有什么方法
- 含小数点的字符串转换为数值型
- 主表记录为新增且没有POST时,从数据表添加的记录POST后立即不见,如何解决?
- 如何得到IMAGE中BMP图的分辨率
- 一些空间厂商的CGI程序可以在线、即时开通注册域名或空间...Apache上比较好弄...可是在IIS上如何实现?
- N难的题,哪位大虾能帮帮小弟?
- 请问哪里可以下载到Delphi 6自带的InstallShield Express 3.0(高分!!!)
- 如何对文件进行修改
- 一个非常简单的循环里面查找的问题
pc端(9针) 3-----------2 仪器端(9针) 5-----------5
2-----------3
pc端(25针) 3-----------2 仪器端(25针) 7-----------7 2-----------2
pc端(25针) 3-----------3 仪器端(9针) 7-----------5 2-----------2
pc端(9针) 3-----------3 仪器端(25针) 5-----------7
moxa和瑞旺的。在控制面板中安装好后这些串口扩张口的串口号就是
com3,com4,com5,com6.......,
在编写程序的时侯,只要拉一个comdrv32控件在from上就建立了一个
串口连接,可以和一个仪器进行通讯了(一个控件连接一台仪器),然后
设置comport(端口号),comportspeed(拨特率),comportdatabits(数据位),comportstopbits(停止位)。建立com1ReceiveData事件接收数据,
建立Button1Click发送数据。
procedure TForm1.Button1Click(Sender: TObject);
begin
com1.SendByte($4C);//$4C是仪器左行的命令
ListBox1.Items.Add('左行@'+TimeToStr(Now));
end;procedure TForm1.Button12Click(Sender: TObject);
begin
com12.sendbyte($4B);//$4B是仪器测量的命令
ListBox1.Items.Add('测量@'+TimeToStr(Now));
end;procedure TForm1.com1ReceiveData(Sender: TObject; DataPtr: Pointer;
DataSize: Integer);
var P:pchar;
pp:byte;
//垂直偏差:水平偏差: 灯光强度:车灯高度:
czpc,sppc,dgqd,cdgd:string;
//ss:string;
s:string;
begin
P:=DataPtr;
pp:=ord(P^);
//ss:=inttohex(pp,2);
if pp=$45 then
D.sendbyte(ToTransData);
if PP=$01 then
begin
s:=Stringofchar(' ',DataSize);
Move(DataPtr^,PChar(S)^,DataSize);
sppc:=Copy(s,3,4);
czpc:=copy(s,7,4);
dgqd:=copy(s,11,3);
cdgd:=copy(s,14,4);
ListBox1.Items.Add('已经接收到数据@'+TimeToStr(Now));
ListBox1.Items.Add (' 水平偏差:'+ sppc);
ListBox1.Items.Add (' 垂直偏差:'+ czpc);
ListBox1.Items.Add (' 灯光强度:'+ dgqd);
ListBox1.Items.Add (' 车灯高度:'+ cdgd);
end;
end;procedure TForm1.FormCreate(Sender: TObject);
begin
com1.Connect ;
end;