Skip to content

Commit b9fba42

Browse files
PRC-117F - Add/Fix PGM Features (#1409)
Co-authored-by: jonpas <jonpas33@gmail.com>
1 parent 2df7bcc commit b9fba42

File tree

8 files changed

+425
-92
lines changed

8 files changed

+425
-92
lines changed

addons/sys_prc117f/farris_menus/Main.sqf

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ GVAR(INVALID_MODE) = ["INVALID_MODE", "INVALID_MODE", "",
2424
[
2525
//[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-squelch ----- $cch-encryption"],
2626
[ROW_XLARGE_1, ALIGN_LEFT, "INVALID MODE"],
27-
[ROW_LARGE_3, ALIGN_LEFT, "ONLY PT SUPPORTED"]
27+
[ROW_LARGE_3, ALIGN_LEFT, "ONLY PT/CT SUPPORTED"]
2828
],
2929
[
3030
nil, // onEntry
@@ -37,7 +37,7 @@ GVAR(INVALID_MODE) = ["INVALID_MODE", "INVALID_MODE", "",
3737
GVAR(NoItems) = ["ERROR_NOENTRY", "ERROR_NOENTRY", "",
3838
MENUTYPE_STATIC,
3939
[
40-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-encryption"],
40+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch $cch-encryption"],
4141
[ROW_LARGE_2, ALIGN_LEFT, "<NO ITEMS IN MENU>"],
4242
[ROW_SMALL_5, ALIGN_CENTER, "ENT OR CLR TO CONT"]
4343
],
@@ -86,7 +86,7 @@ GVAR(NOT_IMPLEMENTED) = ["NOT_IMPLEMENTED", "NOT_IMPLEMENTED", "",
8686
GVAR(VOLUME) = ["VOLUME", "VOLUME", "",
8787
MENUTYPE_STATIC,
8888
[
89-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch ----- $cch-encryption"],
89+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch $cch-encryption"],
9090
[ROW_LARGE_2, ALIGN_CENTER, "VOLUME"]
9191
],
9292
[
@@ -115,7 +115,7 @@ GVAR(VULOSHOME) = ["VULOSHOME", "VULOSHOME", "",
115115
["VULOSHOME-MAIN", "VULOSHOME-MAIN", "",
116116
MENUTYPE_STATIC,
117117
[
118-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-encryption"],
118+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-tek $cch-encryption"],
119119
[ROW_LARGE_2, ALIGN_LEFT, "$cch-number-$cch-name"],
120120
[ROW_LARGE_3, ALIGN_LEFT, "LOS VOC OFF $cch-modulation $cch-squelch"],
121121
[ROW_SMALL_5, ALIGN_LEFT, "TYPE ADF DATA MOD SQL"]
@@ -147,7 +147,7 @@ GVAR(VULOSHOME) = ["VULOSHOME", "VULOSHOME", "",
147147
["VULOSHOME-CHANNEL", "VULOSHOME-CHANNEL", "",
148148
MENUTYPE_STATIC,
149149
[
150-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-squelch ----- $cch-encryption"],
150+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch $cch-encryption"],
151151
[ROW_LARGE_2, ALIGN_LEFT, "R: $cch-frequencyrx"],
152152
[ROW_LARGE_3, ALIGN_LEFT, "T: $cch-frequencytx $cch-trafficrate "],
153153
[ROW_SMALL_5, ALIGN_LEFT, " FREQUENCY RATE"]
@@ -175,7 +175,7 @@ GVAR(VULOSHOME) = ["VULOSHOME", "VULOSHOME", "",
175175
["VULOSHOME-DATA", "VULOSHOME-DATA", "",
176176
MENUTYPE_STATIC,
177177
[
178-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-squelch ----- $cch-encryption"],
178+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch $cch-encryption"],
179179
[ROW_LARGE_2, ALIGN_LEFT, "--- ----- --"],
180180
[ROW_LARGE_3, ALIGN_LEFT, "$cch-optioncode ---- ANLG -- OFF"],
181181
[ROW_SMALL_5, ALIGN_LEFT, "OPT DATA VOICE INTLV FEC"]
@@ -203,7 +203,7 @@ GVAR(VULOSHOME) = ["VULOSHOME", "VULOSHOME", "",
203203
["VULOSHOME-LARGEFONT", "VULOSHOME-LARGEFONT", "",
204204
MENUTYPE_STATIC,
205205
[
206-
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting $bat $cch-channelmode $cch-squelch ----- $cch-encryption"],
206+
[ROW_SMALL_1, ALIGN_LEFT, "$transmitting VOL $cch-channelmode $cch-squelch $cch-encryption"],
207207
[ROW_XLARGE_2, ALIGN_LEFT, "$cch-number*$cch-name"]
208208
],
209209
[

addons/sys_prc117f/farris_menus/PGM.sqf

Lines changed: 218 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -233,12 +233,12 @@ GVAR(PGM_NORM_LOS) = ["PGM_NORM_LOS", "PGM_NORM_LOS", "",
233233
["FREQ", "FREQ", "",
234234
MENUTYPE_ACTIONSERIES,
235235
[
236-
[nil, "RX FREQUENCY", "",
236+
[nil, "RECEIVE FREQUENCY", "",
237237
MENUTYPE_FREQUENCY,
238238
[
239-
[ROW_LARGE_2, ALIGN_CENTER, "RX FREQUENCY"],
239+
[ROW_LARGE_2, ALIGN_CENTER, "RECEIVE FREQUENCY"],
240240
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
241-
[ROW_SMALL_5, ALIGN_CENTER, "ENTER FREQUENCY"]
241+
[ROW_SMALL_5, ALIGN_CENTER, "30 MHz - 51.99999 MHz"]
242242
],
243243
[
244244
{
@@ -249,7 +249,7 @@ GVAR(PGM_NORM_LOS) = ["PGM_NORM_LOS", "PGM_NORM_LOS", "",
249249
nil // We've implemented dynamic button press handlers for static displays
250250
],
251251
[
252-
0.0001, // min number/start default
252+
30, // min number/start default
253253
599.9999, // Max number
254254
7, // Digit count
255255
[ROW_LARGE_3, 0, 1] // Highlighting cursor information
@@ -259,9 +259,9 @@ GVAR(PGM_NORM_LOS) = ["PGM_NORM_LOS", "PGM_NORM_LOS", "",
259259
[nil, "TX FREQUENCY", "",
260260
MENUTYPE_FREQUENCY,
261261
[
262-
[ROW_LARGE_2, ALIGN_CENTER, "TX FREQUENCY"],
262+
[ROW_LARGE_2, ALIGN_CENTER, "TRANSMIT FREQUENCY"],
263263
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
264-
[ROW_SMALL_5, ALIGN_CENTER, "ENTER FREQUENCY"]
264+
[ROW_SMALL_5, ALIGN_CENTER, "30 MHz - 51.99999 MHz"]
265265
],
266266
[
267267
{
@@ -272,7 +272,7 @@ GVAR(PGM_NORM_LOS) = ["PGM_NORM_LOS", "PGM_NORM_LOS", "",
272272
nil // We've implemented dynamic button press handlers for static displays
273273
],
274274
[
275-
1, // min number/start default
275+
30, // min number/start default
276276
599.9999, // Max number
277277
7, // Digit count
278278
[ROW_LARGE_3, 0, 1] // Highlighting cursor information
@@ -334,10 +334,217 @@ GVAR(PGM_NORM_LOS) = ["PGM_NORM_LOS", "PGM_NORM_LOS", "",
334334
SET_STATE("pgm_rx_only",nil);
335335
}
336336
],
337-
[nil, "COMSEC", "", MENU_ACTION_SUBMENU, ["ERROR_NOENTRY"], nil ],
338-
[nil, "DATA", "", MENU_ACTION_SUBMENU, ["ERROR_NOENTRY"], nil ],
339-
[nil, "SQUELCH", "", MENU_ACTION_SUBMENU, ["SQ"], nil ],
340-
[nil, "TXPOWER", "",
337+
["COMSEC", "COMSEC", "",
338+
MENUTYPE_ACTIONSERIES,
339+
[
340+
[nil, "CRYPTO MODE", "",
341+
MENUTYPE_SELECTION,
342+
[
343+
[ROW_LARGE_2, ALIGN_CENTER, "CRYPTO MODE"],
344+
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
345+
[ROW_SMALL_5, ALIGN_CENTER, "^ TO SCROLL / ENT TO CONT"]
346+
],
347+
[
348+
{
349+
private _encryption = GET_RADIO_VALUE("encryption");
350+
if (_encryption > 0) exitWith {
351+
SET_STATE("menuSelection",1);
352+
};
353+
},
354+
nil, // onExit. Our parent static display generic event handler handles the 'Next' key
355+
nil,
356+
nil,
357+
{
358+
private _check = SCRATCH_GET(GVAR(currentRadioId),"pgm_encryption");
359+
360+
if (_check == "NONE") then {
361+
private _currentAction = GET_STATE("menuAction");
362+
_currentAction = _currentAction + 1;
363+
SET_STATE("menuAction",_currentAction);
364+
};
365+
}
366+
],
367+
[
368+
["NONE", "VINSON", "KG84", "FASCINATOR"],
369+
[ROW_LARGE_3, 0, -1] // Highlighting cursor information
370+
],
371+
"pgm_encryption"
372+
],
373+
[nil, "ENCRYPTION KEY", "",
374+
MENUTYPE_SELECTION,
375+
[
376+
[ROW_LARGE_2, ALIGN_CENTER, "ENCRYPTION KEY"],
377+
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
378+
[ROW_SMALL_5, ALIGN_CENTER, "^ TO SCROLL / ENT TO CONT"]
379+
],
380+
[
381+
{
382+
private _options = MENU_SELECTION_DISPLAYSET(_this) select 0;
383+
private _tek = GET_RADIO_VALUE("TEK");
384+
SET_STATE("menuSelection",_tek-1);
385+
},
386+
nil,
387+
nil,
388+
nil,
389+
nil
390+
],
391+
[
392+
["TEK01", "TEK02", "TEK03", "TEK04", "TEK05", "TEK06", "TEK07", "TEK08", "TEK09", "TEK10", "TEK11", "TEK12", "TEK13", "TEK14", "TEK15", "TEK16", "TEK17", "TEK18", "TEK19", "TEK20", "TEK21", "TEK22", "TEK23", "TEK24", "TEK25"],
393+
[ROW_LARGE_3, 0, -1] // Highlighting cursor information
394+
],
395+
"pgm_tek"
396+
]
397+
],
398+
[nil,
399+
nil], // This will be called after every action within the action list
400+
// This will get called on series completion
401+
{
402+
// Set the current channel to the edited preset, and save the so-far-edited values
403+
private _channelEncryption = SCRATCH_GET(GVAR(currentRadioId),"pgm_encryption");
404+
405+
private _channelTEK = parseNumber (SCRATCH_GET_DEF(GVAR(currentRadioId),"pgm_tek","0") SELECT [3]);
406+
407+
408+
private _channelNumber = ["getCurrentChannel"] call GUI_DATA_EVENT;
409+
private _channels = GET_STATE("channels");
410+
private _channel = HASHLIST_SELECT(_channels,_channelNumber);
411+
switch _channelEncryption do{
412+
default{
413+
HASH_SET(_channel,"trafficRate",16);
414+
HASH_SET(_channel,"TEK",_channelTEK);
415+
};
416+
case 'NONE': {
417+
HASH_SET(_channel,"TEK",1);
418+
};
419+
};
420+
421+
422+
423+
HASHLIST_SET(_channels,_channelNumber,_channel);
424+
SET_STATE("channels",_channels);
425+
426+
SET_STATE("pgm_encryption",nil);
427+
SET_STATE("pgm_tek",nil);
428+
429+
}
430+
],
431+
["DATA/VOC", "DATA/VOC", "",
432+
MENUTYPE_ACTIONSERIES,
433+
[
434+
[nil, "VOICE MODE", "",
435+
MENUTYPE_SELECTION,
436+
[
437+
[ROW_LARGE_2, ALIGN_CENTER, "VOICE MODE"],
438+
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
439+
[ROW_SMALL_5, ALIGN_CENTER, "^ TO SCROLL / ENT TO CONT"]
440+
],
441+
[
442+
nil,
443+
nil,
444+
nil
445+
],
446+
[
447+
["CLEAR", "MODEM"],
448+
[ROW_LARGE_3, 0, -1] // Highlighting cursor information
449+
],
450+
"pgm_voice_mode"
451+
],
452+
[nil, "MODULATION", "",
453+
MENUTYPE_SELECTION,
454+
[
455+
[ROW_LARGE_2, ALIGN_CENTER, "MODULATION"],
456+
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
457+
[ROW_SMALL_5, ALIGN_CENTER, "^ TO SCROLL / ENT TO CONT"]
458+
],
459+
[
460+
{
461+
private _options = MENU_SELECTION_DISPLAYSET(_this) select 0;
462+
private _txTone = GET_RADIO_VALUE("modulation");
463+
{
464+
if (_txTone == _x) exitWith {
465+
SET_STATE("menuSelection",_forEachIndex);
466+
};
467+
} forEach _options;
468+
},
469+
nil,
470+
nil,
471+
nil,
472+
{
473+
private _check = SCRATCH_GET(GVAR(currentRadioId),"pgm_modulation");
474+
if (_check == "AM") then {
475+
private _currentAction = GET_STATE("menuAction");
476+
_currentAction = _currentAction + 1;
477+
SET_STATE("pgm_fmd","8.0");
478+
479+
SET_STATE("menuAction",_currentAction);
480+
};
481+
}
482+
],
483+
[
484+
["AM", "FM"],
485+
[ROW_LARGE_3, 0, -1] // Highlighting cursor information
486+
],
487+
"pgm_modulation"
488+
],
489+
[nil, "FM DEVIATION", "",
490+
MENUTYPE_SELECTION,
491+
[
492+
[ROW_LARGE_2, ALIGN_CENTER, "FM DEVIATION"],
493+
[ROW_LARGE_3, ALIGN_CENTER, "%1"],
494+
[ROW_SMALL_5, ALIGN_CENTER, "^ TO SCROLL / ENT TO CONT"]
495+
],
496+
[
497+
{
498+
private _options = MENU_SELECTION_DISPLAYSET(_this) select 0;
499+
private _deviation = GET_RADIO_VALUE("deviation");
500+
{
501+
if (_deviation == parseNumber _x) exitWith {
502+
SET_STATE("menuSelection",_forEachIndex);
503+
};
504+
} forEach _options;
505+
},
506+
nil,
507+
nil // We've implemented dynamic button press handlers for static displays
508+
],
509+
[
510+
["8.0 kHz","6.5 kHz","5.0 kHz"],
511+
[ROW_LARGE_3, 0, -1] // Highlighting cursor information
512+
],
513+
"pgm_deviation"
514+
]
515+
],
516+
[nil, nil],
517+
{
518+
// Set the current channel to the edited preset, and save the so-far-edited values
519+
private _channelModulation = SCRATCH_GET(GVAR(currentRadioId),"pgm_modulation");
520+
private _channelDeviation = parseNumber SCRATCH_GET(GVAR(currentRadioId),"pgm_deviation");
521+
522+
private _channelNumber = ["getCurrentChannel"] call GUI_DATA_EVENT;
523+
private _channels = GET_STATE("channels");
524+
private _channel = HASHLIST_SELECT(_channels,_channelNumber);
525+
526+
switch _channelModulation do{
527+
case "AM": {
528+
HASH_SET(_channel,"squelch",0);
529+
HASH_SET(_channel,"CTCSSTx",0);
530+
HASH_SET(_channel,"CTCSSRx",0);
531+
HASH_SET(_channel,"optionCode",200);
532+
};
533+
case "FM": {
534+
HASH_SET(_channel,"optionCode",201);
535+
};
536+
};
537+
HASH_SET(_channel,"modulation",_channelModulation);
538+
HASH_SET(_channel,"deviation",_channelDeviation);
539+
540+
HASHLIST_SET(_channels,_channelNumber,_channel);
541+
SET_STATE("channels",_channels);
542+
SET_STATE("pgm_modulation",nil);
543+
SET_STATE("pgm_deviation",nil);
544+
}
545+
],
546+
[nil, "SQ", "", MENU_ACTION_SUBMENU, ["SQ"], nil ],
547+
[nil, "PWR", "",
341548
MENUTYPE_SELECTION,
342549
[
343550
[ROW_LARGE_2, ALIGN_CENTER, "TX POWER LEVEL"],

0 commit comments

Comments
 (0)