Added announceGPSInfo so we can read something meaningful for the GPS screen (not yet hooked up).
This commit is contained in:
parent
c3667313ba
commit
0a4ed4009c
|
|
@ -66,6 +66,9 @@ void announceTimeslot(uint8_t timeslot, VoicePromptQueueFlags_T flags);
|
||||||
void announceColorCode(uint8_t rxColorCode, uint8_t txColorCode, VoicePromptQueueFlags_T flags);
|
void announceColorCode(uint8_t rxColorCode, uint8_t txColorCode, VoicePromptQueueFlags_T flags);
|
||||||
void announceBank(uint16_t bank, VoicePromptQueueFlags_T flags);
|
void announceBank(uint16_t bank, VoicePromptQueueFlags_T flags);
|
||||||
void announceM17Info(channel_t* channel, VoicePromptQueueFlags_T flags);
|
void announceM17Info(channel_t* channel, VoicePromptQueueFlags_T flags);
|
||||||
|
#ifdef GPS_PRESENT
|
||||||
|
void announceGPSInfo(VoicePromptQueueFlags_T flags);
|
||||||
|
#endif // GPS_PRESENT
|
||||||
|
|
||||||
VoicePromptQueueFlags_T GetQueueFlagsForVoiceLevel();
|
VoicePromptQueueFlags_T GetQueueFlagsForVoiceLevel();
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -447,7 +447,68 @@ void announceM17Info(channel_t* channel, VoicePromptQueueFlags_T flags)
|
||||||
|
|
||||||
vpPlayIfNeeded(flags);
|
vpPlayIfNeeded(flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef GPS_PRESENT
|
||||||
|
void announceGPSInfo(VoicePromptQueueFlags_T flags)
|
||||||
|
{
|
||||||
|
if (!state.settings.gps_enabled)
|
||||||
|
return;
|
||||||
|
|
||||||
|
vpInitIfNeeded(flags);
|
||||||
|
if (flags & vpqIncludeDescriptions)
|
||||||
|
vpQueueStringTableEntry(¤tLanguage->gps);
|
||||||
|
|
||||||
|
switch (state.gps_data.fix_quality)
|
||||||
|
{
|
||||||
|
case 0:
|
||||||
|
vpQueueStringTableEntry(¤tLanguage->noFix);
|
||||||
|
break;
|
||||||
|
case 1:
|
||||||
|
vpQueueString("SPS", vpAnnounceCommonSymbols);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
vpQueueString("DGPS", vpAnnounceCommonSymbols);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
vpQueueString("PPS", vpAnnounceCommonSymbols);
|
||||||
|
break;
|
||||||
|
case 6:
|
||||||
|
vpQueueStringTableEntry(¤tLanguage->fixLost);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
vpQueueStringTableEntry(¤tLanguage->error);
|
||||||
|
vpPlayIfNeeded(flags);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
switch(state.gps_data.fix_type)
|
||||||
|
{
|
||||||
|
case 2:
|
||||||
|
vpQueueString("2D", vpAnnounceCommonSymbols);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
vpQueueString("3D", vpAnnounceCommonSymbols);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
// lat/long
|
||||||
|
char buffer[16] = "\0";
|
||||||
|
snprintf(buffer, 16, "%8.6f N", state.gps_data.latitude);
|
||||||
|
vpQueueString(buffer, vpAnnounceCommonSymbols);
|
||||||
|
float longitude = state.gps_data.longitude;
|
||||||
|
const char *direction = (longitude < 0) ? "W" : "E";
|
||||||
|
longitude = (longitude < 0) ? -longitude : longitude;
|
||||||
|
snprintf(buffer, 16, "%8.6f %s", longitude, direction);
|
||||||
|
vpQueueString(buffer, vpAnnounceCommonSymbols);
|
||||||
|
// speed/altitude:
|
||||||
|
snprintf(buffer, 16, "%4.1fkm/h", state.gps_data.speed);
|
||||||
|
vpQueueString(buffer, vpAnnounceCommonSymbols);
|
||||||
|
snprintf(buffer, 16, "%4.1fm", state.gps_data.altitude);
|
||||||
|
vpQueueString(buffer, vpAnnounceCommonSymbols);
|
||||||
|
|
||||||
|
vpPlayIfNeeded(flags);
|
||||||
|
}
|
||||||
|
#endif // GPS_PRESENT
|
||||||
|
|
||||||
/*
|
/*
|
||||||
there are 5 levels of verbosity:
|
there are 5 levels of verbosity:
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue