Browse Source

update

master
zhaohe 1 year ago
parent
commit
2f73c71454
  1. 2
      disinfection_iflytop_can_protocol
  2. 30
      iflytop_canbus/iflytop_canbus_master.cpp
  3. 14
      iflytop_canbus/iflytop_canbus_master.hpp
  4. 35
      src/mainwindow.cpp

2
disinfection_iflytop_can_protocol

@ -1 +1 @@
Subproject commit fc6162a1f1af5c5be894fc42c7991750d54d812d
Subproject commit c01f84e2ad44f02f615ceec55762e9eda995c0a1

30
iflytop_canbus/iflytop_canbus_master.cpp

@ -8,6 +8,8 @@ using namespace iflytop;
#define TAG "IflytopCanbusMaster"
#define DEFUALT_OVERTIME 30
IflytopCanbusMaster *IflytopCanbusMaster::ins() {
static IflytopCanbusMaster *ins = new IflytopCanbusMaster();
return ins;
@ -211,23 +213,43 @@ void IflytopCanbusMaster::callcmd3(int32_t device_id, int32_t cmdid, int32_t par
param[2] = param2;
callcmd(device_id, cmdid, (uint8_t *)param, 12, overtime);
}
void IflytopCanbusMaster::callcmd4(int32_t to, int32_t cmdid, int32_t param0, int32_t param1, int32_t param2, int32_t param3, int32_t overtime) {
int32_t param[4];
param[0] = param0;
param[1] = param1;
param[2] = param2;
param[3] = param3;
callcmd(to, cmdid, (uint8_t *)param, 16, overtime);
}
void IflytopCanbusMaster::sendraw(int32_t from, int32_t to, uint8_t *data, size_t len) { sendframe(from, to, data, len); }
ack_read_board_info_data_t IflytopCanbusMaster::readboardinfo(int to) {
ack_read_board_info_data_t ack;
callcmd0(to, kcmd_read_board_info, 100);
callcmd0(to, kcmd_read_board_info, DEFUALT_OVERTIME);
memcpy(&ack, m_receipt_frame->params, sizeof(ack));
return ack;
}
ack_sysinfo_t IflytopCanbusMaster::readsysinfo(int to) {
ack_sysinfo_t ack;
callcmd0(to, kcmd_read_sysinfo, 100);
callcmd0(to, kcmd_read_sysinfo, DEFUALT_OVERTIME);
memcpy(&ack, m_receipt_frame->params, sizeof(ack));
return ack;
}
ask_taskinfo_t IflytopCanbusMaster::readtaskinfo(int to, int32_t taskoff) {
ask_taskinfo_t ack;
callcmd1(to, kcmd_read_taskinfo, taskoff, 100);
callcmd1(to, kcmd_read_taskinfo, taskoff, DEFUALT_OVERTIME);
memcpy(&ack, m_receipt_frame->params, sizeof(ack));
return ack;
}
}
void IflytopCanbusMaster::pump_rotate(int boardid, int subid, int rpm) { callcmd2(boardid, kcmd_pump_rotate, subid, rpm, DEFUALT_OVERTIME); }
void IflytopCanbusMaster::pump_stop(int boardid, int subid) { callcmd1(boardid, kcmd_pump_stop, subid, DEFUALT_OVERTIME); }
void IflytopCanbusMaster::pump_set_ihold_irun_idelay(int boardid, int subid, int ihold, int irun, int idelay) { callcmd4(boardid, kcmd_pump_set_ihold_irun_idelay, subid, irun, ihold, idelay, DEFUALT_OVERTIME); }
void IflytopCanbusMaster::pump_set_acc(int boardid, int subid, int acc) { callcmd2(boardid, kcmd_pump_set_acc, subid, acc, DEFUALT_OVERTIME); }
void IflytopCanbusMaster::pump_set_subic_reg(int boardid, int subid, int regadd, int val) { callcmd3(boardid, kcmd_pump_set_subic_reg, subid, regadd, val, DEFUALT_OVERTIME); }
int IflytopCanbusMaster::pump_get_subic_reg(int boardid, int subid, int regadd) {
callcmd2(boardid, kcmd_pump_get_subic_reg, subid, regadd, DEFUALT_OVERTIME);
return *(int32_t *)m_receipt_frame->params;
}

14
iflytop_canbus/iflytop_canbus_master.hpp

@ -87,12 +87,24 @@ class IflytopCanbusMaster {
void callcmd1(int32_t to, int32_t cmdid, int32_t param0, int32_t overtime = 100);
void callcmd2(int32_t to, int32_t cmdid, int32_t param0, int32_t param1, int32_t overtime = 100);
void callcmd3(int32_t to, int32_t cmdid, int32_t param0, int32_t param1, int32_t param2, int32_t overtime = 100);
void callcmd4(int32_t to, int32_t cmdid, int32_t param0, int32_t param1, int32_t param2, int32_t param3, int32_t overtime = 100);
void sendraw(int32_t from, int32_t to, uint8_t *data, size_t len);
/***********************************************************************************************************************
* FUNCTION_LIST *
***********************************************************************************************************************/
ack_read_board_info_data_t readboardinfo(int to);
ack_sysinfo_t readsysinfo(int to);
ask_taskinfo_t readtaskinfo(int to,int32_t taskoff);
ask_taskinfo_t readtaskinfo(int to, int32_t taskoff);
void pump_rotate(int boardid, int subid, int rpm);
void pump_stop(int boardid, int subid);
void pump_set_ihold_irun_idelay(int boardid, int subid, int ihold, int irun, int idelay);
void pump_set_acc(int boardid, int subid, int acc);
void pump_set_subic_reg(int boardid, int subid, int regadd, int val);
int pump_get_subic_reg(int boardid, int subid, int regadd);
private:
void sendframe(int32_t from, int32_t to, uint8_t *frame, size_t len);

35
src/mainwindow.cpp

@ -258,7 +258,7 @@ void MainWindow::constructAppUI() {
ZQUI::ins()->ishow("hardware_version :%d", ack.hardware_version);
});
box->newFunc("系统信息", {}, [this](int argn, const char **args) { //
box->newFunc("内存信息", {}, [this](int argn, const char **args) { //
ack_sysinfo_t ack = IflytopCanbusMaster::ins()->readsysinfo(getDeviceId());
ask_taskinfo_t task[20];
for (int i = 0; i < ack.taskNum; i++) {
@ -271,13 +271,42 @@ void MainWindow::constructAppUI() {
ZQUI::ins()->ishow("=");
ZQUI::ins()->ishow("=========================== task info ===========================");
ZQUI::ins()->ishow("taskoff name state stackRemainSize priority");
ZQUI::ins()->ishow("taskoff name state stackRemainSize priority");
for (int i = 0; i < ack.taskNum; i++) {
ZQUI::ins()->ishow("%d %10s %c %d", i, task[i].taskName, task[i].state, task[i].stackRemindSize, task[i].priority);
ZQUI::ins()->ishow("%d %10s %c %d %d", i, task[i].taskName, task[i].state, task[i].stackRemindSize, task[i].priority);
}
ZQUI::ins()->ishow("=");
});
}
{
ZQFunctionListBox *box = new ZQFunctionListBox(tab, "泵机指令", 4);
box->newFunc("pump_rotate", {"subid", "rpm"}, [this](int argn, const char **args) { //
IflytopCanbusMaster::ins()->pump_rotate(getDeviceId(), atoi(args[0]), atoi(args[1]));
});
box->newFunc("pump_stop", {"subid"}, [this](int argn, const char **args) { //
IflytopCanbusMaster::ins()->pump_stop(getDeviceId(), atoi(args[0]));
});
box->newFunc("pump_set_ihold_irun_idelay", {"subid", "ihold", "irun", "idelay"}, [this](int argn, const char **args) { //
IflytopCanbusMaster::ins()->pump_set_ihold_irun_idelay(getDeviceId(), atoi(args[0]), atoi(args[1]), atoi(args[2]), atoi(args[3]));
});
box->newFunc("pump_set_acc", {"subid", "acc"}, [this](int argn, const char **args) { //
IflytopCanbusMaster::ins()->pump_set_acc(getDeviceId(), atoi(args[0]), atoi(args[1]));
});
box->newFunc("pump_set_subic_reg", {"subid", "regadd", "val"}, [this](int argn, const char **args) { //
IflytopCanbusMaster::ins()->pump_set_subic_reg(getDeviceId(), atoi(args[0]), atoi(args[1]), atoi(args[2]));
});
box->newFunc("pump_get_subic_reg", {"subid", "regadd"}, [this](int argn, const char **args) { //
int val = IflytopCanbusMaster::ins()->pump_get_subic_reg(getDeviceId(), atoi(args[0]), atoi(args[1]));
ZQUI::ins()->ishow("val:%d", val);
});
}
}
}

Loading…
Cancel
Save