利用c++深究周立功usbcan盒的学习

根据某新能源电动车辆的通讯协议,利用c++开发上位机软件,通过周立功usbcan盒将开发的上位机与车辆OBD口连接,从而可以开发更多的上位机,用来对新能源车辆的监控。
以下为部分C++代码主要实现上位机读取信息的过程:
CZlgcanDlg::CZlgcanDlg(CWnd* pParent /=NULL/)
: CDialog(CZlgcanDlg::IDD, pParent)
, device_type_index_(0)
, device_index_(0)
, channel_index_(0)
, work_mode_index_(0)
, abit_baud_index_(0)
, dbit_baud_index_(0)
, custom_baud_enable_(FALSE)
, resistance_enable_(TRUE)
, frame_type_index_(0)
, protocol_index_(1)
, canfd_exp_index_(0)
, send_type_index_(0)
, acc_code_(T(“00000000”))
, acc_mask
(T(“FFFFFFFF”))
, id
(T(“00000001”))
, datas
(T(“00 11 22 33 44 55 66 77”))
, custom_baudrate
(T(""))
, filter_mode
(1)
, net_mode_index_(0)
, baud_index_(0)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
device_opened_ = FALSE;
start_ = FALSE;
}

void CZlgcanDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_CBIndex(pDX, IDC_COMBO_DEVICE, device_type_index_);
DDX_CBIndex(pDX, IDC_COMBO_DEVICE_INDEX, device_index_);
DDX_CBIndex(pDX, IDC_COMBO_CHANNEL_INDEX, channel_index_);
DDX_CBIndex(pDX, IDC_COMBO_DEVICE_INDEX2, work_mode_index_);
DDX_CBIndex(pDX, IDC_COMBO_ABIT, abit_baud_index_);
DDX_CBIndex(pDX, IDC_COMBO_ABIT2, dbit_baud_index_);
DDX_CBIndex(pDX, IDC_COMBO_BAUD, baud_index_);
DDX_Check(pDX, IDC_CHECK_CUSTOM_BAUDRATE, custom_baud_enable_);
DDX_Check(pDX, IDC_CHECK_RESISTANCE, resistance_enable_);
DDX_CBIndex(pDX, IDC_COMBO_FRAME_TYPE, frame_type_index_);
DDX_CBIndex(pDX, IDC_COMBO_PROTOCOL, protocol_index_);
DDX_CBIndex(pDX, IDC_COMBO_CANFD_EXP, canfd_exp_index_);
DDX_CBIndex(pDX, IDC_COMBO_SEND_TYPE, send_type_index_);
DDX_Control(pDX, IDC_LIST1, data_recv_list_);
DDX_Text(pDX, IDC_EDIT_ACC_CODE, acc_code_);
DDV_MaxChars(pDX, acc_code_, 8);
DDX_Text(pDX, IDC_EDIT_ACC_MASK, acc_mask_);
DDV_MaxChars(pDX, acc_mask_, 8);
DDX_Text(pDX, IDC_EDIT_FILTER_START2, id_);
DDV_MaxChars(pDX, id_, 8);
DDX_Text(pDX, IDC_EDIT_FILTER_START3, datas_);
DDX_Control(pDX, IDC_COMBO_DEVICE, ctrl_device_type_);
DDX_Control(pDX, IDC_COMBO_DEVICE_INDEX, ctrl_device_index_);
DDX_Control(pDX, IDC_COMBO_CHANNEL_INDEX, ctrl_channel_index_);
DDX_Text(pDX, IDC_EDIT_CUSTOM_BAUDRATE, custom_baudrate_);
DDX_Control(pDX, IDC_BUTTON_OPEN, ctrl_open_device_);
DDX_Control(pDX, IDC_BUTTON_INITCAN, ctrl_int_can_);
DDX_Control(pDX, IDC_BUTTON_STARTCAN, ctrl_start_can_);
DDX_Control(pDX, IDC_BUTTON_CLOSE, ctrl_close_device_);
DDX_CBIndex(pDX, IDC_COMBO_FILTER_MODE, filter_mode_);
DDX_CBIndex(pDX, IDC_COMBO_NET_MODE, net_mode_index_);
}

BEGIN_MESSAGE_MAP(CZlgcanDlg, CDialog)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
//}}AFX_MSG_MAP
ON_BN_CLICKED(IDC_BUTTON_OPEN, &CZlgcanDlg::OnBnClickedButtonOpen)
ON_BN_CLICKED(IDC_BUTTON_INITCAN, &CZlgcanDlg::OnBnClickedButtonInitcan)
ON_BN_CLICKED(IDC_BUTTON_STARTCAN, &CZlgcanDlg::OnBnClickedButtonStartcan)
ON_BN_CLICKED(IDC_BUTTON_RESET, &CZlgcanDlg::OnBnClickedButtonReset)
ON_BN_CLICKED(IDC_BUTTON_CLOSE, &CZlgcanDlg::OnBnClickedButtonClose)
ON_BN_CLICKED(IDC_BUTTON_SEND, &CZlgcanDlg::OnBnClickedButtonSend)
ON_CBN_SELCHANGE(IDC_COMBO_DEVICE, &CZlgcanDlg::OnCbnSelchangeComboDevice)
ON_CBN_SELCHANGE(IDC_COMBO_NET_MODE, &CZlgcanDlg::OnCbnSelchangeComboNetMode)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON_CLEAR, &CZlgcanDlg::OnBnClickedButtonClear)
END_MESSAGE_MAP()
以下为波特率的设置:
if (custom_baud_enable_)
{
if (!SetCustomBaudrate())
{
AddData(_T(“设置自定义波特率失败!”));
return;
}
}
else
{
if (!canfdDevice && !SetBaudrate())
{
AddData(_T(“设置波特率失败!”));
return;
}
}

利用c++深究周立功usbcan盒的学习相关推荐

  1. 周立功CAN盒驱动C#调用方式

    #region CAN接受和发送数据定义         [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)] ...

  2. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

  3. Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等

    Qt编写的CAN通信调试工具源代码支持吉阳光电CAN盒和致远周立功USB转CAN卡,带多线程接收 可完成标准和扩展CAN帧YID发送和接收,带配置参数自动保存,定时发送,帧类型选择,文本和十六进制等. ...

  4. java 调用ecanvci,CANoe CAN总线适配低价解决方案支持所有USBCAN(周立功CAN、PCAN、Kvaser、ValueCAN、NI CAN)...

    在汽车通信领域CAN总线使用非常广泛,最强大的工具有Vector Case(10WRMB).Pcan(2KRMB),ZLGCAN(1.5KRMB),KVASER(2KRMB).ValueCAN(4KR ...

  5. 周立功 zlg PCIe-9120I CAN卡无法使用python开启

    2018年走了- 2019年来了- 工作日第一天就排了一颗打雷- 前两天领导指派任务做一个仪表的上位机, 公司用的都是zlg的USB-CAN盒或者PCIe-CAN卡, 且官方提供的接口\例程都是非py ...

  6. 周立功:专注的力量成就梦想

    20年多前,我没考上大学,只读了技工学校,家庭条件并不好.毕业之后,因为就业等现实问题和压力,开始思考出路.偶然的一次机会,也就是81年,从杂志上了解到苹果公司创立的成功,两个年轻人在车库做出了单板机 ...

  7. 我的25年嵌入式生涯-周立功

    http://blog.chinaunix.net/uid-25498312-id-3246377.html <程 序员>杂志的编辑约我写一篇命题作文,想了几天都无从下手不知道写什么才好. ...

  8. python解析can报文,Python实现Can接收发送 DBC分析报文 周立功ZLG 绘制曲线 支持离线回放.rar...

    [实例简介] Python实现Can接收发送 DBC分析报文 绘制曲线 支持离线回放 CAN分析工具 环境:windows & python3 设备:周立功USBCAN-I(可在源码中修改支持 ...

  9. 周立功: 我的25年嵌入式生涯——非常诚恳之谈

    <程序员>杂志的编辑约我写一篇命题作文,想了几天都无从下手不知道写什么才好.在这篇文章里,我不打算将创业的艰辛与喜悦重新回忆一遍,我确实不想去误导大家,因为我所处的年代是一个物质缺乏的年代 ...

  10. 周立功:我的成功可以复制

    <程序员>杂志的编辑约我写一篇命题作文,想了几天都无从下手不知道写什么才好.在这篇文章里,我不打算将创业的艰辛与喜悦重新回忆一遍,我确实不想去误导大家,因为我所处的年代是一个物质缺乏的年代 ...

最新文章

  1. 【原创视频教程】学生信息管理系统5--学员成绩管理
  2. android 听筒播放声音
  3. Leetcode 223. 矩形面积 解题思路及C++实现
  4. HDFS常用Shell命令
  5. 设计类网站|超实用的工具型网站!
  6. mysql根据月份查询订单销售额
  7. php 是否存在,php判断常量是否存在
  8. caffe(CPU版本)配置 及MNIST调用
  9. 2020.10.30文献1:《滇中引水工程香炉山隧洞地应力特征及其活动构造响应》
  10. DXF文件结构与示意
  11. Gradle配置及同一应用不同版本配置不同资源文件,不同签名,包名进行打包
  12. 实习笔记 —— MyBatis III (输入/输出映射)
  13. 有强烈的危机感,是一种病吗?
  14. WPS JS详细教程
  15. Hank老师推荐的一些博客
  16. VS2017使用点滴
  17. Prolific USB-to-Serial Comm Port在win8.1下
  18. 音视频 RTMP协议分析
  19. 什么是气泡图 怎样绘制气泡思维导图
  20. 关于实现宿舍共享校园网上网的几种方法~

热门文章

  1. SSM整合篇--JSP介绍
  2. 感觉丧的时候,读一读曾国藩
  3. Loongson_灵珑9S2A 逸珑8089 3B1500龙芯电脑的使用感触
  4. 学习ximo脱壳视频:2、手脱ASPACK壳
  5. linux bz2 xz gz,压缩介绍、bz2、gz、xz压缩工具
  6. 使用vue扫描扫描仪图像
  7. Web前端密码加密是否有意义?
  8. 2022年考 PMP 证书有什么意义?
  9. win7虚拟机安装VMware tools失败
  10. 实例分割最全综述(上):二阶段实例分割和一阶段实例分割