@@ -497,13 +497,13 @@ uint16_t build_EAM_message(struct hott_eam_message *msg)
497
497
float voltage = (telestate -> Battery .Voltage > 0 ) ? telestate -> Battery .Voltage : 0 ;
498
498
float current = (telestate -> Battery .Current > 0 ) ? telestate -> Battery .Current : 0 ;
499
499
float energy = (telestate -> Battery .ConsumedEnergy > 0 ) ? telestate -> Battery .ConsumedEnergy : 0 ;
500
- msg -> voltage = scale_float2uword (voltage , 10 , 0 );
501
- msg -> current = scale_float2uword (current , 10 , 0 );
502
- msg -> capacity = scale_float2uword (energy , 0.1f , 0 );
500
+ msg -> voltage = scale_float2uword (voltage , 10 , 0 );
501
+ msg -> current = scale_float2uword (current , 10 , 0 );
502
+ msg -> capacity = scale_float2uword (energy , 0.1f , 0 );
503
503
504
504
// AirSpeed
505
505
float airspeed = (telestate -> Airspeed .TrueAirspeed > 0 ) ? telestate -> Airspeed .TrueAirspeed : 0 ;
506
- msg -> speed = scale_float2uword (airspeed , MS_TO_KMH , 0 );
506
+ msg -> speed = scale_float2uword (airspeed , MS_TO_KMH , 0 );
507
507
508
508
// temperatures
509
509
msg -> temperature1 = scale_float2uint8 (telestate -> Gyro .temperature , 1 , OFFSET_TEMPERATURE );
@@ -786,10 +786,12 @@ void update_telemetrydata()
786
786
*/
787
787
uint8_t generate_warning ()
788
788
{
789
+ bool gps_ok = (telestate -> SysAlarms .Alarm .GPS == SYSTEMALARMS_ALARM_OK );
790
+
789
791
// set warning tone with hardcoded priority
790
792
if ((telestate -> Settings .Warning .MinSpeed == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
791
- (telestate -> Settings .Limit .MinSpeed > telestate -> GPS .Groundspeed * MS_TO_KMH )) {
792
- return HOTT_TONE_A ; // maximum speed
793
+ (telestate -> Settings .Limit .MinSpeed > telestate -> GPS .Groundspeed * MS_TO_KMH ) && gps_ok ) {
794
+ return HOTT_TONE_A ; // minimum speed
793
795
}
794
796
if ((telestate -> Settings .Warning .NegDifference2 == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
795
797
(telestate -> Settings .Limit .NegDifference2 > telestate -> climbrate3s )) {
@@ -800,7 +802,7 @@ uint8_t generate_warning()
800
802
return HOTT_TONE_C ; // sink rate 1s
801
803
}
802
804
if ((telestate -> Settings .Warning .MaxDistance == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
803
- (telestate -> Settings .Limit .MaxDistance < telestate -> homedistance )) {
805
+ (telestate -> Settings .Limit .MaxDistance < telestate -> homedistance ) && gps_ok ) {
804
806
return HOTT_TONE_D ; // maximum distance
805
807
}
806
808
if ((telestate -> Settings .Warning .MinSensor1Temp == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
@@ -820,7 +822,7 @@ uint8_t generate_warning()
820
822
return HOTT_TONE_I ; // maximum temperature sensor 2
821
823
}
822
824
if ((telestate -> Settings .Warning .MaxSpeed == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
823
- (telestate -> Settings .Limit .MaxSpeed < telestate -> GPS .Groundspeed * MS_TO_KMH )) {
825
+ (telestate -> Settings .Limit .MaxSpeed < telestate -> GPS .Groundspeed * MS_TO_KMH ) && gps_ok ) {
824
826
return HOTT_TONE_L ; // maximum speed
825
827
}
826
828
if ((telestate -> Settings .Warning .PosDifference2 == HOTTBRIDGESETTINGS_WARNING_ENABLED ) &&
0 commit comments