@@ -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