关于mscomm控件串口通讯的问题
我在delphi中使用mscomm控件开发一个串口通讯的程序,下位设备是一种手持pos,用C51开发的。现在碰到一个问题:手持pos机通过串口上传到主机的数据我不知道如何获得,在delphi中使用mscomm控件读取串口缓冲区是一个olevariant类型的变量,但获取之后我如何将其中的数据解析出来呢?
我程序中的部分代码:
iCount:=mscomm1.inbufcount; //得到串口缓中区中的字符数
varContent:=mscomm1.input; //获得串口缓冲区中的内容(varContent为一个Variant类型的变量)
以上代码中能够获得串口缓冲区中的字符数,但用variant变量得到的内容我不知如何进行解析。我想将他转换成字符串
strTemp:=vartostr(varContent);
但得到的是一个空字符串。可我判断variant变量是否为空时确实不是空
bEmpty:=VarIsEmpty(varContent); //得到的值是false,不为空
这我就不知道如何进行处理了,那位高手做过此方面的东西,还请赐教一二,不胜感激!
(下位的手持pos向串口发送数据时是按照我定义的结构进行发送的,c51写的)