⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dc550_phonesm_idle.c

📁 一款经典的数字电话设计资料
💻 C
📖 第 1 页 / 共 2 页
字号:
      leddriver_setstate(LED_INDICATOR_FEATURE11, LED_STATE_OFF);
      if(phonesm_infoonetouch_getledstate() != LED_STATE_OFF) {
        phonesm_infoonetouch_setledstate(LED_STATE_OFF);
        leddriver_setstate(LED_INDICATOR_VOICEMAIL, LED_STATE_OFF);
      }
      return 0;
    case MDC_DMS_SAVE_INDICATOR_RESET:
      // A soft reset is supposed to knock the phone back to the Idle State.
      // This should return 0.
    case MDC_DMS_CLOSE_ECHO:
    case MDC_DMS_ALERT_OFF:
    case MDC_DMS_VOICE_OFF:
    case MDC_DMS_HANDSET_OFF:
    case MDC_DMS_HANDSFREE_OFF:
    case MDC_DMS_BUZZER_OFF:
      return 0;

    case MDC_DMS_OPEN_ECHO:
      // Switch to Diagnostic State
      // return 1;
      return 0;

    case MDC_DMS_VOICE_ON:
    case MDC_DMS_HANDSET_ON:
    case MDC_DMS_HANDSFREE_ON:
    case MDC_DMS_ALERT_ON:
    case MDC_DMS_BUZZER_ON:
      phonesm_activate_state(PHONESM_STATE_ACTIVE);
      return 1;
      
    // None of the LED commands cause a state change
    case MDC_DMS_INDICATOR_KEY01_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY01_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY01_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY01_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE01, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY02_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY02_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY02_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY02_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE02, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY03_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY03_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY03_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY03_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE03, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY04_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY04_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY04_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY04_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE04, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY05_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY05_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY05_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY05_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE05, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY06_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY06_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY06_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY06_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE06, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY07_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY07_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY07_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY07_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE07, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY08_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY08_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY08_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY08_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE08, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY09_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY09_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY09_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY09_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE09, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY10_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY10_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY10_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY10_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE10, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY11_OFF:
      leddriver_setstate(LED_INDICATOR_FEATURE11, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY11_WINK:
      leddriver_setstate(LED_INDICATOR_FEATURE11, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY11_FLASH:
      leddriver_setstate(LED_INDICATOR_FEATURE11, LED_STATE_FLASH);
      return 0;
    case MDC_DMS_INDICATOR_KEY11_ON:
      leddriver_setstate(LED_INDICATOR_FEATURE11, LED_STATE_ON);
      return 0;
    case MDC_DMS_INDICATOR_KEY12_OFF:
      phonesm_infoonetouch_setledstate(LED_STATE_OFF);
      leddriver_setstate(LED_INDICATOR_VOICEMAIL, LED_STATE_OFF);
      return 0;
    case MDC_DMS_INDICATOR_KEY12_WINK:
      phonesm_infoonetouch_setledstate(LED_STATE_WINK);
      leddriver_setstate(LED_INDICATOR_VOICEMAIL, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY12_FLASH:
      phonesm_infoonetouch_setledstate(LED_STATE_FLASH);
      leddriver_setstate(LED_INDICATOR_VOICEMAIL, LED_STATE_WINK);
      return 0;
    case MDC_DMS_INDICATOR_KEY12_ON:
      phonesm_infoonetouch_setledstate(LED_STATE_ON);
      leddriver_setstate(LED_INDICATOR_VOICEMAIL, LED_STATE_WINK);
      return 0;

    // The DC550 will not have indicators for Key 13 or Key 14
    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:
      return 0;

    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_CLEAR_WB_IN12SECONDS:
    case MDC_DMS_DISABLE_DISPLAY_CURSOR:
    case MDC_DMS_DISABLE_DISPLAY_ECHOING:
    case MDC_DMS_DISABLE_DISPLAY:
    case MDC_DMS_POWER_DOWN_DISPLAY:
    case MDC_DMS_ENABLE_DISPLAY:
    case MDC_DMS_ENABLE_DISPLAY_CURSOR:
    case MDC_DMS_DISPLAY_RESET:
    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:
      phonesm_activate_state(PHONESM_STATE_ACTIVE);
      return 1;
    default:
      if(command >= MDC_DMC_CHARACTER_MASK) {
        phonesm_activate_state(PHONESM_STATE_ACTIVE);
        return 1;
      }
      else
        // This is an unrecognized command.
        return 0;
  }
}


/******************************************************************************
 *  FUNCTION: BOOL phonesm_idle_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_idle_exec_periodic(BOOL firstline, BOOL secondline) {
  // Declare function variables
  char timebuffer[TIMEDATE_ARRAY_SIZE];

  // If the time changed and we own the second line of the display, display the
  // new time
  if(secondline && phonesm_infosettings_timechanged()) {
    phonesm_infosettings_getformattedtime(timebuffer);
    display_writelinetwo( (24 - TIMEDATE_STRING_LENGTH), timebuffer);
  }

  return 0;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -