diff --git a/README.md b/README.md index cfd2597..9fa6942 100644 --- a/README.md +++ b/README.md @@ -1,255 +1,9 @@ ``` -QT打包: -参考教程 -https://blog.csdn.net/ColinFhz/article/details/107879769 +编译: +.\tools\build.bat -V4: - 1.修改样式 - 2.优化打包体积 - modbus - -设备地址: -波特率 : - - -读取配置 -写入配置 -校验配置 - -配置中有部分配置是只读的,部分配置不需要校验, - -1.协议文件 - 名称,地址,读写特性,备注信息,是否属于配置(如果该配置项是只读的,则只校验配置) - -2.配置 - 地址,数值 - 地址,数值 - - -``` - -``` -待测试项: - 1. 充电状态下的电池电量 - 2. 设置设备时间,让设备休眠状态下,不彻底关机 - 3. 读取设备中存储的记录 - 4. 上报某条记录 - 5. 打印记录的checksum - -``` - -``` - 模块名: - - - 模块基本操作: - 打印寄存器列表 - - 初始化 - 1. 脚本解析器 - - 电机初始化(人造方法....),设定好所有必要的初始化参数,按下按键即可。 - 必要参数: - - 方法..... - ......... - - - - - - -``` - -``` -ID地址: -0x080E0000 -10 :(0x0A) -20 :(0x14) -30 :(0x1E) -40 :(0x28) -50 :(0x32) -60 :(0x3C) -70 :(0x46) -80 :(0x50) -90 :(0x5A) -100:(0x64) -110:(0x6E) -200:(0xCB) - -``` - -``` - - -1. 获取电容阈值曲线 - ->读取当前位置,电容数值 - ->相对移动(dpos,v) - -2. 获取压力曲线 - -3. 液面探测复位() -4. 开始液面探测(dpos,v,电容阈值,压力阈值) -5. 吸液(液面跟随) - - -1. 打开压力流 -2. 关闭压力流 - -基础命令格式 -/ 2 A 3000 R \r -命令开始 ID 命令 参数 执行 命令结束 - - -1. 读取压力,读取电容值 -2. 初始化 -3. A移动到(绝对位置) -4. P相对吸取 -5. D相对分配 - -配置指令 - 设置加减速度 - L1,2 - 设置开始速度 - 设置最高速度 - 设置停止速度 - 设置增量模式(单位) - 设置泵电机保持电流 - 设置泵电机运行电流 - - T终止 - C清除命令缓冲区 - TIP 弹出命令 - - 液面检测命令 - f开启或停止压力数据流 -

设定压力传感器增益 - r复位LLD输出 - 读取泵机错误码 - -参数表设置 -推导峰值检测参数 - 读取当前温度 - - - -``` ``` -页面功能: ----------------------------------------- - 参数校准功能 - 1.试管扫码位置校准 - 第一个试管 - 第二个试管 - ... - 第十个试管 - 2.试管处理位置校准 - 第一个试管 - 第二个试管 - ... - 第十个试管 - 3.舵机位置校准 - 失能舵机,设定当前位置为中点 - 舵机夹紧位置 - 松开位置 - 夹紧扭矩 - - 硬件功能验证: - 光电验证 - - 步进位置校准 - ----------------------------------------- - 动作编排 - 夹紧 - 松开 - ----------------------------------------- - 指标测试 - - ------------------------------------------------------------------------------------------------------------------------- -->解决不同设备之间的差异性 - 相对位置的不同造成的差异---> - 1.偏移位置 - 2.扭矩大小 - 3.每个动作的位置要不要抽离????? - - ----> - 读取参数,保存参数,恢复默认 - ------------------------------------------------------- - 1.参数 1.参数 1.参数 1.参数 1.参数 | 信息输出框 - 1.参数 1.参数 1.参数 1.参数 1.参数 | - 1.参数 1.参数 1.参数 1.参数 1.参数 | - 1.参数 1.参数 1.参数 1.参数 1.参数 | - ------------------------------------------------------- - 电机归零,电机失能,电机使能 - - 单步 - ----------------------------------------------------- - 入料电机正转 出料电机正转 平移到第N个试管扫码位 - 停止 停止 平移到第N个试管处理位 - - 开始扫码 - 停止扫码 - - - - ----------------------------------------------------- - 半自动 - - 进料 - 扫描试管信息 - 预处理摇匀试管N(脱帽/盖帽/摇匀) 摇匀[对勾] 摇匀次数() 摇匀角度 - 出料 - - ----------------------------------------------------- - 参数 - - - - - - ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- - -读取参数,保存参数,恢复默认 - - ----------------------------------------------------------------------------------------------------------------- - - - - - - - - - -``` - -``` - -``` - -``` - -T光学 - lasterGain 100 - scanGain 20 - -F光学 - lasterGain 0 (数值越大,功率越小) - scanGain 0 - - 第一次扫描,0,0 - - -实验材料: - Fx3-23 -> F光学,位置80,120,160 -``` \ No newline at end of file diff --git a/a8000_protocol b/a8000_protocol index 5fb4985..590c891 160000 --- a/a8000_protocol +++ b/a8000_protocol @@ -1 +1 @@ -Subproject commit 5fb4985d0c6cae59ab4f00a1de65910938bca096 +Subproject commit 590c89179513d49d36fd9ad9cb678e3d9e34be7a diff --git a/iflytop_canbus/iflytop_canbus_master.hpp b/iflytop_canbus/iflytop_canbus_master.hpp index 221d4bc..8553676 100644 --- a/iflytop_canbus/iflytop_canbus_master.hpp +++ b/iflytop_canbus/iflytop_canbus_master.hpp @@ -13,7 +13,6 @@ #include #include "a8000_protocol/protocol.hpp" - #include "idatachannel.hpp" #include "waveshare_can.hpp" @@ -110,6 +109,25 @@ class IflytopCanbusMaster { void readreg(int32_t device_id, int32_t regaddr, int32_t *val); void writereg(int32_t device_id, int32_t regaddr, int32_t val); + // kmodule_get_version + // kmodule_get_type + // kmodule_get_status + + void module_get_version(int32_t device_id, int32_t *version) { + callcmd0(device_id, kmodule_get_version); + *version = *(int32_t *)m_receipt_frame->data; + } + + void module_get_type(int32_t device_id, int32_t *type) { + callcmd0(device_id, kmodule_get_type); + *type = *(int32_t *)m_receipt_frame->data; + } + + void module_get_status(int32_t device_id, int32_t *status) { + callcmd0(device_id, kmodule_get_status); + *status = *(int32_t *)m_receipt_frame->data; + } + void step_motor_enable(int32_t device_id, int32_t enable) { callcmd1(device_id, kstep_motor_enable, enable); } void step_motor_easy_rotate(int32_t device_id, int32_t direction) { callcmd1(device_id, kstep_motor_easy_rotate, direction); } void step_motor_easy_move_by(int32_t device_id, int32_t distance) { callcmd1(device_id, kstep_motor_easy_move_by, distance); } diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index 95cf714..fc21112 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -406,7 +406,7 @@ void MainWindow::on_boardId_tableWidget_cellDoubleClicked(int row, int column) { QString id = ui->boardId_tableWidget->item(row, 1)->text(); ui->PublicState_DeviceID->setText(id); ui->ModuleNameText->setText(ui->boardId_tableWidget->item(row, 2)->text()); - ICM->readreg(id.toInt(), kreg_module_type, &moduleType); + ICM->module_get_type(id.toInt(), &moduleType); ui->buttonTabWidget->setCurrentIndex(moduleTypes[moduleType]); } catch (const std::exception &e) { diff --git a/src/tab/module_opera_tab.cpp b/src/tab/module_opera_tab.cpp index bcb6e07..3a1eae2 100644 --- a/src/tab/module_opera_tab.cpp +++ b/src/tab/module_opera_tab.cpp @@ -67,8 +67,8 @@ void ModuleOperaTab::construct(QWidget *parent) { int moduleType; int moduleVersion; - IflytopCanbusMaster::ins()->readreg(i, kreg_module_type, &moduleType); - IflytopCanbusMaster::ins()->readreg(i, kreg_module_version, &moduleVersion); + IflytopCanbusMaster::ins()->module_get_type(i, &moduleType); + IflytopCanbusMaster::ins()->module_get_version(i, &moduleVersion); if (i % 10 == 0) { ZQUI::ins()->ishow(""); diff --git a/src/version.h b/src/version.h index 652332c..268c864 100644 --- a/src/version.h +++ b/src/version.h @@ -1,4 +1,4 @@ #pragma once -#define VERSION "V17" +#define VERSION "V20" #define MAUFACTURER "iflytop"