1,317
社区成员
发帖
与我相关
我的任务
分享
CString m_Command;
message.GetAt(1, m_Command); //此处m_Command是串口指令
m_ctrlComm.GetInput(); //读取接收缓冲区的数据
CByteArray hexdata;
String2Hex(m_Command,hexdata); //此处返回的len可以用于计算发送了多少个十六进制数
m_ctrlComm.SetOutput(COleVariant(hexdata)); //向发送缓冲区写数据 //发送指令
if (m_Command.GetLength() < 8 ) //判断指令为有线或无线
Delay(2500); //有线 延时2500ms
else
Delay(2700); //无线 延时2700ms
m_Command="";
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,p;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
variant_inp=m_ctrlComm.GetInput(); //读缓冲区的数据
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(p=0;p<len;p++)
safearray_inp.GetElement(&p,rxdata+p);//转换为BYTE型数组
for(p=0;p<len;p++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+p); //字符型
strtemp.Format("%02X",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
m_Command+=strtemp; //加入接收编辑框对应字符串
}
CNDKMessage message1(ChatBigMessage);
message1.SetAt(0,m_Command);
//MessageBox(m_Command);
this->SendMessageToUser(lUserId,message1);