void CCommTeatDlg::OnCommMscomm1()
{
// TODO: 串口消息处理
//常数 值 描述
//comEvSend 1 发送事件。
//comEvReceive 2 接收事件。
//comEvCTS 3 clear-to-send 线变化。
//comEvDSR 4 data-set ready 线变化。
//comEvCD 5 carrier detect 线变化。
//comEvRing 6 振铃检测。
//comEvEOF 7 文件结束。
short curEvent =m_com.get_CommEvent();
switch(curEvent)
{
case CMscomm1::comEvReceive:
EvReceiveHandle(); //串口接收处理示例
break;
}
}
//接收到字符处理;
void CUSARTDlg::EvReceiveHandle(void)
{
// TODO: 在此处添加消息处理程序代码
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;//
variant_inp=m_com.get_Input(); //读缓冲区
safearray_inp=variant_inp; //VARIANT型变量转换为ColeSafeArray型变量
len=safearray_inp.GetOneDimSize(); //得到有效数据长度
for(k=0;k <len;k++)
safearray_inp.GetElement(&k,rxdata+k);//转换为BYTE型数组
for(k=0;k <len;k++) //将数组转换为Cstring型变量
{
BYTE bt=*(char*)(rxdata+k); //字符型
strtemp.Format(_T("%02x"),bt);//将字符送入临时变量strtemp存放
m_RxStr+=strtemp;
m_RxStr+=" ";
//m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
SetDlgItemText(IDC_Rx,m_RxStr);
}