Browse Source

update

master
zhaohe 2 years ago
parent
commit
ef70ce36d2
  1. 7
      src/iflytop/components/zcanreceiver/zcanhost.cpp
  2. 22
      src/iflytop/components/zcanreceiver/zcanhost.hpp

7
src/iflytop/components/zcanreceiver/zcanhost.cpp

@ -269,9 +269,11 @@ int32_t ZCanHost::writeio(int id, bool value) {
logger->error("writeio error ack,{}", *zuint16p(&rx->data[0]));
return err::zecode(err::knoack);
}
m_writeio_cache[id] = value;
return 0;
}
bool ZCanHost::read_writeio_state_cache(int id) { return m_writeio_cache[id]; }
int32_t ZCanHost::readadc(int id, int& value) {
shared_ptr<ZCanReceiverCMD> cmd = make_shared<ZCanReceiverCMD>();
cmd->cmdid = 3;
@ -308,9 +310,10 @@ int32_t ZCanHost::pumpctrl_c1004(int sensorid, int16_t acc, int16_t rpm) {
logger->error("pumpctrl_c1004 error ack,{}", *zuint16p(&rx->data[0]));
return err::zecode(err::kfail);
}
m_pumpc1004_speed_cache[sensorid] = rpm;
return 0;
}
int16_t ZCanHost::pumpctrl_c1004_get_speed_cache(int id) { return m_pumpc1004_speed_cache[id]; }
int32_t ZCanHost::pumpctrl_c1004(int sensorid, int16_t acc, int16_t rpm, int8_t idlepower, int8_t power) {
shared_ptr<ZCanReceiverCMD> cmd = make_shared<ZCanReceiverCMD>();

22
src/iflytop/components/zcanreceiver/zcanhost.hpp

@ -21,6 +21,10 @@ class ZCanHost {
map<string, function<bool(int argc, char** argv, string& retval)>> m_cmdMap;
bool m_writeio_cache[255];
int16_t m_pumpc1004_speed_cache[255];
public:
void initialize(string can_if_name, int baudrate, bool enablLoopback);
bool execcmd(string cmd, string& retval);
@ -34,7 +38,10 @@ class ZCanHost {
int32_t ping(int board_id);
int32_t readio(int id, bool& value);
int32_t writeio(int id, bool value);
bool read_writeio_state_cache(int id);
int32_t readadc(int id, int& value);
// 读取M211887(维萨拉)传感器信息
@ -72,6 +79,8 @@ class ZCanHost {
int32_t pumpctrl_c1004(int sensorid, int16_t acc, int16_t rpm);
int32_t pumpctrl_c1004(int sensorid, int16_t acc, int16_t rpm, int8_t idlepower, int8_t power);
int16_t pumpctrl_c1004_get_speed_cache(int id);
/**
* @brief
*
@ -85,6 +94,19 @@ class ZCanHost {
int16_t zero; // 零点
int16_t full; // 满量程
} huacheng_pressure_sensor_read_c1005_t;
int32_t huacheng_pressure_sensor_get_pa(huacheng_pressure_sensor_read_c1005_t* rawdata) {
if (rawdata->unit == 0) {
int32_t pa = (int32_t)rawdata->value / (10.0 * rawdata->precision) * 1000000;
return pa;
} else if (rawdata->unit == 1) {
int32_t pa = (int32_t)rawdata->value / (10.0 * rawdata->precision) * 1000;
return pa;
} else if (rawdata->unit == 2) {
int32_t pa = (int32_t)rawdata->value / (10.0 * rawdata->precision);
return pa;
}
return -1;
}
int32_t huacheng_pressure_sensor_read_c1005(int sensorid, huacheng_pressure_sensor_read_c1005_t& value);
};
Loading…
Cancel
Save