|
|
@ -235,6 +235,24 @@ static void pump_func_impl(uint8_t from, uint8_t to, uint8_t* rawpacket, size_t |
|
|
|
int32_t regval = Hardware::ins().motor(subindex)->readInt(regadd); |
|
|
|
zcanbus_send_ack(packet, (uint8_t*)®val, sizeof(regval)); |
|
|
|
} |
|
|
|
|
|
|
|
// ping
|
|
|
|
else if (packet->function_id == kcmd_pump_get_subic_reg) { |
|
|
|
CHECK_PARAM_LEN(paramNum, 1); |
|
|
|
|
|
|
|
int32_t subindex = GET_PARAM(packet->params, 0); |
|
|
|
|
|
|
|
if (subindex >= Hardware::ins().motorNum()) { |
|
|
|
zcanbus_send_errorack(packet, kerr_invalid_param); |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
if (!Hardware::ins().motor(subindex)->ping()) { |
|
|
|
zcanbus_send_errorack(packet, kerr_motor_subdevice_offline); |
|
|
|
return; |
|
|
|
} |
|
|
|
zcanbus_send_ack(packet, NULL, 0); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
static void others_func_impl(uint8_t from, uint8_t to, uint8_t* rawpacket, size_t len) { |
|
|
|