# CANTest
**Repository Path**: dxes/CANTest
## Basic Information
- **Project Name**: CANTest
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: GPL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2020-05-08
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 现场总线与控制网络CAN总线实验
使用QT框架进行编写,目前仅添加了周立功CAN测试动态链接库,可正常编译运行
## 开发环境
+ QT5.12.8
+ MinGW 32-bit
## 软件整体设计
软件的主体功能由iCAN相关库支撑,实验仅要求对3类设备的操作,但在设计上还是对设备间进行解耦,
增加程序的可拓展性与可读性。
另外,由于缺乏实际设备,为满足演示要求,还应增加虚拟操作部分,具体设计如下:
+ 软件共有三种运行状态:正常连接、虚拟连接、未连接,对这三种状态有不同的操作权限,并应在显著位置对该状态进行提示
+ 不同的模块在单独的page里完成,对于有虚拟连接需求的,还应增加虚拟部件便于演示
+ 对于消息提示,有messagebox、statusbar、日志文件三种,应根据不同的场景调用不同
的提示方式,其中日志文件,由menubar的按钮进入新页面给出,日志应由对实时时间的记录
+ 主站配置,默认即为正常配置,直接连接即可,增加选项只是为了可拓展性
+ 从站连接,直接给出了三类从站的连接按钮,点击进行对应连接,并且应该在按钮的状态上体现连接的状态,为了方便管理,把从站ID都放到一个结构体里,从该结构体里操作成员。
+ 定时器,使用QTimer类实现,定时间隔由上面的配置给出,定时器中实现的功能包括:检测主站、从站的连接状态,断开连接时要有提示;读取数据并显示;增加一个连接时间的统计,主要是为了体现定时器一直在工作
+ 4055页面:DI和DO同时支持16进制和按钮的变色支持
+ 4017页面:温湿度显示,支持对温湿度值、电压值、电流值的相互转换显示,同时为了虚拟演示,可以在该页面再加几个可调节的组件,充当实际值;这些值有合理范围,对不合理的值要有提示,也能演示。
+ 4210页面:模拟输出,把滑块和输入框的值进行关联,可以看看有没有必要多增加几个通道,看着好看,毕竟页面太空了。同时为了虚拟演示,可以在该页面再加几个组件,充当实际值显示一下效果。
+ 图标,图标还需要完善,比如灯的图标、按钮连接状态的图标、程序图标。
## 代码规范(与Qt风格保持一致)
详细的规范参考 QT官方文件
>[https://wiki.qt.io/Qt_Coding_Style](https://wiki.qt.io/Qt_Coding_Style)
### 命名规范
| 类别 | 规范 |举例|
| ------------ | ------------------------------- |----------|
| 通用变量 | 名词,驼峰命名法,尽量避免缩写
单字符作为临时变量或计数用 |newValue|
| 类 | 名词,大写字母开头,不包含下划线,前加字母C |CClockBattery|
| 常量
宏定义 | 大写,下划线分割 |MY_VALUE|
| 函数名 | 含动词,驼峰命名法 |getMyValue|
| 枚举 | 枚举名和成员都以大写字母开头,带有Enum前缀|EnumMyColor|
| 结构体 | 结构体名用大写开头的驼峰,成员变量用小写开头的驼峰 |MyColor|
| UI对象名 | 驼峰命名法,末尾须带有对象名称 | cancalButton
cancalLabel|
### 注释规范
/*************************************************
**Function: // 函数名称
**Description: // 函数功能描述
**Input: // 输入参数说明,包括每个参数的作用、取值说明
**Return: // 函数返回值的说明
**Others: // 其它说明
*************************************************/
## 项目说明
动态连接库的加载配置如下,使用相对路径,若编译有问题须检查该项
>LIBS += ..\\CANTest\\iCANLib\\icandll.lib
INCLUDEPATH += ..\\CANTest\\iCANLib\\
如果运行异常退出,须向编译目录拷贝对应的dll文件