| | |
| | | SENSOR_RIGHT_TURN_SIGNAL, |
| | | SENSOR_HANDBREAK, |
| | | SENSOR_BREAK, |
| | | SENSOR_CLEARANCE_LIGHT, |
| | | SENSOR_DIPPED_BEAM_LIGHT, |
| | | SENSOR_MAIN_BEAM_LIGHT, |
| | | SENSOR_DOOR, |
| | |
| | | SENSOR_SHIFT_5, |
| | | SENSOR_SHIFT_R, |
| | | SENSOR_ENGINE_START, |
| | | SENSOR_BREAK2, |
| | | SENSOR_SURROUND_CAR_1, |
| | | SENSOR_SURROUND_CAR_2, |
| | | SENSOR_SURROUND_CAR_3, |
| | | SENSOR_SURROUND_CAR_4, |
| | | SENSOR_FOG_LIGHT, |
| | | SENSOR_CLEARANCE_LIGHT, |
| | | SENSOR_ENGINE_RPM, |
| | | SENSOR_SPEED |
| | | }; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | |
| | | int ReadCarStatus(uint16_t id) |
| | |
| | | |
| | | static void SensorChanged(int id, int value) |
| | | { |
| | | DEBUG("状态改变 %d = %d", id, value); |
| | | |
| | | switch (id) { |
| | | case SENSOR_LEFT_TURN_SIGNAL: { |
| | | left_turn_signal = value; |
| | |
| | | } else { |
| | | AppTimer_add(ConfirmTurnSigalLater, 200, RIGHT_TURN_LIGHT); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_FOG_LIGHT: { |
| | | if (value == 0) { |
| | | WriteCarStatus(FOG_LAMP, OFF_LIGHT); |
| | | } else { |
| | | WriteCarStatus(FOG_LAMP, FOG_LIGHT); |
| | | } |
| | | break; |
| | | } |
| | |
| | | WriteCarStatus(FLASH_BEAM_LAMP, FLASH_BEAM_LIGHT); |
| | | |
| | | AppTimer_delete(flashBeamLightClose); |
| | | AppTimer_add(flashBeamLightClose, D_SEC(5)); |
| | | AppTimer_add(flashBeamLightClose, D_SEC(2)); |
| | | } |
| | | |
| | | AppTimer_delete(confirmFlashBeamLightLater); |
| | |
| | | break; |
| | | } |
| | | case SENSOR_ENGINE_START: { |
| | | if (value == 0) { |
| | | WriteCarStatus(ENGINE_START, ENGINE_START_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(ENGINE_START, ENGINE_START_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_BREAK: { |
| | | if (value == 0) { |
| | | WriteCarStatus(BREAK, BREAK_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(BREAK, BREAK_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_BREAK2: { |
| | | if (value == 0) { |
| | | WriteCarStatus(SECOND_BREAK, BREAK_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(SECOND_BREAK, BREAK_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_HANDBREAK: { |
| | | if (value == 0) { |
| | | WriteCarStatus(HAND_BREAK, BREAK_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(HAND_BREAK, BREAK_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_DOOR: { |
| | | if (value == 0) { |
| | | WriteCarStatus(DOOR, DOOR_OPEN); |
| | | } else { |
| | | WriteCarStatus(DOOR, DOOR_CLOSE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_SURROUND_CAR_1: { |
| | | if (value == 0) { |
| | | WriteCarStatus(SURROUND_CAR_1, SURROUND_CAR_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(SURROUND_CAR_1, SURROUND_CAR_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_SURROUND_CAR_2: { |
| | | if (value == 0) { |
| | | WriteCarStatus(SURROUND_CAR_2, SURROUND_CAR_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(SURROUND_CAR_2, SURROUND_CAR_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_SURROUND_CAR_3: { |
| | | if (value == 0) { |
| | | WriteCarStatus(SURROUND_CAR_3, SURROUND_CAR_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(SURROUND_CAR_3, SURROUND_CAR_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_SURROUND_CAR_4: { |
| | | if (value == 0) { |
| | | WriteCarStatus(SURROUND_CAR_4, SURROUND_CAR_INACTIVE); |
| | | } else { |
| | | WriteCarStatus(SURROUND_CAR_4, SURROUND_CAR_ACTIVE); |
| | | } |
| | | break; |
| | | } |
| | | case SENSOR_SHIFT_N: |
| | | case SENSOR_SHIFT_1: |
| | | case SENSOR_SHIFT_2: |
| | | case SENSOR_SHIFT_3: |
| | | case SENSOR_SHIFT_4: |
| | | case SENSOR_SHIFT_5: |
| | | case SENSOR_SHIFT_R: { |
| | | if (value != 0) { |
| | | WriteCarStatus(GEAR, id - SENSOR_SHIFT_N + GEAR_N); |
| | | } |
| | | break; |
| | | } |
| | | default: |