#include "HEADER_MZ.h" #include "096OLED_FONT_MZ.h" #define BRIGHTNESS 0xCF #define X_WIDTH 128 #define Y_WIDTH 64 #define MENU_IN 0 #define MENU_OUT 1 uint8_t menuIndex = 0; uint8_t settingPages = 0; uint8_t settingIndex = 0; uint8_t positionNum = 0; uint8_t positionLock = 0; void OLED_WriteData(uint8_t oledData) { I2C_Start(); I2C_WriteByte(0x78); //Slave address,SA0=0 I2C_WriteByte(0x40); I2C_WriteByte(oledData); I2C_Stop(); } void OLED_WriteCmd(uint8_t oledCmd) { I2C_Start(); I2C_WriteByte(0x78); //Slave address,SA0=0 I2C_WriteByte(0x00); I2C_WriteByte(oledCmd); I2C_Stop(); } void OLED_SetPos(uint8_t x, uint8_t y) { OLED_WriteCmd(0xb0 + y); OLED_WriteCmd(((x & 0xf0) >> 4) | 0x10); OLED_WriteCmd((x & 0x0f) | 0x01); } void OLED_FillScreen(uint8_t fillData) { uint8_t y, x; for(y = 0; y < 8; y++) { OLED_WriteCmd(0xb0 + y); OLED_WriteCmd(0x01); OLED_WriteCmd(0x10); for(x = 0; x < X_WIDTH; x++) OLED_WriteData(fillData); } } void OLED_Init(void) { // DelayNms(50); OLED_WriteCmd(0xae); // Turn off oled panel OLED_WriteCmd(0x00); // Set low column address OLED_WriteCmd(0x10); // Set high column address OLED_WriteCmd(0x40); // Set start line address, Set Mapping RAM Display Start Line (0x00~0x3F) OLED_WriteCmd(0x81); // Set contrast control register OLED_WriteCmd(BRIGHTNESS); // Set SEG Output Current Brightness OLED_WriteCmd(0xa1); // Set SEG/Column Mapping, 0xa0 reverse x, 0xa1 normal x OLED_WriteCmd(0xc8); // Set COM/Row Scan Direction, 0xc0 reverse y, 0xc8 normal y OLED_WriteCmd(0xa6); // Set normal display OLED_WriteCmd(0xa8); // Set multiplex ratio(1 to 64) OLED_WriteCmd(0x3f); // 1/64 duty OLED_WriteCmd(0xd3); // Set display offset Shift Mapping RAM Counter (0x00~0x3F) OLED_WriteCmd(0x00); // Not offset OLED_WriteCmd(0xd5); // Set display clock divide ratio/oscillator frequency OLED_WriteCmd(0x80); // Set divide ratio, Set Clock as 100 Frames/Sec OLED_WriteCmd(0xd9); // Set pre-charge period OLED_WriteCmd(0xf1); // Set Pre-Charge as 15 Clocks & Discharge as 1 Clock OLED_WriteCmd(0xda); // Set com pins hardware configuration OLED_WriteCmd(0x12); OLED_WriteCmd(0xdb); // Set vcomh OLED_WriteCmd(0x40); // Set VCOM Deselect Level OLED_WriteCmd(0x20); // Set Page Addressing Mode (0x00/0x01/0x02) OLED_WriteCmd(0x02); // OLED_WriteCmd(0x8d); // Set Charge Pump enable/disable OLED_WriteCmd(0x14); // Set(0x10) disable OLED_WriteCmd(0xa4); // Disable Entire Display On (0xa4/0xa5) OLED_WriteCmd(0xa6); // Disable Inverse Display On (0xa6/a7) OLED_WriteCmd(0xaf); // Turn on oled panel OLED_FillScreen(0x00); // Clear screen OLED_SetPos(0, 0); // Reset origin } void OLED_DrawChar8x16(uint8_t x, uint8_t y, uint8_t symbol[]) { uint8_t i = 0; if(x > 120) { x = 0; y += 2; } OLED_SetPos(x, y); for(i = 0; i < 8; i++) { OLED_WriteData(symbol[i]); } OLED_SetPos(x, y + 1); for(i = 0; i < 8; i++) { OLED_WriteData(symbol[i + 8]); } } void OLED_DrawChar16x16(uint8_t x, uint8_t y, uint8_t symbol[]) { uint8_t i = 0; if(x > 120) // If x large than max width, then move to next line begining { x = 0; y += 2; } OLED_SetPos(x, y); for(i = 0; i < 16; i++) { OLED_WriteData(symbol[i]); } OLED_SetPos(x, y + 1); for(i = 0; i < 16; i++) { OLED_WriteData(symbol[i + 16]); } } void OLED_DrawString8x16(uint8_t x, uint8_t y, uint8_t* str, uint8_t* font) { uint8_t i = 0; for(i = 0; i < strlen(str); i++) { if(x > 120) { x = 0; y += 2; } if(y > 6) break; OLED_DrawChar8x16(x, y, font + ((str[i] - 32) * 16)); x += 8; } } uint8_t NumToChar(uint8_t num) { if(num >= 0 && num <= 9) return num + 32 + 16; return num; // Not a number between 0-9 } void OLED_DisNumber(uint8_t x, uint8_t y, uint8_t disData) { OLED_SetPos(x, y); OLED_DrawChar8x16(x, y, FontSongTi8x16 + ((NumToChar(disData) - 32) * 16)); } void OLED_DisValue(uint8_t x, uint8_t y, uint8_t* disData, uint8_t disLength) { uint8_t i = 0; for(i = 0; i < disLength; i++) { OLED_SetPos(x, y); OLED_DrawChar8x16(x, y, FontSongTi8x16 + ((NumToChar(disData[i]) - 32) * 16)); x += 8; } } void OLED_Dis_Welcom(void) { uint8_t beginX = 28, beginY = 2; OLED_DrawString8x16(28, 2, "I. Astrol", FontSongTi8x16); OLED_DrawString8x16(56, 5, "HT", FontSongTi8x16); // menuIndex = 1; } void OLED_Dis_HumTemRefresh(void) { if(powerMode == PERFORMANCE) { uint8_t beginX = 16; // OLED_DrawChar16x16(20, 0, SysIcons + (0 * 32)); // OLED_DrawChar16x16(0, 0, SysIcons + (2 * 32)); OLED_DrawString8x16(16, 3, "Tem:", FontSongTi8x16); OLED_DrawChar16x16(beginX + 80, 3, CelsiusCharZh); OLED_DrawString8x16(16, 6, "Hum:", FontSongTi8x16); OLED_DrawChar8x16(beginX + 84, 6, FontSongTi8x16 + (('%' - 32) * 16)); if(vccValue >= 4160) OLED_DrawChar16x16(108, 0, SysIcons + (4 * 32)); // charge else if(vccValue < 4160 && vccValue >= 3600) OLED_DrawChar16x16(108, 0, SysIcons + (5 * 32)); // bat4 else if(vccValue < 3600 && vccValue >= 3400) OLED_DrawChar16x16(108, 0, SysIcons + (6 * 32)); // bat3 else if(vccValue < 3400 && vccValue >= 3200) OLED_DrawChar16x16(108, 0, SysIcons + (7 * 32)); // bat2 else if(vccValue < 3200 && vccValue >= 3000) OLED_DrawChar16x16(108, 0, SysIcons + (8 * 32)); // bat1 else if(vccValue < 3000) OLED_DrawChar16x16(108, 0, SysIcons + (3 * 32)); // bat! OLED_DisValue(56, 3, Temperature, 4); OLED_DisValue(56, 6, Humidity, 4); OLED_DisValue(56, 0, adcSave, 4); } if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; menuIndex = 2; settingPages = 0; settingIndex = 0; OLED_FillScreen(0x00); } } uint8_t OLED_Dis_MenuSwitch(uint8_t menuInOut) // 0:in, 1: out { if(menuSwitch == 0 && batBtn == 3 && menuInOut == MENU_IN) { batBtn = 0; menuSwitch = 1; settingIndex = settingIndex + 100; OLED_FillScreen(0x00); return 1; } if(menuSwitch == 0 && batBtn == 3 && menuInOut == MENU_OUT) { batBtn = 0; menuSwitch = 1; settingIndex = settingIndex - 100; OLED_FillScreen(0x00); } return 0; } void OLED_Dis_Menu(void) { if(settingIndex < 100) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; settingIndex++; if(settingIndex > 12) settingIndex = 0; // UartSend(settingIndex); } } settingPages = settingIndex / 4; /**************************************************************************/ if(settingPages == 0) { if(settingIndex == 0) { OLED_DrawString8x16(0, 0, "-PowerMode ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 0, "PowerMode ", FontSongTi8x16); if(powerMode == PERFORMANCE) OLED_DrawString8x16(112, 0, "PF", FontSongTi8x16); else OLED_DrawString8x16(112, 0, "PS", FontSongTi8x16); /**********************************************************************/ if(settingIndex == 1) { if(powerMode == PERFORMANCE) OLED_DrawString8x16(0, 2, "-DetectTime ", FontSongTi8x16); else OLED_DrawString8x16(0, 2, "-SleepTime ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else { if(powerMode == PERFORMANCE) OLED_DrawString8x16(0, 2, "DetectTime ", FontSongTi8x16); else OLED_DrawString8x16(0, 2, "SleepTime ", FontSongTi8x16); } OLED_DrawChar8x16(104, 2, FontSongTi8x16 + ((NumToChar(detectTime / 10)) - 32) * 16); OLED_DrawChar8x16(112, 2, FontSongTi8x16 + ((NumToChar(detectTime % 10)) - 32) * 16); OLED_DrawChar8x16(120, 2, FontSongTi8x16 + ((detectTimeUnit - 32) * 16)); /**********************************************************************/ if(settingIndex == 2) { OLED_DrawString8x16(0, 4, "-BatReocrd ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 4, "BatReocrd ", FontSongTi8x16); if(batRecord) OLED_DrawString8x16(104, 4, " On", FontSongTi8x16); else OLED_DrawString8x16(104, 4, "Off", FontSongTi8x16); /**********************************************************************/ if(settingIndex == 3) { OLED_DrawString8x16(0, 6, "-UploadTime ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 6, "UploadTime ", FontSongTi8x16); OLED_DrawChar8x16(104, 6, FontSongTi8x16 + ((NumToChar(uploadTime / 10)) - 32) * 16); OLED_DrawChar8x16(112, 6, FontSongTi8x16 + ((NumToChar(uploadTime % 10)) - 32) * 16); OLED_DrawChar8x16(120, 6, FontSongTi8x16 + ((uploadTimeUnit - 32) * 16)); } /**************************************************************************/ else if(settingPages == 1) { if(settingIndex == 4) { OLED_DrawString8x16(0, 0, "-UploadNow ->", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 0, "UploadNow ->", FontSongTi8x16); if(uploadNow == 4) uploadNow = 0; /**********************************************************************/ if(settingIndex == 5) { OLED_DrawString8x16(0, 2, "-WifiInfo ->", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 2, "WifiInfo ->", FontSongTi8x16); /**********************************************************************/ if(settingIndex == 6) { OLED_DrawString8x16(0, 4, "-WifiSet ->", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 4, "WifiSet ->", FontSongTi8x16); if(wifiConnect == 4) wifiConnect = 0; /**********************************************************************/ if(settingIndex == 7) { OLED_DrawString8x16(0, 6, "-Language ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 6, "Language ", FontSongTi8x16); if(language == ENGLISH) OLED_DrawString8x16(112, 6, "EN", FontSongTi8x16); else OLED_DrawString8x16(112, 6, "Ch", FontSongTi8x16); } /**************************************************************************/ else if(settingPages == 2) { if(settingIndex == 8) { OLED_DrawString8x16(0, 0, "-Style ->", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 0, "Style ->", FontSongTi8x16); /**********************************************************************/ if(settingIndex == 9) { OLED_DrawString8x16(0, 2, "-AI ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 2, "AI ", FontSongTi8x16); if(aiMode) OLED_DrawString8x16(104, 2, " On", FontSongTi8x16); else OLED_DrawString8x16(104, 2, "Off", FontSongTi8x16); /**********************************************************************/ if(settingIndex == 10) { OLED_DrawString8x16(0, 4, "-Version ", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 4, "Version ", FontSongTi8x16); OLED_DrawString8x16(80, 4, VERSION, FontSongTi8x16); /**********************************************************************/ if(settingIndex == 11) { OLED_DrawString8x16(0, 6, "-Reset ->", FontSongTi8x16); if(OLED_Dis_MenuSwitch(MENU_IN)) return; } else OLED_DrawString8x16(0, 6, "Reset ->", FontSongTi8x16); } /**************************************************************************/ else if(settingPages == 3) { if(settingIndex == 12) { OLED_DrawString8x16(0, 0, "-Back <-", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 3) { EE_WriteSetting(); batBtn = 0; menuSwitch = 1; menuIndex = 1; OLED_FillScreen(0x00); } } else OLED_DrawString8x16(0, 0, "Back <-", FontSongTi8x16); /**********************************************************************/ OLED_DrawString8x16(0, 2, " ", FontSongTi8x16); OLED_DrawString8x16(0, 4, " ", FontSongTi8x16); OLED_DrawString8x16(0, 6, " ", FontSongTi8x16); } /**************************************************************************/ /**************************************************************************/ if(settingIndex == 100) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; powerMode = !powerMode; // ~: reverse by bit, !: reverse by logic } if(powerMode == PERFORMANCE) { OLED_DrawString8x16(48, 2, "-PF", FontSongTi8x16); OLED_DrawString8x16(48, 4, " PS", FontSongTi8x16); } else { OLED_DrawString8x16(48, 2, " PF", FontSongTi8x16); OLED_DrawString8x16(48, 4, "-PS", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 101) { if(powerMode == PERFORMANCE) { detectTimeCounter = 0; if(detectTime == 0) // time cannot be 0 detectTime = 1; OLED_DrawChar8x16(40, 3, FontSongTi8x16 + ((NumToChar(detectTime / 10) - 32) * 16)); OLED_DrawChar8x16(48, 3, FontSongTi8x16 + ((NumToChar(detectTime % 10) - 32) * 16)); OLED_DrawChar8x16(56, 3, FontSongTi8x16 + (detectTimeUnit - 32) * 16); OLED_DrawString8x16(80, 3, "->", FontSongTi8x16); if(positionLock) { if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 0; } if(positionNum == 0) { OLED_DrawString8x16(40, 5, "^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; detectTime += 10; if(detectTime > 99) detectTime = detectTime % 100; } } else if(positionNum == 1) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; detectTime ++; if(detectTime % 10 == 0) detectTime -= 10; } } else if(positionNum == 2) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; if(detectTimeUnit == 'S') detectTimeUnit = 'M'; else if(detectTimeUnit == 'M') detectTimeUnit = 'H'; else if(detectTimeUnit == 'H') detectTimeUnit = 'S'; } } else { // OLED_DrawString8x16(40, 5, " ^^", FontSongTi8x16); } } else { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; positionNum++; if(positionNum > 3) positionNum = 0; } if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 1; if(positionNum == 3) { positionNum = 0; positionLock = 0; settingIndex = settingIndex - 100; OLED_FillScreen(0x00); } } if(positionNum == 0) OLED_DrawString8x16(40, 5, "* ", FontSongTi8x16); else if(positionNum == 1) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else if(positionNum == 2) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else OLED_DrawString8x16(40, 5, " **", FontSongTi8x16); } } else { sleepTimeCounter = 0; if(sleepTime == 0) // time cannot be 0 sleepTime = 1; OLED_DrawChar8x16(40, 3, FontSongTi8x16 + ((NumToChar(sleepTime / 10) - 32) * 16)); OLED_DrawChar8x16(48, 3, FontSongTi8x16 + ((NumToChar(sleepTime % 10) - 32) * 16)); OLED_DrawChar8x16(56, 3, FontSongTi8x16 + (sleepTimeUnit - 32) * 16); OLED_DrawString8x16(80, 3, "->", FontSongTi8x16); if(positionLock) { if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 0; } if(positionNum == 0) { OLED_DrawString8x16(40, 5, "^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; sleepTime += 10; if(sleepTime > 99) sleepTime = sleepTime % 100; } } else if(positionNum == 1) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; sleepTime ++; if(sleepTime % 10 == 0) sleepTime -= 10; } } else if(positionNum == 2) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; if(sleepTimeUnit == 'S') sleepTimeUnit = 'M'; else if(sleepTimeUnit == 'M') sleepTimeUnit = 'H'; else if(sleepTimeUnit == 'H') sleepTimeUnit = 'S'; } } else { // OLED_DrawString8x16(40, 5, " ^^", FontSongTi8x16); } } else { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; positionNum++; if(positionNum > 3) positionNum = 0; } if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 1; if(positionNum == 3) { positionNum = 0; positionLock = 0; settingIndex = settingIndex - 100; OLED_FillScreen(0x00); } } if(positionNum == 0) OLED_DrawString8x16(40, 5, "* ", FontSongTi8x16); else if(positionNum == 1) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else if(positionNum == 2) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else OLED_DrawString8x16(40, 5, " **", FontSongTi8x16); } } } /**************************************************************************/ if(settingIndex == 102) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; batRecord = !batRecord; } if(batRecord) { OLED_DrawString8x16(48, 2, "- On", FontSongTi8x16); OLED_DrawString8x16(48, 4, " Off", FontSongTi8x16); } else { OLED_DrawString8x16(48, 2, " On", FontSongTi8x16); OLED_DrawString8x16(48, 4, "-Off", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 103) { uploadTimeCounter = 0; if(uploadTime == 0) // time cannot be 0 uploadTime = 1; OLED_DrawChar8x16(40, 3, FontSongTi8x16 + ((NumToChar(uploadTime / 10) - 32) * 16)); OLED_DrawChar8x16(48, 3, FontSongTi8x16 + ((NumToChar(uploadTime % 10) - 32) * 16)); OLED_DrawChar8x16(56, 3, FontSongTi8x16 + (uploadTimeUnit - 32) * 16); OLED_DrawString8x16(80, 3, "->", FontSongTi8x16); if(positionLock) { if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 0; } if(positionNum == 0) { OLED_DrawString8x16(40, 5, "^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; uploadTime += 10; if(uploadTime > 99) uploadTime = uploadTime % 100; } } else if(positionNum == 1) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; uploadTime ++; if(uploadTime % 10 == 0) uploadTime -= 10; } } else if(positionNum == 2) { OLED_DrawString8x16(40, 5, " ^ ", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; if(uploadTimeUnit == 'S') uploadTimeUnit = 'M'; else if(uploadTimeUnit == 'M') uploadTimeUnit = 'H'; else if(uploadTimeUnit == 'H') uploadTimeUnit = 'S'; } } else { // OLED_DrawString8x16(40, 5, " ^^", FontSongTi8x16); } } else { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; positionNum++; if(positionNum > 3) positionNum = 0; } if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; menuSwitch = 1; positionLock = 1; if(positionNum == 3) { positionNum = 0; positionLock = 0; settingIndex = settingIndex - 100; OLED_FillScreen(0x00); } } if(positionNum == 0) OLED_DrawString8x16(40, 5, "* ", FontSongTi8x16); else if(positionNum == 1) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else if(positionNum == 2) OLED_DrawString8x16(40, 5, " * ", FontSongTi8x16); else OLED_DrawString8x16(40, 5, " **", FontSongTi8x16); } } /**************************************************************************/ if(settingIndex == 104) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; uploadNow = 1; OLED_FillScreen(0x00); } if(uploadNow == 0) { uploadNow = 1; OLED_FillScreen(0x00); OLED_DrawString8x16(16, 3, "Uploading...", FontSongTi8x16); } else if(uploadNow == 1) { OLED_DrawString8x16(16, 3, "Uploading...", FontSongTi8x16); } else if(uploadNow == 2) { uploadNow = 4; OLED_FillScreen(0x00); OLED_DrawString8x16(36, 2, " Upload", FontSongTi8x16); OLED_DrawString8x16(36, 4, "Success!", FontSongTi8x16); } else if(uploadNow == 3) { uploadNow = 4; OLED_FillScreen(0x00); OLED_DrawString8x16(44, 2, "Upload", FontSongTi8x16); OLED_DrawString8x16(48, 4, "Fail!", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 105) //todo { OLED_DrawString8x16(0, 4, "105 - IP: ", FontSongTi8x16); OLED_DrawString8x16(80, 4, VERSION, FontSongTi8x16); OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 106) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; wifiConnect = 1; OLED_FillScreen(0x00); } if(wifiConnect == 0) { wifiConnect = 1; OLED_FillScreen(0x00); OLED_DrawString8x16(12, 3, "Connecting...", FontSongTi8x16); } else if(wifiConnect == 1) { OLED_DrawString8x16(12, 3, "Connecting...", FontSongTi8x16); } else if(wifiConnect == 2) { wifiConnect = 4; OLED_FillScreen(0x00); OLED_DrawString8x16(40, 2, "Connect", FontSongTi8x16); OLED_DrawString8x16(36, 4, "Success!", FontSongTi8x16); } else if(wifiConnect == 3) { wifiConnect = 4; OLED_FillScreen(0x00); OLED_DrawString8x16(40, 2, "Connect", FontSongTi8x16); OLED_DrawString8x16(40, 4, " Fail!", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 107) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; language = !language; } if(language == ENGLISH) { OLED_DrawString8x16(48, 2, "-En", FontSongTi8x16); OLED_DrawString8x16(48, 4, " Ch", FontSongTi8x16); } else { OLED_DrawString8x16(48, 2, " En", FontSongTi8x16); OLED_DrawString8x16(48, 4, "-Ch", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 108) // todo // style { OLED_DrawString8x16(48, 3, "108", FontSongTi8x16); OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 109) { if(menuSwitch == 0 && batBtn == 2) { batBtn = 0; aiMode = !aiMode; } if(aiMode) { OLED_DrawString8x16(48, 2, "- On", FontSongTi8x16); OLED_DrawString8x16(48, 4, " Off", FontSongTi8x16); } else { OLED_DrawString8x16(48, 2, " On", FontSongTi8x16); OLED_DrawString8x16(48, 4, "-Off", FontSongTi8x16); } OLED_Dis_MenuSwitch(MENU_OUT); } /**************************************************************************/ if(settingIndex == 110) { OLED_DrawString8x16(8, 1, "I. Astrol - HT", FontSongTi8x16); OLED_DrawString8x16(40, 3, VERSION, FontSongTi8x16); OLED_DrawString8x16(88, 3, " ", FontSongTi8x16); OLED_DrawString8x16(24, 5, "MengZe.top", FontSongTi8x16); OLED_Dis_MenuSwitch(MENU_OUT); } if(settingIndex == 111) { OLED_DrawString8x16(40, 3, "-Reset", FontSongTi8x16); if(menuSwitch == 0 && batBtn == 3) { batBtn = 0; OLED_FillScreen(0x00); OLED_DrawString8x16(40, 3, "------", FontSongTi8x16); IapErase(0x0000); IapErase(0x0200); IapErase(0x0400); IapErase(0x0600); IapErase(0x0800); IapErase(0x0A00); IapErase(0x0C00); IapErase(0x0E00); SoftResetCode(); } } } void OLED_Dis_MenuDeal(void) { // UartSend(menuIndex); if(menuIndex == 0) OLED_Dis_Welcom(); else if(menuIndex == 1) { menuStayTimeStart = 0; menuStayTime = 0; OLED_Dis_HumTemRefresh(); } else if(menuIndex == 2) { menuStayTimeStart = 1; if(menuStayTime > 5000) { menuIndex = 1; menuSwitch = 1; EE_WriteSetting(); OLED_FillScreen(0x00); return; } OLED_Dis_Menu(); } if(batBtnCounterStart == 0) { batBtn = 0; } } // void main() // { // OLED_ShowInit(); // OLED_Display(); // while(1) // { // OLED_Display(); // DelayNms(1200); // } // }