Little a refactor, as a treat
This commit is contained in:
parent
41abc005cd
commit
98bb4e5308
1 changed files with 18 additions and 13 deletions
|
@ -44,6 +44,23 @@ static hexagram_schedule_slot table[] = {
|
||||||
{ 0, NULL, {} }
|
{ 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 hexagram_main_dash2can(int argc, char **argv) {
|
||||||
int sock;
|
int sock;
|
||||||
|
|
||||||
|
@ -100,25 +117,13 @@ int hexagram_main_dash2can(int argc, char **argv) {
|
||||||
hexagram_telemetry_dash_packet packet;
|
hexagram_telemetry_dash_packet packet;
|
||||||
ssize_t len;
|
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) {
|
if ((len = recv(sock, &packet, sizeof(packet), 0)) < 0) {
|
||||||
goto error_io;
|
goto error_io;
|
||||||
} else if (len != (ssize_t)sizeof(packet)) {
|
} else if (len != (ssize_t)sizeof(packet)) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Engine speed */
|
table_update(table, &packet);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
hexagram_schedule_destroy(schedule);
|
hexagram_schedule_destroy(schedule);
|
||||||
|
|
Loading…
Add table
Reference in a new issue