请教关于读串口数据的问题 新手求助,用CMSCOMM控件做的一个读取下位机数据的小软件,现在每1秒下位机发送过来一个数据,我将该数据的第4,5个字节取出,显示在EDIT1中,这个可以实现,在0.5后有另外一个数据,我想显示显示在EDIT2中,请问各位大在ONCOMM函数中,我该如何去解决。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 贴1上我的部分代码,这是第每1秒发送过来的数据,我想加个在500毫秒后,接收另外一个7自字节数据的3,4显示在EDIT2中void CLztfView::OnOnComm() { // TODO: Add your control notification handler code here VARIANT Input; CString temp; long k, c; char len=0; COleSafeArray OleArray;//构造一个任何类型的空数组. int rxdata[2048]; if (2==m_ctrlComm.GetCommEvent()) { Input=m_ctrlComm.GetInput(); //读缓冲区 OleArray=Input;//VARIANT型变量转换为ColeSafeArray型变量 len=OleArray.GetOneDimSize();//获取接收到的字符数.也可使用m_com.GetInBufferCount()获取字符数. if(len==7) { //for (k=0;k<len;k++) k=4; OleArray.GetElement(&k,rxdata+k);//将OleArray数组中第K个元素赋予BYTE数组中第K个元素. bt =*(char*)(rxdata+k);//字节数组元素转换字符型 c=3; OleArray.GetElement(&c,rxdata+c);//将OleArray数组中第K个元素赋予BYTE数组中第K个元素. at=*(char*)(rxdata+c);//字节数组元素转换字符型 tt=at*256+bt; } if (tt>=2000) { temp.Format("超量程"); } else if (tt>0&&tt<2000) { temp.Format("%0.1f",tt/10.0); } else if (tt>-50&&tt<0) { } m_strRXData=temp; } UpdateData(FALSE);//成员变量的值在控制中体现出来.当为TRUE } IWebBrowser2,webEVENT,怎么能使里面装载的页面的编辑框的光标左右只移动一位? 程序运行无界面 vc中pctstr,ptstr中的pct,pt分别代表什么意思? 突然想整体了解GDI+ 如何让密码不能粘贴?? 大家好!哪位高手能不能给我大概介绍一下windows程序设计原理啊,万分感谢!!! 如何在 Dialog 中添加工具栏 有人知道吗? 能实现象网络领居那样从一台机器上的文件考到另以台吗? 高手请进!! 听说vs2010编译的程序不能在xpsp3以下的系统运行,是吗? 删除列表选中行!!!急!!
{
// TODO: Add your control notification handler code here
VARIANT Input;
CString temp;
long k, c;
char len=0;
COleSafeArray OleArray;//构造一个任何类型的空数组.
int rxdata[2048];
if (2==m_ctrlComm.GetCommEvent())
{
Input=m_ctrlComm.GetInput(); //读缓冲区
OleArray=Input;//VARIANT型变量转换为ColeSafeArray型变量
len=OleArray.GetOneDimSize();//获取接收到的字符数.也可使用m_com.GetInBufferCount()获取字符数.
if(len==7)
{
//for (k=0;k<len;k++)
k=4;
OleArray.GetElement(&k,rxdata+k);//将OleArray数组中第K个元素赋予BYTE数组中第K个元素.
bt =*(char*)(rxdata+k);//字节数组元素转换字符型
c=3;
OleArray.GetElement(&c,rxdata+c);//将OleArray数组中第K个元素赋予BYTE数组中第K个元素.
at=*(char*)(rxdata+c);//字节数组元素转换字符型
tt=at*256+bt;
}
if (tt>=2000)
{
temp.Format("超量程");
} else if (tt>0&&tt<2000)
{
temp.Format("%0.1f",tt/10.0);
}
else if (tt>-50&&tt<0)
{
}
m_strRXData=temp;
}
UpdateData(FALSE);//成员变量的值在控制中体现出来.当为TRUE
}