⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 menu.c

📁 silicon wireless开发套件F920+Si4432原理图,源码
💻 C
📖 第 1 页 / 共 4 页
字号:
									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 + -