Browse Source

update

master
zhaohe 1 year ago
parent
commit
ad88c21310
  1. 64
      src/app/transmit_disinfection/transmit_disinfection_can_master.cpp
  2. 54
      src/app/transmit_disinfection/transmit_disinfection_can_master.hpp
  3. 47
      src/app/transmit_disinfection/transmitdisinfection.cpp
  4. 13
      src/protocol/zscanprotocol_com/zscanprotocol_com.hpp
  5. 6
      src/zqui/zqui/mainwindow.ui

64
src/app/transmit_disinfection/transmit_disinfection_can_master.cpp

@ -42,4 +42,68 @@ ask_taskinfo_t TransmitDisinfectionCanMaster::readtaskinfo(int to, int32_t tasko
auto receipt = m_com->callcmd1(to, kfn_read_taskinfo, taskoff, DEFUALT_OVERTIME);
memcpy(&ack, receipt->getPacket()->params, sizeof(ack));
return ack;
}
void TransmitDisinfectionCanMaster::clear_reset_flag(int to) { m_com->callcmd0(to, kfn_clear_reset_flag, DEFUALT_OVERTIME); }
void TransmitDisinfectionCanMaster::pingAllBoard() {
m_com->callcmd1(0xff, kfn_heart_ping, 0xabcd, 20);
return;
}
void TransmitDisinfectionCanMaster::pump_rotate(int boardid, int subid, int rpm) { m_com->callcmd2(boardid, kfn_pump_rotate, subid, rpm, DEFUALT_OVERTIME); }
void TransmitDisinfectionCanMaster::pump_stop(int boardid, int subid) { m_com->callcmd1(boardid, kfn_pump_stop, subid, DEFUALT_OVERTIME); }
void TransmitDisinfectionCanMaster::pump_set_ihold_irun_idelay(int boardid, int subid, int ihold, int irun, int idelay) { m_com->callcmd4(boardid, kfn_pump_set_ihold_irun_idelay, subid, irun, ihold, idelay, DEFUALT_OVERTIME); }
void TransmitDisinfectionCanMaster::pump_set_acc(int boardid, int subid, int acc) { m_com->callcmd2(boardid, kfn_pump_set_acc, subid, acc, DEFUALT_OVERTIME); }
void TransmitDisinfectionCanMaster::pump_set_subic_reg(int boardid, int subid, int regadd, int val) { m_com->callcmd3(boardid, kfn_pump_set_subic_reg, subid, regadd, val, DEFUALT_OVERTIME); }
int TransmitDisinfectionCanMaster::pump_get_subic_reg(int boardid, int subid, int regadd) {
shared_ptr<Receipt> receipt = m_com->callcmd2(boardid, kfn_pump_get_subic_reg, subid, regadd, DEFUALT_OVERTIME);
return *(int32_t *)receipt->getPacket()->params;
}
void TransmitDisinfectionCanMaster::pump_ping(int32_t boardid) { m_com->callcmd1(boardid, kfn_pump_ping, boardid, DEFUALT_OVERTIME); }
/***********************************************************************************************************************
* blower *
***********************************************************************************************************************/
void TransmitDisinfectionCanMaster::blower_ctrl(int boardid, int power) { m_com->callcmd1(boardid, kfn_blower_ctrl, power); }
void TransmitDisinfectionCanMaster::blower_ctrl_safe_valve(int boardid, int valve_state) { m_com->callcmd1(boardid, kfn_blower_ctrl_safe_valve, valve_state); }
int TransmitDisinfectionCanMaster::blower_read_electric_current(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_blower_read_electric_current);
return rec->getContent(0);
}
/***********************************************************************************************************************
* air_compressor *
***********************************************************************************************************************/
void TransmitDisinfectionCanMaster::air_compressor_ctrl(int boardid, int power) { m_com->callcmd1(boardid, kfn_air_compressor_ctrl, power); }
void TransmitDisinfectionCanMaster::air_compressor_ctrl_safe_valve(int boardid, int valve_state) { m_com->callcmd1(boardid, kfn_air_compressor_ctrl_safe_valve, valve_state); }
int TransmitDisinfectionCanMaster::air_compressor_read_electric_current(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_air_compressor_read_electric_current);
return rec->getContent(0);
}
/***********************************************************************************************************************
* heater *
***********************************************************************************************************************/
void TransmitDisinfectionCanMaster::heater_ctrl(int boardid, int power) { m_com->callcmd1(boardid, kfn_heater_ctrl, power); }
void TransmitDisinfectionCanMaster::heater_ctrl_safe_valve(int boardid, int valve_state) { m_com->callcmd1(boardid, kfn_heater_ctrl_safe_valve, valve_state); }
int TransmitDisinfectionCanMaster::heater_read_electric_current(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_heater_read_electric_current);
return rec->getContent(0);
}
int TransmitDisinfectionCanMaster::heater_read_temperature_data(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_heater_read_temperature_data);
return rec->getContent(0);
}
void TransmitDisinfectionCanMaster::triple_warning_light_ctl(int boardid, int r, int g, int b, int warning) { m_com->callcmd4(boardid, kfn_triple_warning_light_ctl, r, g, b, warning); }
int TransmitDisinfectionCanMaster::evaporation_bin_water_sensor_read_state(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_evaporation_bin_water_sensor_read_state);
return rec->getContent(0);
}
int TransmitDisinfectionCanMaster::device_bottom_water_sensor_read_state(int boardid) {
auto rec = m_com->callcmd0(boardid, kfn_device_bottom_water_sensor_read_state);
return rec->getContent(0);
}

54
src/app/transmit_disinfection/transmit_disinfection_can_master.hpp

@ -26,7 +26,7 @@ class TransmitDisinfectionCanMaster {
ZSCanProtocolCom *m_com = nullptr;
public:
void initialize(QTSerialChannel *ch);
void initialize(QTSerialChannel *ch);
static TransmitDisinfectionCanMaster *ins() {
static TransmitDisinfectionCanMaster *m_instance = nullptr;
if (m_instance == nullptr) {
@ -37,8 +37,56 @@ class TransmitDisinfectionCanMaster {
public:
ack_read_board_info_data_t readboardinfo(int to);
ack_sysinfo_t readsysinfo(int to);
ask_taskinfo_t readtaskinfo(int to, int32_t taskoff);
ack_sysinfo_t readsysinfo(int to);
ask_taskinfo_t readtaskinfo(int to, int32_t taskoff);
void clear_reset_flag(int to);
void pingAllBoard();
void triple_warning_light_ctl(int boardid, int r, int g, int b, int warning) { callcmd4(boardid, kcmd_triple_warning_light_ctl, r, g, b, warning); }
int evaporation_bin_water_sensor_read_state(int boardid) {
callcmd0(boardid, kcmd_evaporation_bin_water_sensor_read_state);
return *(int32_t *)m_receipt_frame->params;
}
int device_bottom_water_sensor_read_state(int boardid) {
callcmd0(boardid, kcmd_device_bottom_water_sensor_read_state);
return *(int32_t *)m_receipt_frame->params;
}
/***********************************************************************************************************************
* PUMP *
***********************************************************************************************************************/
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);
void pump_ping(int32_t boardid);
/***********************************************************************************************************************
* blower *
***********************************************************************************************************************/
void blower_ctrl(int boardid, int power);
void blower_ctrl_safe_valve(int boardid, int valve_state);
int blower_read_electric_current(int boardid);
/***********************************************************************************************************************
* air_compressor *
***********************************************************************************************************************/
void air_compressor_ctrl(int boardid, int power);
void air_compressor_ctrl_safe_valve(int boardid, int valve_state);
int air_compressor_read_electric_current(int boardid);
/***********************************************************************************************************************
* heater *
***********************************************************************************************************************/
void heater_ctrl(int boardid, int power);
void heater_ctrl_safe_valve(int boardid, int valve_state);
int heater_read_electric_current(int boardid);
int heater_read_temperature_data(int boardid);
};
} // namespace iflytop

47
src/app/transmit_disinfection/transmitdisinfection.cpp

@ -13,6 +13,36 @@ using namespace std;
#define CAN_MASTER TransmitDisinfectionCanMaster::ins()
static void readBoardInfo(int deviceId) {
ack_read_board_info_data_t ack = CAN_MASTER->readboardinfo(deviceId);
ISHOW("boardType :%s(%d)", BoardTypeToString(ack.boardType), ack.boardType);
ISHOW("projectId :%s(%d)", ProjectIDToString(ack.projectId), ack.projectId);
ISHOW("protcol_version :%d", ack.protcol_version);
ISHOW("software_version :%d", ack.software_version);
ISHOW("hardware_version :%d", ack.hardware_version);
}
static void readSysInfo(int deviceId) {
//
ack_sysinfo_t ack = CAN_MASTER->readsysinfo(deviceId);
ask_taskinfo_t task[20];
for (int i = 0; i < ack.taskNum; i++) {
task[i] = CAN_MASTER->readtaskinfo(deviceId, i);
}
ISHOW("=========================== sys info ===========================");
ISHOW("total_heap_size :%d", ack.total_heap_size);
ISHOW("free_heap_size :%d", ack.free_heap_size);
ISHOW("sysHasRun :%d", ack.sysHasRun);
ISHOW("=");
ISHOW("=========================== task info ===========================");
ISHOW("taskoff name state stackRemainSize priority");
for (int i = 0; i < ack.taskNum; i++) {
ISHOW("%d %10s %c %d %d", i, task[i].taskName, task[i].state, task[i].stackRemindSize, task[i].priority);
}
ISHOW("=");
}
void TransmitDisinfection::buildTab(QTabWidget *fathertab) {
ZQVTabPage *tab = new ZQVTabPage(fathertab, "通用控制");
/***********************************************************************************************************************
@ -20,14 +50,14 @@ void TransmitDisinfection::buildTab(QTabWidget *fathertab) {
***********************************************************************************************************************/
{
ZQFunctionListBox *box = new ZQFunctionListBox(tab, "方法", 4);
box->newFunc("读取<液路板(id==2)>板卡信息", {}, [this](int argn, const char **args) {
ack_read_board_info_data_t ack = CAN_MASTER->readboardinfo(kFixBoardId_LiquidCtrl);
ISHOW("boardType :%s(%d)", BoardTypeToString(ack.boardType), ack.boardType);
ISHOW("projectId :%s(%d)", ProjectIDToString(ack.projectId), ack.projectId);
ISHOW("protcol_version :%d", ack.protcol_version);
ISHOW("software_version :%d", ack.software_version);
ISHOW("hardware_version :%d", ack.hardware_version);
});
box->newSubButton("读取<液路板(2)>板卡信息", [this](int argn, const char **args) { readBoardInfo(kFixBoardId_LiquidCtrl); });
box->newSubButton("读取<电源板(2)>系统信息", [this](int argn, const char **args) { readSysInfo(kFixBoardId_LiquidCtrl); });
box->newSubButtonEnd();
box->newSubButton("读取<电源板(3)>板卡信息", [this](int argn, const char **args) { readBoardInfo(kFixBoardId_PowerControl); });
box->newSubButton("读取<液路板(3)>系统信息", [this](int argn, const char **args) { readSysInfo(kFixBoardId_PowerControl); });
box->newSubButtonEnd();
}
tab->addSpacer();
@ -36,6 +66,7 @@ void TransmitDisinfection::buildTab(QTabWidget *fathertab) {
TransmitDisinfection::TransmitDisinfection(QWidget *parent) : QTabWidget(parent), ui(new Ui::TransmitDisinfection) {
ui->setupUi(this);
CAN_MASTER->initialize(&ChannelMgr::ins()->serialCh);
ZQUI::ins()->mainW()->setSerialDefaultBaudrate("2000000");
buildTab(this);
}

13
src/protocol/zscanprotocol_com/zscanprotocol_com.hpp

@ -19,7 +19,7 @@
namespace iflytop {
using namespace std;
namespace zscanprotocol{
namespace zscanprotocol {
typedef function<void(packet_type_t type, uint8_t from, uint8_t to, uint8_t *hex, uint32_t hexlen)> on_raw_data_t;
@ -39,12 +39,10 @@ class Receipt {
uint8_t receipt[1024];
size_t receiptLen;
zcanbus_packet_t* getPacket(){
return (zcanbus_packet_t*)receipt;
}
zcanbus_packet_t *getPacket() { return (zcanbus_packet_t *)receipt; }
int32_t getContent(int index) { return getPacket()->params[index]; }
};
class CanPacketRxBuffer {
public:
int32_t id = 0;
@ -87,7 +85,6 @@ class ZSCanProtocolCom {
zcanbus_packet_t *m_receipt_frame = (zcanbus_packet_t *)m_receipt_cache;
size_t m_receipt_len = 0;
public:
ZSCanProtocolCom() {}
@ -114,8 +111,6 @@ class ZSCanProtocolCom {
CanPacketRxBuffer *findRxBuff(int deviceId);
string ecode2str(int ecode);
};
}
} // namespace zscanprotocol
} // namespace iflytop

6
src/zqui/zqui/mainwindow.ui

@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
<width>753</width>
<height>545</height>
<width>1031</width>
<height>802</height>
</rect>
</property>
<property name="sizePolicy">
@ -975,7 +975,7 @@ background-color: rgb(245, 245, 245);
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>4</verstretch>
<verstretch>5</verstretch>
</sizepolicy>
</property>
<property name="title">

Loading…
Cancel
Save