Index: dialin/hd/valves.py =================================================================== diff -u -r39797925579b6770fbb48e634d73f518ab417d37 -r2c2a2e3c49d6e76c93e9f0db004b5679b626cec2 --- dialin/hd/valves.py (.../valves.py) (revision 39797925579b6770fbb48e634d73f518ab417d37) +++ dialin/hd/valves.py (.../valves.py) (revision 2c2a2e3c49d6e76c93e9f0db004b5679b626cec2) @@ -54,6 +54,9 @@ START_VALVES_PWM = END_VALVES_POS_B END_VALVES_PWM = START_VALVES_PWM + 4 + START_AIR_TRAP_VALVE_STATUS = END_VALVES_PWM + END_AIR_TRAP_VALVE_STATUS = START_AIR_TRAP_VALVE_STATUS + 4 + # TODO Fast publish REMOVE LATER START_FAST_VALVES_POS = DenaliMessage.PAYLOAD_START_INDEX END_FAST_VALVES_POS = START_FAST_VALVES_POS + 2 @@ -93,6 +96,8 @@ self.valves = ["VDI", "VDO", "VBA", "VBV"] + self.air_trap_states = ["Open", "Close"] + self.hd_valve_ID = 0 self.hd_valve_state = 0 self.hd_valve_curr_pos_ID = 0 @@ -103,11 +108,13 @@ self.hd_valves_pos_a = 0 self.hd_valves_pos_b = 0 self.hd_valves_pwm = 0 + self.hd_air_trap_status = 0 #TODO Remove these later self.hd_valve_fast_pos = 0 self.hd_valve_fast_current = 0 self.hd_valves_fast_cmd = 0 + #TODO Remove these later def cmd_temperature_sensors_broadcast_interval_override(self, ms, reset=NO_RESET): """ @@ -280,7 +287,7 @@ @_publish(["hd_valve_ID", "hd_valve_state", "hd_valve_curr_pos_ID", "hd_valve_curr_pos_cnt", "hd_valve_next_pos_cnt", "hd_valve_current", "hd_valves_pos_c", "hd_valves_pos_a", - "hd_valves_pos_b", "hd_valves_pwm"]) + "hd_valves_pos_b", "hd_valves_pwm", "hd_air_trap_status"]) def handler_hd_valves_sync(self, message): """ Handles published HD valves data messages. HD valves data are captured @@ -309,17 +316,21 @@ message['message'][self.START_VALVES_POS_B:self.END_VALVES_POS_B])) pwm = struct.unpack('i', bytearray( message['message'][self.START_VALVES_PWM:self.END_VALVES_PWM])) + air_trap = struct.unpack('i', bytearray( + message['message'][self.START_AIR_TRAP_VALVE_STATUS:self.END_AIR_TRAP_VALVE_STATUS])) - self.hd_valve_ID = self.valves[vlv_ID[0]] - self.hd_valve_state = self.states[state_ID[0]] - self.hd_valve_curr_pos_ID = self.positions[pos_ID[0]] + self.hd_valve_ID = self.valves[vlv_ID[0]] if vlv_ID[0] < len(self.valves) else 'Valve Unknown' + self.hd_valve_state = self.states[state_ID[0]] if state_ID[0] < len(self.states) else 'State Unknown' + self.hd_valve_curr_pos_ID = self.positions[pos_ID[0]] if pos_ID[0] < len(self.positions) else 'Position Unknown' self.hd_valve_curr_pos_cnt = pos_cnt[0] self.hd_valve_next_pos_cnt = next_pos[0] self.hd_valve_current = current[0] self.hd_valves_pos_c = pos_c[0] self.hd_valves_pos_a = pos_a[0] self.hd_valves_pos_b = pos_b[0] self.hd_valves_pwm = pwm[0] + self.hd_air_trap_status = self.air_trap_states[air_trap[0]] if air_trap[0] < len(air_trap[0]) else \ + 'Status Unknwon' #TODO REMOVE THIS FUNCTION def handler_hd_valves_fast_temp_sync(self, message):