|
|
@ -7,9 +7,64 @@ using namespace zcr; |
|
|
|
#define zint16p(x) ((int16_t*)(x))
|
|
|
|
#define zint32p(x) ((int32_t*)(x))
|
|
|
|
|
|
|
|
#define CHECK_ARGC_NUM(x) \
|
|
|
|
if (argc != (x + 1)) { \ |
|
|
|
logger->error("do {},argc error", argv[0]); \ |
|
|
|
retval = "argc num error"; \ |
|
|
|
return false; \ |
|
|
|
} |
|
|
|
|
|
|
|
void ZCanHost::initialize(string can_if_name, int baudrate, bool enablLoopback) { |
|
|
|
m_zcanReceiverHost = make_shared<ZCanReceiverHost>(); |
|
|
|
m_zcanReceiverHost->initialize(can_if_name, baudrate, enablLoopback); |
|
|
|
|
|
|
|
m_cmdMap["pumpctrl_c1004"] = [this](int argc, char** argv, string& retval) { |
|
|
|
CHECK_ARGC_NUM(4); |
|
|
|
uint8_t id = atoi(argv[1]); |
|
|
|
int16_t acc = atoi(argv[2]); |
|
|
|
int16_t rpm = atoi(argv[3]); |
|
|
|
return pumpctrl_c1004(id, acc, rpm) != 0; |
|
|
|
}; |
|
|
|
|
|
|
|
// ZCanHost::readio(int id, bool& value)
|
|
|
|
// ZCanHost::writeio(int id, bool value)
|
|
|
|
// ZCanHost::readadc(int id, int& value)
|
|
|
|
|
|
|
|
m_cmdMap["readio"] = [this](int argc, char** argv, string& retval) { |
|
|
|
CHECK_ARGC_NUM(1); |
|
|
|
uint8_t id = atoi(argv[1]); |
|
|
|
bool v = false; |
|
|
|
if (readio(id, v) != 0) { |
|
|
|
logger->error("readio fail"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
retval = to_string(v); |
|
|
|
return true; |
|
|
|
}; |
|
|
|
|
|
|
|
m_cmdMap["writeio"] = [this](int argc, char** argv, string& retval) { |
|
|
|
CHECK_ARGC_NUM(2); |
|
|
|
uint8_t id = atoi(argv[1]); |
|
|
|
bool v = atoi(argv[2]); |
|
|
|
if (writeio(id, v) != 0) { |
|
|
|
logger->error("writeio fail"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
return true; |
|
|
|
}; |
|
|
|
|
|
|
|
m_cmdMap["readadc"] = [this](int argc, char** argv, string& retval) { |
|
|
|
CHECK_ARGC_NUM(1); |
|
|
|
uint8_t id = atoi(argv[1]); |
|
|
|
int v = 0; |
|
|
|
if (readadc(id, v) != 0) { |
|
|
|
logger->error("readadc fail"); |
|
|
|
return false; |
|
|
|
} |
|
|
|
logger->info("readadc:{},{}", id, v); |
|
|
|
retval = fmt::format("ACK:{}", v); |
|
|
|
return true; |
|
|
|
}; |
|
|
|
} |
|
|
|
|
|
|
|
static void prase_cmd(char* input, int inputlen, int& argc, char* argv[]) { |
|
|
|