CAN总线的上位机设计,本章将基于windows平台做出相关讲解。CAN总线上位机的开发,若我们不是开发CAN卡的厂商,基本来说都是二次开发。我们需借助当前使用的CAN卡设备,利用CAN卡提供的动态库或静态库,做相应的应用开发。前期准备:1.UI选择方案:VS自带的MFC C# 或当下流行的QT等(这个主要看各人习惯,对哪种平台熟悉,选哪种吧)2.对多线程开发的理解(建议采用多线程)3.CAN卡和
文章目录?前言?一、桌面应用开发思维转变?1.WPF框架以及应用场景?2.从桌面应用到WPF的界面渲染?3.WPF体系结构?3.1 三层体系结构?3.2 基本控件集合类?二、WPF简单案例?1.主窗口?2.ViewModel模型类?3.命令类?备注 ?前言桌面应用程序是指在个人计算机(PC)或笔记本电脑(Laptop)等设备本地运行的应用程序,与网络或云服务无关。这些应用程序通常需要在操作系统上
转载
2024-04-16 09:09:23
86阅读
VS上位机开发——串口助手 目录VS上位机开发——串口助手一、新建项目二、控件布局三、编写程序1、端口更新函数2、启动窗口加载函数3、"打开串口"按键回调函数4、"清除接收"按键回调函数5、"发送"按键回调函数6、串口接收函数7、定时器中断回调函数四、运行五、结束语 第一次接触上位机的开发,单纯是为了玩一下,浅度学习,参考了一下其他文章,做了一个简单的串口助手,算是迈出了第一步。写博客记录一下学习
转载
2024-03-19 22:32:50
180阅读
Windows OpenCV安装部署详细教程一、下载OpenCV 到OpenCV官网下载你需要的版本。 点击RELEASES(发布)由于OpenCV支持好多平台,比如Windows, Android, Maemo, FreeBSD, OpenBSD, iOS, Linux和Mac OS,一般初学者都是用windows,所以在这里下载Win pack点击Win pack 后跳出下面界面,等待
转载
2024-05-07 09:57:42
94阅读
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、准备工作二、认识工具箱三、认识属性四、程序编写 前言既然是做上位机那么必然会有下位机,当前上位机和下位机的通信主要是通过串口,网络,CAN几种方式进行通信,先进行最简单的串口通信,本章主要建立一个串口上位机的模板,之后的使用串口通信的上位机都通过这个模板来编写。一、准备工作.NET API浏览器 在.NET API浏
转载
2024-03-15 05:45:30
274阅读
最近在使用Arduino时遇上了Processing,越了解越喜欢,不说别的优点,这东东与Arduino交互做PC机上的数据展示真的是很不错的选择。可以说这是真正一门与艺术相关的编程语言,本篇开始将分享Processing系列学习笔记,希望感兴趣的朋友一起学习。1. Processing是什么Processing是一门用来生成图片、动画和交互软件的编程语言,主要用于处理可视化数据,把视觉形式、动画
转载
2023-12-13 22:10:12
158阅读
前言上一节我们已经基本上把超声波硬件的发射和接收模块全部做好了,接下来我们着手开发一个软硬结合的基于C#的平面定位软件! 目录一、整体思路二、效果提前展示 2-1、软件部分展示 2-2、硬件部分展示三、基于C#的客户端软件说明 3-1、整体框架介绍: 3-2、部分技术细节介绍
转载
2024-06-16 10:10:45
174阅读
上一篇简单介绍了C#的一些基本知识,并成功的Hello,World,那么从这篇开始,我们来自己动手写一个串口助手:1、构思功能 串口助手在单片机开发中经常被用来调试,最基本的功能就是接收功能和发送功能,其次,串口在打开前需要进行一些设置:串口列表选择、波特率、数据位、校验位、停止位,这样就有了一个基本的雏形;然后我们在下一篇中在此功能上添加:ASCII/HEX显示,发送,发送新行功能,重复自动发
转载
2024-04-10 18:34:38
167阅读
1.CAN数据的常规收发实现常规数据的收发实现其实也不是很难,主要是根据CAN盒提供的二次开发库(一般为dll文件)和一些帮助文档(主要是介绍函数的使用,CAN盒的初始化顺序)在上位机中按照正确的顺序初始化CAN盒并开启,最后在一个线程中不断的调用接口函数获取数据。关于CAN盒的选择主要有两种,一种是通过USB接口和PC通信的,这类CAN盒收发的速率比较高,也比较稳定,不容易出现丢帧的现象;另一类
转载
2024-08-25 16:41:12
150阅读
每天忙忙碌碌,很难静下心来搞技术。所以整体做下来思维比较混乱,反反复复地修改,不过整体的框架目前看来还是可以,达到了预期的设想。 利用目前学到了的知识和方法,建立起来一个简单框架,并初步规划功能,开始。&nbs
转载
2023-08-11 13:15:24
426阅读
配置相关designer.exe拖拉控件实现UI界面的工具,设计完成保存后是.ui文件
Program参数:D:\Python\Python38-32\Scripts\designer.exe
Working directory参数:$FileDir$
pyuic5将界面.ui 文件转换成.py文件
Program参数:D:\Python\Python38-32\Scripts\pyuic5.e
转载
2024-01-25 08:59:35
169阅读
在pycharm上写上位机安装pyqt5(安装好了Anaconda) 用pip安装:pip install pyqt5 , 安装:pip install pyqt5-tools。 之后在设置里打开Python解释器,点安装包。打开 Qt Designer,创建Main Window。1.添加文本:在“Display Widgets”中,将“Label”拖拽到画布上,会获得了一个仅用于显示文字的文本
转载
2023-06-08 20:05:53
577阅读
前言为了让板子上跑的组合导航算法能够实时的显示在电脑上,需要用QT写一个上位机接收板子输出的数据,并以图形界面的形式显示在电脑上。这样我们就可以实时的看见板子输出的结果。VS2019安装最新的VS不一定是最好的,但一定是最酷的! VS2019安装就不细说了,可以看看百度经验Visual Studio2019安装教程QT5.12.6安装QT5.12版本是长期支持版本(LTS),支持时间长达3年,故我
转载
2024-06-16 12:11:47
238阅读
文章目录前言效果核心代码编程思路下位机上位机widget.hwidget.cpp 前言 在涉及到多个部门之间的软件开发过程时,往往会出现在同一台设备上的多个程序进程之间的通信问题。 下位机进行数据的采集及解算工作,将运行结果发送至上位机进行展示等。由于上位机、下位机由不同单位或部门的人编写,所使用的编程语言可能不尽相同,且也有可能涉及到保密问题,故不可能互相公开源码以进行统一的编译工作,从
转载
2024-08-13 15:14:44
418阅读
PMAC 的内部变量内部变量分为四种,I 变量为电机等常用基本控制变量,P 变量为全局用户常量,Q 变量为坐标系变量,M 变量为地址型变量。通过对这些变量的操作,可以监控电机状态,回零,限位,设置运动控制参数,PID调节等。动态链接库PMAC 的通讯函数库就是指动态链接库,动态链接库也是一种计算机程序,需要经过编辑、编译、连接、加载和运行几个步骤。动态链接库是一方面是为了保存需要重复使用的代码,另
转载
2023-11-16 11:57:40
99阅读
随着中国工业4.0数字化升级改造的不断推进,汽车装配行业要进行信息化、自动化、无人化改造也是大趋所势。在这过程中,MES智能制造系统是实现信息化、自动化升级的关键,最底层执行单元即MES工位一体机是智能化系统不可或缺的一个重要设备。 我们先来了解一般汽车装配都包括哪些方面。常规的汽车装配包括安装前桥、安装后桥、安装制动控制器、安装离合器与制动踏板、安装发动机和变速器、安装传动轴、安装消声器、
转载
2024-08-27 10:50:56
168阅读
我们为什要学习JVM面试的需要(BATJ、TMA等面试都爱问)中高级程序员必备技能
项目管理、调优的需要追求极客的京城
比如垃圾回收算法、JIT、底层原理1-前言大部分Java开发人员,除了会在项目中使用到与Java平台相关的各种高精尖技术,对于Java技术的核心Java虚拟机了解甚少。开发人员如何看待上层框架一些有一定工作经验的开发人员,打心眼儿里觉得SSM、微服务等上层技术才是重点
转载
2023-11-23 13:39:16
84阅读
在嵌入式项目开发中,无论是单片机项目、嵌入式Linux项目、FPGA项目,上位机始终是一个很重要的部分。
原创
2021-07-09 15:39:01
4303阅读
进入模式: 上位机发送 消息 上位机EEPROM 按下进入模式 消息的ID号是:0x08111111 数据是: 00 01 ff 00 00 00 00 00 上位机显示 运行状态 :为进入模式 当我用下位机 发送 下位机通过CANTest 进行发送 消息 消息的ID号 是: 0x08222222 数据是: 00 02 FF 00 00 00 00 00 上位机显示 运行状态: 已经进入参数修改
在初始化函数中添加:
// TODO: Add extra initialization here
m_bAutoSend=FALSE; //m_bAutoSend为全局变量
m_nCycleTime=1000; m_GPSCOM.SetCommPort(1); //选择COM1
m_GPSCOM.SetInputMode(1); //输入方式为二进制方式
m_GPSCOM.Set
转载
2024-05-21 14:09:09
103阅读