ScreenManager::ScreenManager() : currentScreen(NULL), history_idx(0) { homeScreen = HomeScreen(); statusScreen = StatusScreen(); deviceScreen = DeviceScreen(); deviceAddScreen = DeviceAddScreen(); deviceRemoveScreen = DeviceRemoveScreen(); settingsScreen = SettingsScreen(); settingsSetModeScreen = SettingsSetModeScreen(); settingsSetTimeScreen = SettingsSetTimeScreen(); schedulePickDeviceScreen = SchedulePickDeviceScreen(); scheduleScreen = ScheduleScreen(); }
void SettingsKey(unsigned char key) { switch(key) { case 'F': { LCD_WriteCommand(LCD_CMD_CLEAR); // input_field_hi.char_count=2; input_field_lo.char_count=2; // sprintf(input_field_hi.input_char_buf,"%02u",channels[channel].calibrate.cal.cal_hi); sprintf(input_field_lo.input_char_buf,"%02bu",ADRESS_DEV); // input_field_hi.input_char_buf[2]=0; input_field_lo.input_char_buf[2]=0; input_field_ptr=&input_field_lo; } break; // case '[': // { // input_field_ptr=&input_field_lo; // } // break; // // case ']': // { // input_field_ptr=&input_field_hi; // } // break; case '=': { if((input_field_ptr->input_char_buf[0]!=' ')/*&&(input_field_ptr->input_char_buf[0]!='-')*/) { if(input_field_ptr==&input_field_lo) { sscanf(input_field_lo.input_char_buf,"%bu",&ADRESS_DEV); //SetFirstPoint(channel,channels[channel].channel_data,channels[channel].calibrate.cal.cal_lo); Device_Save_Address(ADRESS_DEV); } } } break; case '/': { if(input_field_ptr->char_count) { input_field_ptr->input_char_buf[input_field_ptr->char_count-1]=' '; input_field_ptr->char_count--; } } break; } if(input_field_ptr->char_count<2) { if((key>='0') && (key<='9')) { if(input_field_ptr->char_count==0) { if((key=='0')||(key=='1')) { input_field_ptr->input_char_buf[input_field_ptr->char_count]=key; input_field_ptr->char_count++; } } else { if(input_field_ptr->char_count==1) { if(input_field_ptr->input_char_buf[0]=='0') { input_field_ptr->input_char_buf[input_field_ptr->char_count]=key; input_field_ptr->char_count++; } else { if(((key>='0') && (key<='5'))) { input_field_ptr->input_char_buf[input_field_ptr->char_count]=key; input_field_ptr->char_count++; } } } } } } else { input_field_ptr->char_count=2; } SettingsScreen(); }