Changes the way cardinals are rotated on the watch when using the pcb version and not the dev platform

This commit is contained in:
Th3maz1ng 2023-03-19 22:11:24 +01:00
parent 60cf47b142
commit ded23eb223

View File

@ -72,8 +72,8 @@ static void rotate_cardinal(CompassCardinal_t *cardinal, uint16_t azimuth)
lv_coord_t rotated_x, rotated_y; lv_coord_t rotated_x, rotated_y;
float azimuth_in_rads = (float)azimuth*M_PI/180.0; float azimuth_in_rads = (float)azimuth*M_PI/180.0;
rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) - (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x; rotated_x = (float)(cardinal->position.x-120+cardinal->offset.x)*cos(azimuth_in_rads) + (float)(cardinal->position.y-120+cardinal->offset.y)*sin(azimuth_in_rads) + 120-cardinal->offset.x;
rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) + (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y; rotated_y = (float)(cardinal->position.y-120+cardinal->offset.y)*cos(azimuth_in_rads) - (float)(cardinal->position.x-120+cardinal->offset.x)*sin(azimuth_in_rads) + 120-cardinal->offset.y;
lv_obj_set_pos(cardinal->label, rotated_x, rotated_y); lv_obj_set_pos(cardinal->label, rotated_x, rotated_y);
} }
@ -102,7 +102,7 @@ void compass_screen_set_azimuth(CompassScreen_t * const compassScreen, uint16_t
//We make sure the azimuth is in the right range ie 0 to 359 //We make sure the azimuth is in the right range ie 0 to 359
azimuth %= 360; azimuth %= 360;
uint16_t azimuthAdjusted = 359 - azimuth; uint16_t azimuthAdjusted = /*359 -*/ azimuth;
uint8_t index; uint8_t index;
@ -129,7 +129,7 @@ void compass_screen_set_azimuth(CompassScreen_t * const compassScreen, uint16_t
//Rotate each cardinal with the current azimuth //Rotate each cardinal with the current azimuth
rotate_cardinal(&compassScreen->northCardinal, azimuth); rotate_cardinal(&compassScreen->northCardinal, azimuth);
lv_img_set_angle(compassScreen->northMarker, azimuth*10); lv_img_set_angle(compassScreen->northMarker, -azimuth*10);
//lv_meter_set_scale_range(compassScreen->compassGraduation.meter, compassScreen->compassGraduation.scale, 0, 330, 330, azimuth-90); //lv_meter_set_scale_range(compassScreen->compassGraduation.meter, compassScreen->compassGraduation.scale, 0, 330, 330, azimuth-90);
rotate_cardinal(&compassScreen->eastCardinal, azimuth); rotate_cardinal(&compassScreen->eastCardinal, azimuth);