上位机开发

1、前言

       之前的博客中有一篇关于MSCOMM使用的文章,里面最然给出了例子,但是对MSCOMM的使用介绍的不够。加之,近来又接触了上位机编程方面的东西,遂详细的做点笔记在这里。

        MSCOMM控件应用比较广泛的原因主要还是在于它的操作简便性。特别是不需要做很多的代码编写工作就可以实现一些很基础的功能。但是在实际的开发使用时候还是要了解一些基本的MSCOMM属性,这样在出现问题的时候才不至于找不到原因。

 

2、MSCOMM的常用属性

这些图片都是从书中截取出来的。该书的pdf版本下载链接附在本文的最下面。

1、  BOOL get_PortOpen()和put_PortOpen(BOOL newValue)属性

BOOL get_PortOpen()  返回当前是否打开串口,TURE为打开,FALSE为关闭;

put_PortOpen(BOOL newValue)  设置串口打开,参数newValue为要打开的串口号。

 

2、  put_CommPort(short newValue)和short get_CommPort()

put_CommPort()  设置需要打开的串口;

get_CommPort()  获取已经打开的串口号。

Tips:在打开串口之前必须要设置要打开的串口。在关闭串口前也必须保证串被关闭串是处于打开状态的。

 

3、  put_InBufferSize()和put_OutBufferSize()

put_InBufferSize()  设置输入缓冲区大小(Byte),缺省下为1024字节;

put_OutBufferSize()  设置输出缓冲区大小(Byte),缺省下为1024字节。

 

4、  put_InputLen()

   put_InputLen()  设置当前接收区数据长度为0,表示全部读取。

 

5、put_InputMode()

put_InputMode()  设置为以二进制或者字符串的方式进行输入。

 

6、  put_RThreshold()

put_RThreshold()  设置一个阈值,当输如缓冲区的字符数量达到该阈值时,控件就会产生一个onComm事件,并且CommEvent属性设置为ComEvReceive,即为接受事件。

7、  put_Settings()

设置通信的参数,格式为:波特率,奇偶校验类型,数据位,停止位;

例如:

[cpp]  view plain copy
  1. m_mscomm.put_Settings(_T("9600,n,8,1"));//波特率9600无校验位,8位数据位,1位停止位  

更多的属性可以在书上查找到,利用上述的属性可以做基础的串口初始化设置,设置的过程可以如下:

 

[cpp]  view plain copy
  1. if(m_mscomm.get_PortOpen())            //如果串口是打开的,则关闭串口  
  2.     {  
  3.        m_mscomm.put_PortOpen(FALSE);  
  4.     }  
  5.     m_mscomm.put_CommPort(4);              //选择COM1  
  6.     m_mscomm.put_InBufferSize(1024);       //接收缓冲区  
  7.     m_mscomm.put_OutBufferSize(1024);      //发送缓冲区  
  8.     m_mscomm.put_InputLen(0);              //设置当前接收区数据长度为0,表示全部读取  
  9.     m_mscomm.put_InputMode(1);         //以二进制方式读写数据  
  10.     m_mscomm.put_RThreshold(16);           //接收缓冲区有1个以及1个以上字符时,将引发接收数据的OnComm事件  
  11.     m_mscomm.put_Settings(_T("9600,n,8,1"));//波特率9600无校验位,8位数据位,1位停止位  
  12.     if(!m_mscomm.get_PortOpen())           //如果串口没有打开则打开  
  13.     {  
  14.        m_mscomm.put_PortOpen(TRUE);//打开串口  
  15.        AfxMessageBox(_T("串口1打开成功"));  
  16.     }  
  17.     else  
  18.     {  
  19.        m_mscomm.put_OutBufferCount(0);  
  20.        AfxMessageBox(_T("串口1打开失败"));  
  21.     }  

3、MFC中插入MSCOMM控件

在资源管理视图的对话框资源下,右键>插入ACTIVEX控件,找到:


选择确定,并为该控件添加关联变量,添加响应的类。这样就可以对其进行操作了,串口的初始化设置如上面代码设置即可。

4、数据类型的处理

    输入输出缓冲区的类型都是VARIANT类型,程序中常用的字符处理类型是CString,char*等类型。所以需要将数据类型进行转换。


在需要发送数据时:

5、注意事项

  • 1
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Canoe上位机开发是指在Canoe系统中开发控制、监测和管理Canoe设备的程序。Canoe是一种用于汽车电子系统开发和测试的硬件和软件工具。上位机开发是指使用计算机作为控制和管理设备的中枢,与Canoe设备进行通信和交互。 Canoe上位机开发的主要目标是实现对Canoe设备的远程控制和监测。通过开发上位机程序,可以实现对Canoe设备的各种操作和控制,包括车辆信号的发送和接收、数据采集和分析、设备状态的监测和诊断等。上位机可以通过与Canoe设备之间的通信接口,对Canoe设备进行灵活的控制和操作。 Canoe上位机开发需要具备一定的编程和软件开发技能,可以使用不同的编程语言和开发工具进行开发。常用的开发语言包括C/C++、Python等。开发工具包括Visual Studio、Eclipse等。在开发过程中,需要理解Canoe系统的工作原理和接口规范,以便与Canoe设备进行正确的通信和交互。 在Canoe上位机开发中,需要考虑到实时性、稳定性和安全性等方面的需求。开发的上位机程序应具备良好的界面和用户体验,方便用户进行操作和配置。同时,还需要保证程序的可靠性和可维护性,以便进行后续的更新和维护。 总而言之,Canoe上位机开发是一项重要的技术任务,它为汽车电子系统的开发和测试提供了有力的支持。通过开发上位机程序,可以实现对Canoe设备的远程控制和监测,促进汽车电子系统的研发和应用。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值