?? loader.c
字號(hào):
ldrPrepareError((LOADER_S_INSERT_1 == ldr_state) ? LOADER_ERROR_INSERT_NO_GRIP : LOADER_ERROR_INSERT_REMOVED); } else if (SW_S_111_TRANSITION == SW_VALUE(ldr_switch_state)) { StartInsertTo(LOADER_S_INSERT_2, (LOADER_S_INSERT_1 == ldr_state) ? T3s5 : T0ms); } else if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } break; case LOADER_S_INSERT_2: if (!timer_in_progress(LOADER_TIMER)) { ldrPrepareError(LOADER_ERROR_INSERT_BLOCKED); } else if (SW_S_011_STOP == SW_VALUE(ldr_switch_state)) { start_timer(LOADER_TIMER, T180ms); ldr_state = LOADER_S_INSERT_3; } else if (SW_S_101_INSERT_EJECT == SW_VALUE(ldr_switch_state)) { StartInsertTo(LOADER_S_INSERT_5, T0ms); } else if (SW_S_110_8CM == SW_VALUE(ldr_switch_state)) { ldrSendEvent(LOADER_ERROR_8CM); StartEjectTo(LOADER_S_EJECT_8CM_1, T1s); } break; case LOADER_S_INSERT_3: if (SW_S_011_STOP != SW_VALUE(ldr_switch_state)) { ldrPrepareError(LOADER_ERROR_INSERT_BLOCKED); } else if (!timer_in_progress(LOADER_TIMER)) { ldrSetMotor(LOADER_DIR_IDLE); start_timer(LOADER_TIMER, T30ms); ldr_state = LOADER_S_INSERT_4; } break; case LOADER_S_INSERT_4: if (SW_S_011_STOP != SW_VALUE(ldr_switch_state)) { ldrPrepareError(LOADER_ERROR_INSERT_BLOCKED); } else if (!timer_in_progress(LOADER_TIMER)) { IdleMode(READY, LOADER_S_STOP_POSITION); } break; case LOADER_S_STOP_POSITION: break; case LOADER_S_INSERT_REPOSITIONING: if (!timer_in_progress(LOADER_TIMER)) { ldrPrepareError(LOADER_ERROR_INSERT_BLOCKED); } else if (SW_S_111_TRANSITION == SW_VALUE(ldr_switch_state)) { StartInsertTo(LOADER_S_INSERT_2, T1s); } break; case LOADER_S_EJECT_12CM_1: if (!timer_in_progress(LOADER_TIMER)) { ldrPrepareError(LOADER_ERROR_EJECT_BLOCKED); } else if (SW_S_101_INSERT_EJECT == SW_VALUE(ldr_switch_state)) { ldrSetMotor(LOADER_DIR_INSERT); start_timer(LOADER_TIMER, T10ms); ldr_state = LOADER_S_EJECT_12CM_2; } break; case LOADER_S_EJECT_12CM_2: if (!timer_in_progress(LOADER_TIMER)) { IdleMode(READY, LOADER_S_EJECT_POSITION); } break; case LOADER_S_EJECT_8CM_1: if (!timer_in_progress(LOADER_TIMER)) { ldrPrepareError(LOADER_ERROR_EJECT_BLOCKED); } else if (SW_S_101_INSERT_EJECT == SW_VALUE(ldr_switch_state)) { if (0 != CNF_EJECT_TIME_8CM_SHINWA_CLC01) { start_timer(LOADER_TIMER, CNF_EJECT_TIME_8CM_SHINWA_CLC01); ldr_state = LOADER_S_EJECT_8CM_2; } else { ldrSetMotor(LOADER_DIR_INSERT); start_timer(LOADER_TIMER, T14ms); ldr_state = LOADER_S_EJECT_8CM_3; } } break; case LOADER_S_EJECT_8CM_2: if (SW_S_110_8CM == SW_VALUE(ldr_switch_state)) { StartEjectTo(LOADER_S_EJECT_8CM_1, T1s); } else if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } else if (!timer_in_progress(LOADER_TIMER)) { if (SW_S_101_INSERT_EJECT == SW_VALUE(ldr_switch_state)) { ldrSetMotor(LOADER_DIR_INSERT); start_timer(LOADER_TIMER, T14ms); ldr_state = LOADER_S_EJECT_8CM_3; } else { ldrPrepareError(LOADER_ERROR_EJECT_BLOCKED); } } break; case LOADER_S_EJECT_8CM_3: if (!timer_in_progress(LOADER_TIMER)) { IdleMode(READY, LOADER_S_EJECT_POSITION); } break; case LOADER_S_EJECT_POSITION: if (SW_S_111_TRANSITION == SW_VALUE(ldr_switch_state)) { StartInsertTo(LOADER_S_INSERT_2, T3s5); ldrSendEvent(LOADER_INSERT_BY_PUSHBACK); } else if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } break; case LOADER_S_EJECT_REPOSITIONING: if (!timer_in_progress(LOADER_TIMER)) { ldrPrepareError(LOADER_ERROR_EJECT_REPOSITIONING); } else if (SW_S_111_TRANSITION == SW_VALUE(ldr_switch_state)) { if (DISC_SIZE_8CM == disc_size) { StartEjectTo(LOADER_S_EJECT_8CM_1, T1s); } else { StartEjectTo(LOADER_S_EJECT_12CM_1, T1s); } } else if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } break; case LOADER_S_EMERGENCY_EJECT: if (!timer_in_progress(LOADER_TIMER)) { if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } else { if (SW_S_011_STOP == SW_VALUE(ldr_switch_state)) { disc_size = DISC_SIZE_12CM; } else if (SW_S_110_8CM == SW_VALUE(ldr_switch_state)) { disc_size = DISC_SIZE_8CM; } else { disc_size = DISC_SIZE_UNKNOWN; } ldrPrepareError(LOADER_ERROR_EJECT_BLOCKED); } } break; case LOADER_S_NOCD_INSERTING: case LOADER_S_NOCD_EJECTING: if (SW_S_101_INSERT_EJECT == SW_VALUE(ldr_switch_state)) { StartInsertTo(LOADER_S_INSERT_1, T5s); ldrSendEvent(LOADER_INSERT_BY_USER); } else if (!timer_in_progress(LOADER_TIMER)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } break; //case LOADER_S_ERROR: default: if (SW_S_100_NOCD == SW_VALUE(ldr_switch_state)) { IdleMode(LOADER_ERROR_NO_DISC, LOADER_S_NO_CD_POSITION); } break; } previous_ldr_switch_state = ldr_switch_state;}/******************************************************************************//******************************************************************************//*****************************************************************************//* *//* M4_TANASHIN_TN2001_12CM *//* M5_TANASHIN_TN2001_8CM *//* M6_TANASHIN_TN2007_JVC *//* M7_TANASHIN_TN2007_BP *//* *//*****************************************************************************//******************************************************************************//* Function: StartInsert_Tanashin *//* *//*! \brief Start disc insertion according to current position * (implementation for mechanisms: * M4_TANASHIN_TN2001_12CM, * M5_TANASHIN_TN2001_8CM, * M6_TANASHIN_TN2007_JVC, * M7_TANASHIN_TN2007_BP) * \param void * \return void * \remark *//******************************************************************************/void StartInsert_Tanashin(void){ switch (SW_VALUE(ldr_switch_state)) { case SW_S_PLY_2: IdleMode(READY, LOADER_S_STOP_POSITION_12CM); break; case SW_S_PL8_8: IdleMode(READY, LOADER_S_STOP_POSITION_8CM); break; case SW_S_INP_7: case SW_S_ULD_5: if (DISC_SIZE_8CM_INTERNAL == disc_size) { StartInsertTo(LOADER_S_INSERT_4, T3s5); } else { StartInsertTo(LOADER_S_INSERT_1, T6s); } break; case SW_S_LOD_1: StartInsertTo(LOADER_S_INSERT_4, T3s5); break; case SW_S_OUT_3: StartInsertTo(LOADER_S_INSERT_5, T3s5); break; //SW_S_ILL_4: //SW_S_ILL_6: default: ldrSendEvent(LOADER_ERROR_SW_ILLEGAL); StartEjectTo(LOADER_S_EMERGENCY_EJECT, T5s); break; }}/******************************************************************************//* Function: StartEject_Tanashin *//* *//*! \brief Start disc ejection according to current position * (implementation for mechanisms: * M4_TANASHIN_TN2001_12CM, * M5_TANASHIN_TN2001_8CM, * M6_TANASHIN_TN2007_JVC, * M7_TANASHIN_TN2007_BP) * \param void * \return void * \remark *//******************************************************************************/void StartEject_Tanashin(void){ switch (SW_VALUE(ldr_switch_state)) { case SW_S_PLY_2: case SW_S_LOD_1: StartEjectTo(LOADER_S_EJECT_12CM_1, T5s); break; case SW_S_ULD_5: if (DISC_SIZE_UNKNOWN == disc_size) { StartInsertTo(LOADER_S_EJECT_REPOSITIONING_UNKNOWN, T1s); } else if (DISC_SIZE_12CM == disc_size) { StartInsertTo(LOADER_S_EJECT_REPOSITIONING_12CM, T1s); } else { StartEjectTo(LOADER_S_EJECT_8CM_3, T1s); } break; case SW_S_INP_7: if (DISC_SIZE_UNKNOWN == disc_size) { StartInsertTo(LOADER_S_EJECT_REPOSITIONING_UNKNOWN, T1s); } else if (DISC_SIZE_12CM == disc_size) { StartInsertTo(LOADER_S_EJECT_REPOSITIONING_12CM, T1s); } else if (DISC_SIZE_8CM == disc_size) { StartInsertTo(LOADER_S_EJECT_REPOSITIONING_8CM, T1s); } else { StartEjectTo(LOADER_S_EJECT_8CM_2, T1s); } break; case SW_S_OUT_3: case SW_S_PL8_8: StartEjectTo(LOADER_S_EJECT_8CM_1, (DISC_SIZE_8CM_INTERNAL == disc_size) ? T5s : T3s5); break; //SW_S_ILL_4: //SW_S_ILL_6: default: ldrSendEvent(LOADER_ERROR_SW_ILLEGAL); StartEjectTo(LOADER_S_EMERGENCY_EJECT, T5s); break; }}/******************************************************************************//* Function: ldrCommandEval_Tanashin *//* *//*! \brief Start actions for a new Loader Command * (implementation for mechanisms: * M4_TANASHIN_TN2001_12CM, * M5_TANASHIN_TN2001_8CM, * M6_TANASHIN_TN2007_JVC, * M7_TANASHIN_TN2007_BP) * \param void * \return void * \remarks *//******************************************************************************/void ldrCommandEval_Tanashin(void){ t_bool illegal_switch_detected = b_FALSE; if ((SW_VALUE(ldr_switch_state) != SW_VALUE(previous_ldr_switch_state)) && (LOADER_S_STOP_POSITION_12CM != ldr_state) && (LOADER_S_STOP_POSITION_8CM != ldr_state) && (LOADER_S_EMERGENCY_EJECT != ldr_state)) { if ((SW_INVALID_VAL != SW_VALUE(previous_ldr_switch_state)) && ((SW_S_ILL_4 == SW_VALUE(ldr_switch_state)) || (SW_S_ILL_6 == SW_VALUE(ldr_switch_state)) || ((DISC_SIZE_UNKNOWN == disc_size) && ((SW_S_PLY_2 == SW_VALUE(ldr_switch_state)) || ((SW_S_LOD_1 == SW_VALUE(ldr_switch_state)) && (SW_S_ULD_5 != SW_VALUE(previous_ldr_switch_state))) || ((SW_S_PL8_8 == SW_VALUE(ldr_switch_state)) && (SW_S_OUT_3 != SW_VALUE(previous_ldr_switch_state))))) || ((DISC_SIZE_12CM == disc_size) && ((SW_S_PL8_8 == SW_VALUE(ldr_switch_state)) || (((SW_S_OUT_3 == SW_VALUE(ldr_switch_state)) || (SW_S_INP_7 == SW_VALUE(ldr_switch_state))) && ((SW_S_LOD_1 == SW_VALUE(previous_ldr_switch_state)) || (SW_S_PLY_2 == SW_VALUE(previous_ldr_switch_state)))) || ((SW_S_ULD_5 == SW_VALUE(ldr_switch_state)) && (SW_S_PLY_2 == SW_VALUE(previous_ldr_switch_state))) || ((SW_S_LOD_1 == SW_VALUE(ldr_switch_state)) && (SW_S_INP_7 == SW_VALUE(previous_ldr_switch_state))) || ((SW_S_PLY_2 == SW_VALUE(ldr_switch_state)) && (SW_S_LOD_1 != SW_VALUE(previous_ldr_switch_state))))) || (((DISC_SIZE_8CM == disc_size) || (DISC_SIZE_8CM_INTERNAL == disc_size)) && ((SW_S_LOD_1 == SW_VALUE(ldr_switch_state)) || (SW_S_PLY_2 == SW_VALUE(ldr_switch_state)) || ((SW_S_OUT_3 == SW_VALUE(ldr_switch_state)) && (SW_S_ULD_5 == SW_VALUE(previous_ldr_switch_state))) || ((SW_S_INP_7 == SW_VALUE(ldr_switch_state)) && (SW_S_PL8_8 == SW_VALUE(previous_ldr_switch_state))) || ((SW_S_ULD_5 == SW_VALUE(ldr_switch_state)) && (SW_S_INP_7 != SW_VALUE(previous_ldr_switch_state))) || ((SW_S_PL8_8 == SW_VALUE(ldr_switch_state)) && (SW_S_OUT_3 != SW_VALUE(previous_ldr_switch_state))))))) { // on illegal SW state illegal_switch_detected = b_TRUE; } else if ((DISC_SIZE_UNKNOWN == disc_size) && ((SW_S_LOD_1 == SW_VALUE(ldr_switch_state)) || (SW_S_PLY_2 == SW_VALUE(ldr_switch_state)))) { disc_size = DISC_SIZE_12CM; } else if ((DISC_SIZE_UNKNOWN == disc_size) && (SW_S_PL8_8 == SW_VALUE(ldr_switch_state))) { disc_size = DISC_SIZE_8CM_INTERNAL; } else if ((DISC_SIZE_8CM_INTERNAL == disc_size) && (SW_S_INP_7 == SW_VALUE(ldr_switch_state)) && (SW_S_ULD_5 == SW_VALUE(previous_ldr_switch_state))) { disc_size = DISC_SIZE_8CM; }
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -