在书上看到一个类似串口调试助手的例题:
钩选"十六进制发送"按钮
在发送程序中,这样写:
var
tmpstr:string;
tmpint:integer;
tmpvar:variant;
i:=1;
count:=1;
tmpvar:=vararraycreate([1,1],varbyte); //此处如何解释?
output中存放待发送数据
while(i<Len) do
begin
tmpstr:=copy(output,i,2);
tmpInt:=HexToInt(tmpstr); //钩选十六进制发送按钮,请问,为何要将待发送的数据OUTPUT,tmpInt:=HexToInt(tmpstr);
//为何要换为Int型赋值给MSComm.output:=tmpvar;
tmpvar[count]:=tmpInt; //此句如何解释?
Inc(count);
vararrayredim(tmpvar,count);
i:=i+3;
endMSComm.output:=tmpvar;
钩选"十六进制发送"按钮
在发送程序中,这样写:
var
tmpstr:string;
tmpint:integer;
tmpvar:variant;
i:=1;
count:=1;
tmpvar:=vararraycreate([1,1],varbyte); //此处如何解释?
output中存放待发送数据
while(i<Len) do
begin
tmpstr:=copy(output,i,2);
tmpInt:=HexToInt(tmpstr); //钩选十六进制发送按钮,请问,为何要将待发送的数据OUTPUT,tmpInt:=HexToInt(tmpstr);
//为何要换为Int型赋值给MSComm.output:=tmpvar;
tmpvar[count]:=tmpInt; //此句如何解释?
Inc(count);
vararrayredim(tmpvar,count);
i:=i+3;
endMSComm.output:=tmpvar;
解决方案 »
- 一个字符串显示在某个控件里,想给字符串里的某字符加下划线,可以吗?
- cxTreeList控件Checkbox触发事件
- 读取数据库的注解问题
- 放分200——强力支持WGYKING(修罗是谁?!)做VCL组件开发及应用版版主!
- 我想做个检测 对方qq是否登陆的软件(对方阴身时)
- 给我介绍delphi7打印和预览dbgrid内容的控件。
- QuickReport能不能让用户在预览的时候编辑、调整、移动打印内容?
- Delphi走到尽头了吗?
- 多层分部式结构中我用ClientDataSet1的Filter实现动态查询?
- 再问 如何根据类名创建类实例?
- 原本懂sql语法,在adoquery用就搞不明白了。哪位帮我梳理下。给分
- 如何根据错误提示找到代码位置?
var
tmpstr:string;
tmpint:integer;
tmpvar:variant;
i:=1;
count:=1;
tmpvar:=vararraycreate([1,1],varbyte); //此处如何解释?{创建一个varbyte类型数组}
output中存放待发送数据
while(i <Len) do
begin
tmpstr:=copy(output,i,2);
tmpInt:=HexToInt(tmpstr); //钩选十六进制发送按钮,请问,为何要将待发送的数据OUTPUT,{转成16进制发送}tmpInt:=HexToInt(tmpstr);
//为何要换为Int型赋值给MSComm.output:=tmpvar;{为了下面的赋值}
tmpvar[count]:=tmpInt; //此句如何解释? {给tmpvar[count]赋值}
Inc(count);
vararrayredim(tmpvar,count);
i:=i+3;
end MSComm.output:=tmpvar;
tmpInt:=HexToInt(tmpstr); 您的解释为://{转成16进制发送}
在串口调试助手中,我们一般发送数据的格式为:0x05 0x06 0x07
tmpInt:=HexToInt(tmpstr)后,变为5*16=80;6*16=96;7*16=112;
tmpvar[count]:=tmpInt; // {给tmpvar[count]赋值}
请问:
1)MSComm.inputmode中有2中模式:Text mode ; Binary mode
请问,16进制发送和Binary mode有何关系?
2)16进制发送,为何要将0x05(字符串)这种形式转换为80(整型)的形式进行?
3)给tmpvar[count]的赋值有何要求?
4)另:如果,不以16进制发送,又以何种形式给MScomm.output赋值?小弟初涉,还请指教!谢谢!