예제 #1
0
파일: DebugEM.c 프로젝트: forbelief/KL25EM
/***********************************************************
 *功能:	在OLED上显示信息
 *形参:
 *      	无
 *返回:
 *      	无
 *说明:	前三行即DisplayDebug[0]到DisplayDebug[6],每行有两种信息,仅仅只是显示有关值,解释字符只可以有两个以内。
 *			最后一行每次只可显示一种信息,可以根据按键调整显示信息的种类和其具有的值,可以有多个解释字符。
 *			可以调整三种,分别位DisplayDebug[6],DisplayDbug[7]和ButtenDisplay.interval。
 *			即前三行是输出信息,最后一行一般作为输入信息使用。
 */
void DisplayOLED(void)
{
	OLED_CLS();
	
	OLED_Print_Str(0, 0, DisplayDebug[0].str);	OLED_Print_Num(20, 0, DisplayDebug[0].num);		//只可以有两个以内的解释字符
	OLED_Print_Str(63, 0, DisplayDebug[1].str);	OLED_Print_Num(85, 0, DisplayDebug[1].num);
		
	OLED_Print_Str(0, 2, DisplayDebug[2].str);	OLED_Print_Num(20, 2, DisplayDebug[2].num);
	OLED_Print_Str(63, 2, DisplayDebug[3].str);	OLED_Print_Num(85, 2, DisplayDebug[3].num);
		
	OLED_Print_Str(0, 4, DisplayDebug[4].str);	OLED_Print_Num(20, 4, DisplayDebug[4].num);
	OLED_Print_Str(63, 4, DisplayDebug[5].str);	OLED_Print_Num(85, 4, DisplayDebug[5].num);
	
	switch(ButtenDisplay.flag)
	{
	case 0:
		OLED_Print_Str(0, 6, DisplayDebug[6].str);	OLED_Print_Num(85, 6, DisplayDebug[6].num);		//最后一行可以有多个解释字符
		break;
	case 1:
		OLED_Print_Str(0, 6, DisplayDebug[7].str);	OLED_Print_Num(85, 6, DisplayDebug[7].num);
		break;
	case 2:
		OLED_Print_Str(0, 6, "interval:");	OLED_Print_Num(85, 6, ButtenDisplay.interval);	//调整增减的步距
		break;
	default:
		;
	}
}
void restoreFactorySettings() {
	wifi_station_disconnect();
	wifi_set_opmode(0x3); //reset to STA+AP mode

	struct softap_config apConfig;
	wifi_softap_get_config(&apConfig);
	os_strncpy((char*)apConfig.ssid, "smartswitch", 18);
	apConfig.authmode = 0; //Disable security
	wifi_softap_set_config(&apConfig);

	struct station_config stconf;
	os_strncpy((char*)stconf.ssid, "", 2);
	os_strncpy((char*)stconf.password, "", 2);
	wifi_station_set_config(&stconf);

	OLED_CLS();
	OLED_Print(2, 0, "RESET", 1);
	os_printf("Reset completed. Restarting system...\n");

	ioOutput(0, GPIO_OUTPUT1);
	ioOutput(0, GPIO_OUTPUT2);

	while (!GPIO_INPUT_GET(GPIO_BUTTON1)) { os_printf("."); };
	while (!GPIO_INPUT_GET(GPIO_BUTTON2)) { os_printf("."); };

	system_restart();
}