📄 dc550_phonesm_display12.c
字号:
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 0;
}
}
return 0;
}
/******************************************************************************
* FUNCTION:
* BOOL phonesm_display12_exec_modemcommand(DC550MDCMessage command)
******************************************************************************
* DESCRIPTION:
* This function is called when the phone receives a modem command while
* in the Display 12 State. The behavior of the Display 12 State actually
* does depend on the nature of the command received. The commands are
* generally split into three categories: those that only propogate, those
* that always propogate and exit, and those that propogate and may exit
* depending on the current exit state.
*****************************************************************************/
BOOL phonesm_display12_exec_modemcommand(DC550MDCMessage command) {
switch(command) {
// These commands simply propogate
case MDC_DMS_SOFT_RESET:
case MDC_DMS_SAVE_INDICATOR_RESET:
case MDC_DMS_OPEN_ECHO:
case MDC_DMS_CLOSE_ECHO:
case MDC_DMS_ALERT_OFF:
case MDC_DMS_HANDSET_OFF:
case MDC_DMS_VOICE_OFF:
case MDC_DMS_HANDSFREE_OFF:
case MDC_DMS_BUZZER_OFF:
case MDC_DMS_BUZZER_ON:
case MDC_DMS_INDICATOR_KEY01_OFF:
case MDC_DMS_INDICATOR_KEY01_WINK:
case MDC_DMS_INDICATOR_KEY01_FLASH:
case MDC_DMS_INDICATOR_KEY01_ON:
case MDC_DMS_INDICATOR_KEY02_OFF:
case MDC_DMS_INDICATOR_KEY02_WINK:
case MDC_DMS_INDICATOR_KEY02_FLASH:
case MDC_DMS_INDICATOR_KEY02_ON:
case MDC_DMS_INDICATOR_KEY03_OFF:
case MDC_DMS_INDICATOR_KEY03_WINK:
case MDC_DMS_INDICATOR_KEY03_FLASH:
case MDC_DMS_INDICATOR_KEY03_ON:
case MDC_DMS_INDICATOR_KEY04_OFF:
case MDC_DMS_INDICATOR_KEY04_WINK:
case MDC_DMS_INDICATOR_KEY04_FLASH:
case MDC_DMS_INDICATOR_KEY04_ON:
case MDC_DMS_INDICATOR_KEY05_OFF:
case MDC_DMS_INDICATOR_KEY05_WINK:
case MDC_DMS_INDICATOR_KEY05_FLASH:
case MDC_DMS_INDICATOR_KEY05_ON:
case MDC_DMS_INDICATOR_KEY06_OFF:
case MDC_DMS_INDICATOR_KEY06_WINK:
case MDC_DMS_INDICATOR_KEY06_FLASH:
case MDC_DMS_INDICATOR_KEY06_ON:
case MDC_DMS_INDICATOR_KEY07_OFF:
case MDC_DMS_INDICATOR_KEY07_WINK:
case MDC_DMS_INDICATOR_KEY07_FLASH:
case MDC_DMS_INDICATOR_KEY07_ON:
case MDC_DMS_INDICATOR_KEY08_OFF:
case MDC_DMS_INDICATOR_KEY08_WINK:
case MDC_DMS_INDICATOR_KEY08_FLASH:
case MDC_DMS_INDICATOR_KEY08_ON:
case MDC_DMS_INDICATOR_KEY09_OFF:
case MDC_DMS_INDICATOR_KEY09_WINK:
case MDC_DMS_INDICATOR_KEY09_FLASH:
case MDC_DMS_INDICATOR_KEY09_ON:
case MDC_DMS_INDICATOR_KEY10_OFF:
case MDC_DMS_INDICATOR_KEY10_WINK:
case MDC_DMS_INDICATOR_KEY10_FLASH:
case MDC_DMS_INDICATOR_KEY10_ON:
case MDC_DMS_INDICATOR_KEY11_OFF:
case MDC_DMS_INDICATOR_KEY11_WINK:
case MDC_DMS_INDICATOR_KEY11_FLASH:
case MDC_DMS_INDICATOR_KEY11_ON:
case MDC_DMS_INDICATOR_KEY12_OFF:
case MDC_DMS_INDICATOR_KEY12_WINK:
case MDC_DMS_INDICATOR_KEY12_FLASH:
case MDC_DMS_INDICATOR_KEY12_ON:
case MDC_DMS_INDICATOR_KEY13_OFF:
case MDC_DMS_INDICATOR_KEY13_WINK:
case MDC_DMS_INDICATOR_KEY13_FLASH:
case MDC_DMS_INDICATOR_KEY13_ON:
case MDC_DMS_INDICATOR_KEY14_OFF:
case MDC_DMS_INDICATOR_KEY14_WINK:
case MDC_DMS_INDICATOR_KEY14_FLASH:
case MDC_DMS_INDICATOR_KEY14_ON:
switch(phonesm_display12_exitstate) {
case PHONESM_STATE_IDLE:
phonesm_idle_exec_modemcommand(command);
return 0;
case PHONESM_STATE_ACTIVE:
phonesm_active_exec_modemcommand(command);
return 0;
case PHONESM_STATE_PROGRAM:
phonesm_program_exec_modemcommand(command);
return 0;
case PHONESM_STATE_MEMORY:
phonesm_memory_exec_modemcommand(command);
return 0;
case PHONESM_STATE_PREDIAL:
phonesm_predial_exec_modemcommand(command);
return 0;
case PHONESM_STATE_INIT:
case PHONESM_STATE_DISPLAY12:
case PHONESM_STATE_VOLUME:
case PHONESM_STATE_CONTRAST:
default:
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
// These commands propogate and may exit depending on the exit state
case MDC_DMS_CLEAR_WORKING_BUFFER:
case MDC_DMS_CLEAR_DISPLAY:
case MDC_DMS_CLEAR_WB_LINE0:
case MDC_DMS_CLEAR_WB_LINE1:
case MDC_DMS_ENABLE_DIGIT_ECHOING_TYPE1:
case MDC_DMS_ENABLE_DIGIT_ECHOING_TYPE2:
case MDC_DMS_DISABLE_DISPLAY_ECHOING:
case MDC_DMS_DISABLE_DISPLAY:
case MDC_DMS_POWER_DOWN_DISPLAY:
case MDC_DMS_RESUME_DIGIT_ECHOING:
case MDC_DMS_TRANSMIT_DISPLAY_STATUS:
case MDC_DMS_WB_CURSOR_TO_P0:
case MDC_DMS_WB_CURSOR_TO_P24:
case MDC_DMS_DISABLE_DISPLAY_CURSOR:
case MDC_DMS_ENABLE_DISPLAY_CURSOR:
if(phonesm_display12_exitstate == PHONESM_STATE_ACTIVE) {
phonesm_active_exec_modemcommand(command);
return 0;
}
else {
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
// These commands cause the Display 12 State to exit
case MDC_DMS_HARD_RESET:
case MDC_DMS_ALERT_ON:
case MDC_DMS_HANDSET_ON:
case MDC_DMS_VOICE_ON:
case MDC_DMS_HANDSFREE_ON:
case MDC_DMS_CLEAR_WB_IN12SECONDS:
case MDC_DMS_ENABLE_DISPLAY:
case MDC_DMS_DISPLAY_RESET:
default: // This covers the ascii characters
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
}
/******************************************************************************
* FUNCTION:
* BOOL phonesm_display12_exec_periodic(BOOL firstline, BOOL secondline)
******************************************************************************
* DESCRIPTION:
* This function is called periodically whether or not the phone is in the
* Idle State. Since the Idle State is always active, this function will
* always be called. firstline and secondline will both be 1 when the
* Idle State is "on top". firstline would be 0 during Predial, and
* secondline would also be 0 when the telephone is active. This function
* returns 1 if the periodic function call needs to be repeated due to a
* state change and 0 otherwise.
*****************************************************************************/
BOOL phonesm_display12_exec_periodic(BOOL firstline, BOOL secondline) {
if(firstline && secondline) {
phonesm_display12_periodtimeout--;
if(phonesm_display12_periodtimeout == 0) {
// Exit this state
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
switch(phonesm_display12_exitstate) {
case PHONESM_STATE_IDLE:
phonesm_idle_exec_periodic(0,0);
return 0;
case PHONESM_STATE_ACTIVE:
phonesm_active_exec_periodic(0,0);
return 0;
case PHONESM_STATE_PROGRAM:
phonesm_program_exec_periodic(0,0);
return 0;
case PHONESM_STATE_MEMORY:
phonesm_memory_exec_periodic(0,0);
return 0;
case PHONESM_STATE_PREDIAL:
phonesm_predial_exec_periodic(0,0);
return 0;
case PHONESM_STATE_INIT:
case PHONESM_STATE_DISPLAY12:
case PHONESM_STATE_VOLUME:
case PHONESM_STATE_CONTRAST:
default:
phonesm_display12_state_exit();
phonesm_deactivate_state(PHONESM_STATE_DISPLAY12);
return 1;
}
}
else
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -