/* * @brief: system state update * * @param: None * @retval: None */ void system_state_refresh(void) { _key_scan(); if(key_struct.medium_press_flag == true) { _shutdown(); } if(key_struct.long_press_flag == true) { _reboot(); } }
char _key_string(char __mode) { unsigned char __chr = 0, __i = 0; uint8_t __key = 0; if(__mode==0) { CURSOR_SHOW; while(1) { __key = _key_scan(_PAD_SINGLE); if(__key==_KEY_NULL || __key==_KEY_TIKET || __key==_KEY_MENU || __key==_KEY_SHIFT); else if(__key==_KEY_CANCEL) { __chr_count = 0; CURSOR_HIDE; _SHIFT_OFF;// return 1; } else if(__key==_KEY_ENTER) { __chr_count = 0; CURSOR_HIDE; _SHIFT_OFF;// return 0; } else if(__key==_KEY_CLEAR) { if(__chr_count>0) { _LCD_LEFT; _lcd(0x10); _LCD_LEFT; __buf_string[__chr_count-1] = '\0'; __chr_count--; } } else { if(__chr_count<__max_string) { _lcd(_table_alphanum(0, __key, 0)); __buf_string[__chr_count] = _table_alphanum(0, __key, 0); __buf_string[__chr_count + 1] = '\0'; __chr_count++; } } } } if(__mode==_STRING_ALPHANUM) { while(1) { CURSOR_SHOW; __key = _key_scan(_PAD_MULTI); if(__key == _KEY_NULL || __key == _KEY_TIKET || __key == _KEY_MENU); else if(__key == _KEY_CANCEL) { CURSOR_HIDE; _SHIFT_OFF; return 1; } else if(__key == _KEY_ENTER) { CURSOR_HIDE; _SHIFT_OFF; return 0; } else if(__key == _KEY_SHIFT) { __caps_lock = __caps_lock ^ 1; } else if(__key == _KEY_CLEAR) { if(__chr_count > 0) { if(!__key_shift) { _LCD_LEFT; _lcd(0x10); _LCD_LEFT; __buf_string[__chr_count - 1] = '\0'; __chr_count--; if(__chr_count == 19) { lcd_put(2, 20, 0x10); lcd_xy(2, 20); } _SHIFT_OFF; CURSOR_SHOW; //_SHIFT_FREE; } } } else { if(__chr_count < __max_string) { if(__key != __buf_anum) { __buf_anum = __key; __hit_count = 0; if(__key_shift == 1 && __buf_anum != 0) { _LCD_RIGHT; __chr_count++; if(__chr_count == 20) lcd_xy(3, 1); } } else { __hit_count++; } __chr = _table_alphanum(__caps_lock, __key, __hit_count); if(__chr == '\0') { __hit_count = 0; __chr = _table_alphanum(__caps_lock, __key, __hit_count); } if(__chr_count < __max_string) { _lcd(__chr); _LCD_LEFT; __buf_string[__chr_count] = __chr; __buf_string[__chr_count + 1] = '\0'; } } CURSOR_SHOW; //else _SHIFT_LOCK; } } } if(__mode==_STRING_PASSWORD) { CURSOR_SHOW; while(1) { __key = _key_scan(_PAD_SINGLE); if(__key==_KEY_NULL || __key==_KEY_TIKET || __key==_KEY_MENU || __key==_KEY_SHIFT); else if(__key==_KEY_CANCEL) { __chr_count = 0; CURSOR_HIDE; return 1; } else if(__key==_KEY_ENTER) { __chr_count = 0; CURSOR_HIDE; return 0; } else if(__key==_KEY_CLEAR) { if(__chr_count>0) { _LCD_LEFT; _lcd(0x10); _LCD_LEFT; __buf_string[__chr_count-1] = '\0'; __chr_count--; } } else { if(__chr_count<__max_string) { _lcd(0x2a); __buf_string[__chr_count] = _table_alphanum(0, __key, 0); __buf_string[__chr_count + 1] = '\0'; __chr_count++; } } } } if(__mode==_STRING_VALUE) { for(__i=0; __i<__max_string; __i++) _lcd('0'); while(1) { __key = _key_scan(_PAD_SINGLE); if(__key==_KEY_NULL || __key==_KEY_TIKET || __key==_KEY_MENU || __key==_KEY_SHIFT || __key==_KEY_CLEAR); else if(__key==_KEY_CANCEL) { __chr_count = 0; CURSOR_HIDE; return 1; } else if(__key==_KEY_ENTER) { __chr_count = 0; CURSOR_HIDE; return 0; } else { for(__i=0; __i<__max_string - 1; __i++) __buf_string[__i] = __buf_string[__i + 1]; __buf_string[__max_string - 1] = _table_alphanum(0, __key, 0); __buf_string[__max_string] = '\0'; for(__i=0; __i<__max_string; __i++) _LCD_LEFT; for(__i=0; __i<__max_string; __i++) _lcd(__buf_string[__i]); } } } return 0; }