Wired in teng low and high in config and wired in command handler
This commit is contained in:
@@ -37,6 +37,8 @@ enum task_type : uint8_t {
|
|||||||
TASK_CONFIG_CFG_RESET,
|
TASK_CONFIG_CFG_RESET,
|
||||||
TASK_CONFIG_VBAT_CAL_SET,
|
TASK_CONFIG_VBAT_CAL_SET,
|
||||||
TASK_CONFIG_VBAT_SET_LOW,
|
TASK_CONFIG_VBAT_SET_LOW,
|
||||||
|
TASK_CONFIG_TENG_SET_LOW,
|
||||||
|
TASK_CONFIG_TENG_SET_HIGH,
|
||||||
TASK_BATTERY_CAL,
|
TASK_BATTERY_CAL,
|
||||||
TASK_ALL_CONFIG_UPDATED,
|
TASK_ALL_CONFIG_UPDATED,
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -13,6 +13,8 @@ struct vehicle_config{
|
|||||||
bool track_slot_occupied[8] = {false};
|
bool track_slot_occupied[8] = {false};
|
||||||
double vbat_calibration = 0;
|
double vbat_calibration = 0;
|
||||||
double vbat_low = 0;
|
double vbat_low = 0;
|
||||||
|
double teng_low = 0;
|
||||||
|
double teng_high = 0;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct lat_lng {
|
struct lat_lng {
|
||||||
|
|||||||
@@ -120,6 +120,14 @@ cmd::command_id cmd::parse_command_name(const char *input) {
|
|||||||
return CMD_BATTERY_SET_LOW;
|
return CMD_BATTERY_SET_LOW;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (strcmp(input, "THERMO_SET_LOW") == 0) {
|
||||||
|
return CMD_THERMO_SET_LOW;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(input, "THERMO_SET_HIGH") == 0) {
|
||||||
|
return CMD_THERMO_SET_HIGH;
|
||||||
|
}
|
||||||
|
|
||||||
return CMD_UNKNOWN;
|
return CMD_UNKNOWN;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -436,6 +444,48 @@ int cmd::handle_battery_set_low(unsigned short argc, char* argv[]) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int cmd::handle_thermo_set_low(unsigned short argc, char* argv[]) {
|
||||||
|
if (argc != 2) {
|
||||||
|
#ifdef ERROR
|
||||||
|
if (_logger != nullptr) {
|
||||||
|
_logger->error("THERMO_SET_LOW expects 1 argument");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
double low = strtod(argv[1], nullptr);
|
||||||
|
uint32_t task_data;
|
||||||
|
memcpy(&task_data, &low, sizeof(uint32_t));
|
||||||
|
#ifdef INFO
|
||||||
|
if (_logger != nullptr) {
|
||||||
|
_logger->info("Setting low level for TENG");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
router::send(MOD_CFG, TASK_CONFIG_TENG_SET_LOW, task_data);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int cmd::handle_thermo_set_high(unsigned short argc, char* argv[]) {
|
||||||
|
if (argc != 2) {
|
||||||
|
#ifdef ERROR
|
||||||
|
if (_logger != nullptr) {
|
||||||
|
_logger->error("THERMO_SET_HIGH expects 1 argument");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
double low = strtod(argv[1], nullptr);
|
||||||
|
uint32_t task_data;
|
||||||
|
memcpy(&task_data, &low, sizeof(uint32_t));
|
||||||
|
#ifdef INFO
|
||||||
|
if (_logger != nullptr) {
|
||||||
|
_logger->info("Setting high level for TENG");
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
router::send(MOD_CFG, TASK_CONFIG_TENG_SET_LOW, task_data);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
int cmd::handle_unknown_command(unsigned short argc, char *argv[]) {
|
int cmd::handle_unknown_command(unsigned short argc, char *argv[]) {
|
||||||
#ifdef ERROR
|
#ifdef ERROR
|
||||||
if (_logger != nullptr) {
|
if (_logger != nullptr) {
|
||||||
@@ -487,6 +537,12 @@ int cmd::dispatch_command(command_id command, unsigned short argc, char *argv[])
|
|||||||
case CMD_BATTERY_SET_LOW:
|
case CMD_BATTERY_SET_LOW:
|
||||||
return this->handle_battery_set_low(argc, argv);
|
return this->handle_battery_set_low(argc, argv);
|
||||||
|
|
||||||
|
case CMD_THERMO_SET_LOW:
|
||||||
|
return this->handle_thermo_set_low(argc, argv);
|
||||||
|
|
||||||
|
case CMD_THERMO_SET_HIGH:
|
||||||
|
return this->handle_thermo_set_high(argc, argv);
|
||||||
|
|
||||||
case CMD_UNKNOWN:
|
case CMD_UNKNOWN:
|
||||||
default:
|
default:
|
||||||
return this->handle_unknown_command(argc, argv);
|
return this->handle_unknown_command(argc, argv);
|
||||||
|
|||||||
@@ -28,6 +28,8 @@ private:
|
|||||||
CMD_BATTERY_CAL,
|
CMD_BATTERY_CAL,
|
||||||
CMD_BATTERY_PRINT_VBAT,
|
CMD_BATTERY_PRINT_VBAT,
|
||||||
CMD_BATTERY_SET_LOW,
|
CMD_BATTERY_SET_LOW,
|
||||||
|
CMD_THERMO_SET_LOW,
|
||||||
|
CMD_THERMO_SET_HIGH,
|
||||||
};
|
};
|
||||||
|
|
||||||
HardwareSerial *_data_stream;
|
HardwareSerial *_data_stream;
|
||||||
@@ -59,6 +61,8 @@ private:
|
|||||||
int handle_battery_cal(unsigned short argc, char *argv[]);
|
int handle_battery_cal(unsigned short argc, char *argv[]);
|
||||||
int handle_battery_print_vbat(unsigned short argc);
|
int handle_battery_print_vbat(unsigned short argc);
|
||||||
int handle_battery_set_low(unsigned short argc, char *argv[]);
|
int handle_battery_set_low(unsigned short argc, char *argv[]);
|
||||||
|
int handle_thermo_set_low(unsigned short argc, char *argv[]);
|
||||||
|
int handle_thermo_set_high(unsigned short argc, char *argv[]);
|
||||||
int handle_unknown_command(unsigned short argc, char *argv[]);
|
int handle_unknown_command(unsigned short argc, char *argv[]);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|||||||
@@ -53,6 +53,9 @@ int system_logger::dump_config() {
|
|||||||
|
|
||||||
|
|
||||||
this->info("\tVBAT cal factor: " + String(temp.vbat_calibration, 6));
|
this->info("\tVBAT cal factor: " + String(temp.vbat_calibration, 6));
|
||||||
|
this->info("\tVBAT low: " + String(temp.vbat_low, 2));
|
||||||
|
this->info("\tTENG low: " + String(temp.teng_low, 2));
|
||||||
|
this->info("\tTENG high: " + String(temp.teng_high, 2));
|
||||||
|
|
||||||
// Track slots (one per line)
|
// Track slots (one per line)
|
||||||
for (size_t i = 0; i < 8; i++) {
|
for (size_t i = 0; i < 8; i++) {
|
||||||
|
|||||||
Reference in New Issue
Block a user