在接收框中以十六进制显示
来源:互联网 发布:高级软件测试技术 编辑:程序博客网 时间:2024/05/18 20:07
标签: MFC
在接收框中以十六进制显示
这就容易多了: 在主对话框中加入一个复选接钮,IDC_CHECK_HEXDISPLAY Caption: 十六进制显示,再利用ClassWizard为其添加控制变量:m_ctrlHexDiaplay。 然后修改CSCommTestDlg::OnComm()函数:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
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); //字符型
if(m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
测试:在串口调试助手发送框中输入00 01 02 03 A1 CC等十六进制字符,并选上以十六进制发送,单击手动发送,在本程序运行后选上以十六进制显示,在串口调试助手中单击手动发送或自动发送,则在本程序的接收框中应该可以看到00 01 02 03 A1 CC了。
在接收框中以十六进制显示
这就容易多了: 在主对话框中加入一个复选接钮,IDC_CHECK_HEXDISPLAY Caption: 十六进制显示,再利用ClassWizard为其添加控制变量:m_ctrlHexDiaplay。 然后修改CSCommTestDlg::OnComm()函数:
void CSCommTestDlg::OnComm()
{
// TODO: Add your control notification handler code here
VARIANT variant_inp;
COleSafeArray safearray_inp;
LONG len,k;
BYTE rxdata[2048]; //设置BYTE数组 An 8-bit integerthat is not signed.
CString strtemp;
if(m_ctrlComm.GetCommEvent()==2) //事件值为2表示接收缓冲区内有字符
{
variant_inp=m_ctrlComm.GetInput(); //读缓冲区
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); //字符型
if(m_ctrlHexDisplay.GetCheck())
strtemp.Format("%02X ",bt); //将字符以十六进制方式送入临时变量strtemp存放,注意这里加入一个空隔
else
strtemp.Format("%c",bt); //将字符送入临时变量strtemp存放
m_strRXData+=strtemp; //加入接收编辑框对应字符串
}
}
UpdateData(FALSE); //更新编辑框内容
}
测试:在串口调试助手发送框中输入00 01 02 03 A1 CC等十六进制字符,并选上以十六进制发送,单击手动发送,在本程序运行后选上以十六进制显示,在串口调试助手中单击手动发送或自动发送,则在本程序的接收框中应该可以看到00 01 02 03 A1 CC了。
- 在接收框中以十六进制显示
- QT串口接收十六进制数据在文本框中显示
- asp中以十六进制显示字串数据
- vim以十六进制显示文本
- 怎样在屏幕上以十六进制样式显示内存中的一段数据
- 怎样在屏幕上以十六进制样式显示内存中的一段数据
- 以十六进制形式显示文件内容
- 上位机串口程序以十六进制接收数据
- 以ie8显示模式在ie9中显示页面
- 处理相同号码以+7和8开头,接收到短信需要显示在同一条里面
- Emacs中以十六进制查看文件
- GVim中以十六进制方式打开文件
- QT串口发送十六进制数据接收串口数据并十六进制显示
- Qt实现十六进制接收文本和显示文本(可用于串口的十六进制)
- vs调试时,变量值以十六进制显示
- 为什么有的vi不能以十六进制显示数据
- emacs如何以十六进制坐标格式显示二进制文件
- 在Console中以竖行显示MySQL记录内容
- Android错误:unable to find explicit activity class
- struts2+spring+iBatis集成
- js添加删除行
- 关于 通过流文件写内容不覆盖原文件
- 小老鼠过生日了
- 在接收框中以十六进制显示
- MYSQL 效率优化 20+
- 深入浅出 Cocoa 多线程编程之 block 与 dispatch quene
- 淘宝退货 物流选择
- 指针与数组是如何访问的——可以用extern int *p作为int p[N]的外部声明吗?
- 我最爱祖国
- Qt中文显示
- C语言浮点数比较大小
- Android Dev Tips (持续更新)