Little a refactor, as a treat

This commit is contained in:
XANTRONIX Development 2023-12-27 01:06:53 -05:00
parent 41abc005cd
commit 98bb4e5308

View file

@ -44,6 +44,23 @@ static hexagram_schedule_slot table[] = {
{ 0, NULL, {} }
};
static void table_update(hexagram_schedule_slot *table,
hexagram_telemetry_dash_packet *packet) {
float speed_ms = sqrt(powf(packet->velocity.x, 2)
+ powf(packet->velocity.z, 2));
uint16_t engine_rpm = (uint16_t)(packet->engine_rpm.current * 4),
speed_rps = (uint16_t)(speed_ms * 2.0);
/* Engine speed */
table[0].frame.data[3] = (engine_rpm & 0xff00) >> 8;
table[0].frame.data[2] = engine_rpm & 0x00ff;
/* Vehicle speed */
table[3].frame.data[1] = (speed_rps & 0xff00) >> 8;
table[3].frame.data[2] = speed_rps & 0x00ff;
}
int hexagram_main_dash2can(int argc, char **argv) {
int sock;
@ -100,25 +117,13 @@ int hexagram_main_dash2can(int argc, char **argv) {
hexagram_telemetry_dash_packet packet;
ssize_t len;
float speed_ms = sqrt(powf(packet.velocity.x, 2)
+ powf(packet.velocity.z, 2));
uint16_t engine_rpm = (uint16_t)(packet.engine_rpm.current * 4),
speed_rps = (uint16_t)(speed_ms * 2.0);
if ((len = recv(sock, &packet, sizeof(packet), 0)) < 0) {
goto error_io;
} else if (len != (ssize_t)sizeof(packet)) {
continue;
}
/* Engine speed */
table[0].frame.data[3] = (engine_rpm & 0xff00) >> 8;
table[0].frame.data[2] = engine_rpm & 0x00ff;
/* Vehicle speed */
table[3].frame.data[1] = (speed_rps & 0xff00) >> 8;
table[3].frame.data[2] = speed_rps & 0x00ff;
table_update(table, &packet);
}
hexagram_schedule_destroy(schedule);