@ScotchMist If you are using Spad Next, Ive done a snippet (17282) to fix all these issues.
Here are the expressions for each of the windows that will show exactly what you see on the plane. But I agree, we shouldn't need to write this code ourselves to interpret these windows. Sharing it so everyone can enjoy flying the plane with their hardware:
Altitude:
Display Expression-Result Format '000'
If(
[LVAR:AFCAS_ALT_Window_1] == 254 &&
[LVAR:AFCAS_ALT_Window_2] == 254 &&
[LVAR:AFCAS_ALT_Window_3] == 254 &&
[LVAR:AFCAS_ALT_Window_4] == 254,
'',
(
If([LVAR:AFCAS_ALT_Window_1] == -16 || [LVAR:AFCAS_ALT_Window_1] == 254, 0,
[LVAR:AFCAS_ALT_Window_1]) * 10000 +
If([LVAR:AFCAS_ALT_Window_2] == -16 || [LVAR:AFCAS_ALT_Window_2] == 254, 0,
[LVAR:AFCAS_ALT_Window_2]) * 1000 +
If([LVAR:AFCAS_ALT_Window_3] == -16 || [LVAR:AFCAS_ALT_Window_3] == 254, 0,
[LVAR:AFCAS_ALT_Window_3]) * 100 +
If(
[LVAR:AFCAS_ALT_Window_4] == -16 ||
[LVAR:AFCAS_ALT_Window_4] == 31 ||
[LVAR:AFCAS_ALT_Window_4] == 254,
0,
[LVAR:AFCAS_ALT_Window_4]
) * 10
))
Heading:
Display Expression-Result Format '000'
If(
[LVAR:AFCAS_HDG_Window_1] == 254 &&
[LVAR:AFCAS_HDG_Window_2] == 254 &&
[LVAR:AFCAS_HDG_Window_3] == 254,
'',
If(
[LVAR:AFCAS_HDG_Window_1] == 255 &&
[LVAR:AFCAS_HDG_Window_2] == 255 &&
[LVAR:AFCAS_HDG_Window_3] == 255,
'---',
If([LVAR:AFCAS_HDG_Window_1] == -16 || [LVAR:AFCAS_HDG_Window_1] == 254, 0,
[LVAR:AFCAS_HDG_Window_1]) * 100 +
If([LVAR:AFCAS_HDG_Window_2] == -16 || [LVAR:AFCAS_HDG_Window_2] == 254, 0,
[LVAR:AFCAS_HDG_Window_2]) * 10 +
If([LVAR:AFCAS_HDG_Window_3] == -16 || [LVAR:AFCAS_HDG_Window_3] == 254, 0,
[LVAR:AFCAS_HDG_Window_3])
))
Speed:
If(
[LVAR:AFCAS_SPD_Window_1] == 254 &&
[LVAR:AFCAS_SPD_Window_2] == 254 &&
[LVAR:AFCAS_SPD_Window_3] == 254,
'',
If(
[LVAR:AFCAS_SPD_Window_1] == 255 &&
[LVAR:AFCAS_SPD_Window_2] == 255 &&
[LVAR:AFCAS_SPD_Window_3] == 255,
'---',
(
If([LVAR:AFCAS_SPD_Window_1] == -16, 0, [LVAR:AFCAS_SPD_Window_1]) * 100 +
If([LVAR:AFCAS_SPD_Window_2] == -16, 0, [LVAR:AFCAS_SPD_Window_2]) * 10 +
If([LVAR:AFCAS_SPD_Window_3] == -16, 0, [LVAR:AFCAS_SPD_Window_3])
)))
Vertical speed:
If(
[LVAR:AFCAS_VS_Window_1] == 254 &&
[LVAR:AFCAS_VS_Window_2] == 254 &&
[LVAR:AFCAS_VS_Window_3] == 254 &&
[LVAR:AFCAS_VS_Window_4] == 254 &&
[LVAR:AFCAS_VS_Window_5] == 254,
'',
If(
[LVAR:AFCAS_VS_Window_1] == 255 &&
[LVAR:AFCAS_VS_Window_2] == 255 &&
[LVAR:AFCAS_VS_Window_3] == 255 &&
[LVAR:AFCAS_VS_Window_4] == 255 &&
[LVAR:AFCAS_VS_Window_5] == 255,
'-----',
If([LVAR:AFCAS_VS_Window_1] == 253, 1, -1) *
(
If([LVAR:AFCAS_VS_Window_2] == -16, 0, [LVAR:AFCAS_VS_Window_2]) * 1000 +
[LVAR:AFCAS_VS_Window_3] * 100
)))