📄 menu.c
字号:
case 1: //FSK
if( MenuItems.name.data_rate < MAX_DR_VALUE ) MenuItems.name.data_rate++; else MenuItems.name.data_rate = 0;
break;
default: //OOK
if( MenuItems.name.data_rate < MAX_OOKDR_VALUE ) MenuItems.name.data_rate++; else MenuItems.name.data_rate = 0;
break;
}
}
else
{
if( MenuItems.name.data_rate < MAX_ADR_VALUE ) MenuItems.name.data_rate++; else MenuItems.name.data_rate = 0;
}
break;
case 1: //MODULATION MODE
if( MenuItems.name.arib_mode == FALSE )
if( MenuItems.name.modulation_mode < MAX_MM_VALUE ) MenuItems.name.modulation_mode++; else MenuItems.name.modulation_mode = 0;
else
MenuItems.name.modulation_mode = 0;
break;
case 2: //FREQUENCY
if( MenuItems.name.arib_mode == FALSE )
{
IncFreqCounter();
if( MenuItems.name.full_menu == FALSE )
{
if( CheckFreqBand() == FALSE )
{
do{
IncFreqCounter();
}while( CheckFreqBand() == FALSE );
}
}
}
else
{
if( MenuItems.name.frequency < MAX_ARIB_FREQ_SETTING-1 ) MenuItems.name.frequency++; else MenuItems.name.frequency = 0;
}
break;
default: break;
}
return UPDATE_PAGE;
break;
case Button3Pressed:
switch( CursorPosition )
{
case 0: //DATA RATE
if( MenuItems.name.arib_mode == FALSE )
{
switch(MenuItems.name.modulation_mode)
{
case 0: //GFSK
case 1: //FSK
if( MenuItems.name.data_rate == 0 ) MenuItems.name.data_rate = MAX_DR_VALUE; else MenuItems.name.data_rate--;
break;
default://OOK
if( MenuItems.name.data_rate == 0 ) MenuItems.name.data_rate = MAX_OOKDR_VALUE; else MenuItems.name.data_rate--;
break;
}
}
else
{
if( MenuItems.name.data_rate == 0 ) MenuItems.name.data_rate = MAX_ADR_VALUE; else MenuItems.name.data_rate--;
}
break;
case 1: //MODULATION MODE
if( MenuItems.name.arib_mode == FALSE )
if( MenuItems.name.modulation_mode == 0 ) MenuItems.name.modulation_mode = MAX_MM_VALUE; else MenuItems.name.modulation_mode--;
else
MenuItems.name.modulation_mode = 0;
break;
case 2: //FREQUENCY
if( MenuItems.name.arib_mode == FALSE )
{
DecFreqCounter();
if( MenuItems.name.full_menu == FALSE )
{
if( CheckFreqBand() == FALSE )
{
do{
DecFreqCounter();
}while( CheckFreqBand() == FALSE );
}
}
}
else
{
if( MenuItems.name.frequency == 0 ) MenuItems.name.frequency = MAX_ARIB_FREQ_SETTING-1; else MenuItems.name.frequency--;
}
break;
default: break;
}
return UPDATE_PAGE;
break;
case Button4Pressed:
return NEXT_PAGE;
break;
default:
return NONE;
break;
}
break;
/*RF PARAMETERS MENU1*/
case sMenuDrawRfParametersScreen2:
DrawEmptySettingPage();
memcpy(lcd_data,"RF PARAMETERS 3/4 ",21);
LcdWriteLine(LCD_LINE_1,lcd_data);
if ( TestcardData.chip_type == SI4432)
{
sprintf(lcd_data," Output Power: %sdBm", &t_output_power_4432[MenuItems.name.output_power] [0]);
LcdWriteLine(LCD_LINE_3,lcd_data);
}
if (TestcardData.chip_type == SI4431)
{
sprintf(lcd_data," Output Power: %sdBm", &t_output_power_4431[MenuItems.name.output_power] [0]);
LcdWriteLine(LCD_LINE_3,lcd_data);
}
if( SelectedAntennaType > RX_TX_SWITCH )
{
sprintf(lcd_data," Antenna Mode: %s",&t_antenna_mode[MenuItems.name.antenna_mode][0]);
LcdWriteLine(LCD_LINE_4,lcd_data);
}
//draw cursor
LcdSetCharCursor((CursorPosition+3),1);
LcdPutCh(CURSOR);
break;
case sMenuChangeRfParameters2:
//check the state of the push buttons
switch( CheckPushButtons() )
{
case Button1Pressed:
if( SelectedAntennaType > RX_TX_SWITCH )
{
if(CursorPosition < 1) CursorPosition++; else CursorPosition = 0;
}
return UPDATE_PAGE;
break;
case Button2Pressed:
//increase actual variable
switch( CursorPosition )
{
case 0: //OUTPUT POWER
if ( TestcardData.chip_type == SI4432)
{
if( MenuItems.name.output_power < MAX_OUTPUT_POWER_4432 ) MenuItems.name.output_power++; else MenuItems.name.output_power = 0;
}
if ( TestcardData.chip_type == SI4431)
{
if( MenuItems.name.output_power < MAX_OUTPUT_POWER_4431 ) MenuItems.name.output_power++; else MenuItems.name.output_power = 0;
}
break;
case 1: if( MenuItems.name.antenna_mode < MAX_A_MODE ) MenuItems.name.antenna_mode++; else MenuItems.name.antenna_mode = 0; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button3Pressed:
switch( CursorPosition )
{
case 0: //OUTPUT POWER
if ( TestcardData.chip_type == SI4432)
{
if( MenuItems.name.output_power == 0 ) MenuItems.name.output_power = MAX_OUTPUT_POWER_4432; else MenuItems.name.output_power--;
}
if ( TestcardData.chip_type == SI4431)
{
if( MenuItems.name.output_power == 0 ) MenuItems.name.output_power = MAX_OUTPUT_POWER_4431; else MenuItems.name.output_power--;
}
break;
case 1: if( MenuItems.name.antenna_mode == 0 ) MenuItems.name.antenna_mode = MAX_A_MODE; else MenuItems.name.antenna_mode--;
break;
default: break;
}
return UPDATE_PAGE;
break;
case Button4Pressed:
return NEXT_PAGE;
break;
default:
return NONE;
break;
}
break;
/*NODE PARAMETERS MENU*/
case sMenuDrawNodeParametersScreen:
DrawEmptySettingPage();
memcpy(lcd_data,"NODE PARAMETERS 4/4 ",21);
LcdWriteLine(LCD_LINE_1,lcd_data);
sprintf(lcd_data," ID: Self: %3bu",MenuItems.name.self_id);
LcdWriteLine(LCD_LINE_3,lcd_data);
sprintf(lcd_data," ID: Destination: %3bu",MenuItems.name.dest_id);
LcdWriteLine(LCD_LINE_4,lcd_data);
sprintf(lcd_data," Packet length: %3bu",t_packet_length[MenuItems.name.packet_length]);
LcdWriteLine(LCD_LINE_5,lcd_data);
sprintf(lcd_data," Max. Packets: %5u",v_max_packets[MenuItems.name.max_packets]);
LcdWriteLine(LCD_LINE_6,lcd_data);
//draw cursor
LcdSetCharCursor((CursorPosition+3),1);
LcdPutCh(CURSOR);
break;
case sMenuChangeNodeParameters:
//check the state of the push buttons
switch( CheckPushButtons() )
{
case Button1Pressed:
if ( MenuItems.name.eeprom_off == FALSE )
{
if(CursorPosition < 3) CursorPosition++; else CursorPosition = 1;
}
else
{
if(CursorPosition < 3) CursorPosition++; else CursorPosition = 0;
}
return UPDATE_PAGE;
break;
case Button2Pressed:
//increase actual variable
switch( CursorPosition )
{
if ( MenuItems.name.eeprom_off == TRUE )
{
case 0: if( MenuItems.name.self_id < 255 ) MenuItems.name.self_id++; else MenuItems.name.self_id = 0; break;
}
case 1: if( MenuItems.name.dest_id < 255 ) MenuItems.name.dest_id++; else MenuItems.name.dest_id = 0; break;
case 2: if( MenuItems.name.packet_length < MAX_PACKET_LENGTH ) MenuItems.name.packet_length++; else MenuItems.name.packet_length = 0; break;
case 3: if( MenuItems.name.max_packets < MAX_P_VALUE ) MenuItems.name.max_packets++; else MenuItems.name.max_packets = 0; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button3Pressed:
switch( CursorPosition )
{
if ( MenuItems.name.eeprom_off == TRUE )
{
case 0: if( MenuItems.name.self_id == 0 ) MenuItems.name.self_id = 255; else MenuItems.name.self_id--; break;
}
case 1: if( MenuItems.name.dest_id == 0 ) MenuItems.name.dest_id = 255; else MenuItems.name.dest_id--; break;
case 2: if( MenuItems.name.packet_length == 0 ) MenuItems.name.packet_length = MAX_PACKET_LENGTH; else MenuItems.name.packet_length--; break;
case 3: if( MenuItems.name.max_packets == 0 ) MenuItems.name.max_packets = MAX_P_VALUE; else MenuItems.name.max_packets--; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button4Pressed:
return NEXT_PAGE;
break;
default:
return NONE;
break;
}
break;
/*HIDDEN MENU PAGE1*/
case sMenuDrawHiddenScreen1:
DrawEmptySettingPage();
memcpy(lcd_data,"HIDDEN FUNCTIONS 1/2",21);
LcdWriteLine(LCD_LINE_1,lcd_data);
sprintf(lcd_data," Show GPS Range: %s",&t_yes_no[MenuItems.name.gps_enabled][0]);
LcdWriteLine(LCD_LINE_3,lcd_data);
sprintf(lcd_data," ARIB Modes: %s",&t_on_off[MenuItems.name.arib_mode][0]);
LcdWriteLine(LCD_LINE_4,lcd_data);
sprintf(lcd_data," All frequency: %s",&t_on_off[MenuItems.name.full_menu][0]);
LcdWriteLine(LCD_LINE_5,lcd_data);
sprintf(lcd_data," GPIO_0: %s", &t_gpio0_selection[MenuItems.name.gpio0_select][0]);
LcdWriteLine(LCD_LINE_6,lcd_data);
//draw cursor
LcdSetCharCursor((CursorPosition+3),1);
LcdPutCh(CURSOR);
break;
case sMenuChangeHiddenScreen1:
//check the state of the push buttons
switch( CheckPushButtons() )
{
case Button1Pressed:
if(CursorPosition < 3) CursorPosition++; else CursorPosition = 0;
return UPDATE_PAGE;
break;
case Button2Pressed:
//increase actual variable
switch( CursorPosition )
{
case 0: if( MenuItems.name.gps_enabled < MAX_BOOLEAN_MODE ) MenuItems.name.gps_enabled++; else MenuItems.name.gps_enabled = 0; break;
case 1: if( MenuItems.name.arib_mode < MAX_BOOLEAN_MODE ) MenuItems.name.arib_mode++; else MenuItems.name.arib_mode = 0; break;
case 2: if( MenuItems.name.full_menu < MAX_BOOLEAN_MODE ) MenuItems.name.full_menu++; else MenuItems.name.full_menu = 0; break;
case 3: if( MenuItems.name.gpio0_select < MAX_GPIO0_SELECT ) MenuItems.name.gpio0_select++; else MenuItems.name.gpio0_select = 0; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button3Pressed:
switch( CursorPosition )
{
case 0: if( MenuItems.name.gps_enabled == 0 ) MenuItems.name.gps_enabled = MAX_BOOLEAN_MODE; else MenuItems.name.gps_enabled--; break;
case 1: if( MenuItems.name.arib_mode == 0 ) MenuItems.name.arib_mode = MAX_BOOLEAN_MODE; else MenuItems.name.arib_mode--; break;
case 2: if( MenuItems.name.full_menu == 0 ) MenuItems.name.full_menu = MAX_BOOLEAN_MODE; else MenuItems.name.full_menu--; break;
case 3: if( MenuItems.name.gpio0_select == 0 ) MenuItems.name.gpio0_select = MAX_GPIO0_SELECT; else MenuItems.name.gpio0_select--; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button4Pressed:
return NEXT_PAGE;
break;
default:
return NONE;
break;
}
break;
/*HIDDEN MENU PAGE2*/
case sMenuDrawHiddenScreen2:
DrawEmptySettingPage();
memcpy(lcd_data,"HIDDEN FUNCTIONS 2/2",21);
LcdWriteLine(LCD_LINE_1,lcd_data);
sprintf(lcd_data," RSSI format:%s",&t_rssi_format[MenuItems.name.rssi_format][0]);
LcdWriteLine(LCD_LINE_3,lcd_data);
sprintf(lcd_data," Preamble Length:%3bun",MenuItems.name.preamble_length);
LcdWriteLine(LCD_LINE_4,lcd_data);
sprintf(lcd_data," PreaDetTreshold:%3bun",MenuItems.name.preamble_detection_treshold);
LcdWriteLine(LCD_LINE_5,lcd_data);
//draw cursor
LcdSetCharCursor((CursorPosition+3),1);
LcdPutCh(CURSOR);
break;
case sMenuChangeHiddenScreen2:
//check the state of the push buttons
switch( CheckPushButtons() )
{
case Button1Pressed:
if(CursorPosition < 2) CursorPosition++; else CursorPosition = 0;
return UPDATE_PAGE;
break;
case Button2Pressed:
//increase actual variable
switch( CursorPosition )
{
case 0: if( MenuItems.name.rssi_format < MAX_RSSI_FORMAT ) MenuItems.name.rssi_format++; else MenuItems.name.rssi_format = 0; break;
case 1: if( MenuItems.name.preamble_length < MAX_PREAMBLE_LENGTH ) MenuItems.name.preamble_length++; else MenuItems.name.preamble_length = 0; break;
case 2: if( MenuItems.name.preamble_detection_treshold < MAX_PREA_DETECTION_TRESH) MenuItems.name.preamble_detection_treshold++; else MenuItems.name.preamble_detection_treshold = 0; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button3Pressed:
switch( CursorPosition )
{
case 0: if( MenuItems.name.rssi_format == 0 ) MenuItems.name.rssi_format = MAX_RSSI_FORMAT; else MenuItems.name.rssi_format--; break;
case 1: if( MenuItems.name.preamble_length == 0 ) MenuItems.name.preamble_length = MAX_PREAMBLE_LENGTH; else MenuItems.name.preamble_length--; break;
case 2: if( MenuItems.name.preamble_detection_treshold == 0 ) MenuItems.name.preamble_detection_treshold = MAX_RSSI_FORMAT; else MenuItems.name.preamble_detection_treshold--; break;
default: break;
}
return UPDATE_PAGE;
break;
case Button4Pressed:
return NEXT_PAGE;
break;
default:
return NONE;
break;
}
break;
case sMenuClearIcon:
LcdClearLine(LCD_LINE_8);
LcdSetPictureCursor(8,33);
LcdDrawPicture(clear_inverted29x8);
break;
case sMenuStopIcon:
LcdClearLine(LCD_LINE_8);
LcdSetPictureCursor(8,5);
LcdDrawPicture(stop_inverted24x8);
LcdSetPictureCursor(8,33);
LcdDrawPicture(clear_inverted29x8);
break;
case sMenuClearSettingIcon:
LcdClearLine(LCD_LINE_8);
LcdSetPictureCursor(8,33);
LcdDrawPicture(clear_inverted29x8);
LcdSetPictureCursor(8,70);
LcdDrawPicture(setting_inverted48x8);
break;
case sMenuRestartDemo:
//clear LCD
LcdClearDisplay();
//put icons into the LCD
if( MenuItems.name.demo_mode != DEMO_MODE_RX )
{
LcdSetPictureCursor(1,12);
LcdDrawPicture(tx_inverted16x8);
LcdSetPictureCursor(8,5);
LcdDrawPicture(txon_inverted29x8);
}
if( MenuItems.name.demo_mode != DEMO_MODE_TX)
{
LcdSetPictureCursor(1,41);
LcdDrawPicture(rx_inverted16x8);
}
LcdSetPictureCursor(8,70);
LcdDrawPicture(setting_inverted48x8);
memcpy(lcd_data,"---------------------",21);
LcdWriteLine(LCD_LINE_3,lcd_data);
//print chip type
memcpy(lcd_data," ",21);
switch( TestcardData.chip_type )
{
case SI4030: sprintf(lcd_data,"Si4030"); break;
case SI4031: sprintf(lcd_data,"Si4031"); break;
case SI4032: sprintf(lcd_data,"Si4032"); break;
case SI4330: sprintf(lcd_data,"Si4330"); break;
case SI4430: sprintf(lcd_data,"Si4430"); break;
case SI4431: sprintf(lcd_data,"Si4431"); break;
case SI4432: sprintf(lcd_data,"Si4432"); break;
default: sprintf(lcd_data,"Si4xxx"); break;
}
sprintf(&lcd_data[8],"%s",&t_modulation_mode[MenuItems.name.modulation_mode][0]);
sprintf(&lcd_data[14],"%b3u %b3u",MenuItems.name.self_id,MenuItems.name.dest_id);
printf("%s\r\n",&lcd_data[14]);
lcd_data[17] = CURSOR;
LcdWriteLine(LCD_LINE_4,lcd_data);
//print second info line into the LCD
sprintf(lcd_data,"%sk/ M ",&t_data_rate[MenuItems.name.data_rate][0]);
if( MenuItems.name.arib_mode == FALSE )
{
memcpy(&lcd_data[5],demo_freqs[MenuItems.name.frequency].freq_text,5);
}
else
{
memcpy(&lcd_data[5],arib_freqs[MenuItems.name.frequency].freq_text,5);
}
switch( SelectedAntennaType )
{
case SEPARATE_RX_TX:
if( MenuItems.name.demo_mode != DEMO_MODE_TX)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -