Index: leahi_dialin/fp/modules/events.py =================================================================== diff -u -r6caa49d072aceb2655d605de5d2eea52ab1a8911 -r27d9de42c0111c7f369cc335889fe6b988d09cc8 --- leahi_dialin/fp/modules/events.py (.../events.py) (revision 6caa49d072aceb2655d605de5d2eea52ab1a8911) +++ leahi_dialin/fp/modules/events.py (.../events.py) (revision 27d9de42c0111c7f369cc335889fe6b988d09cc8) @@ -108,7 +108,7 @@ msg_list = [] msg_list.append((event_id, DataTypes.U32)) - if event_enum is fp_enum_repository.FPEventList.FP_EVENT_OPERATION_STATUS: + if event_enum is fp_enum_repository.FPEventList.OPERATION_STATUS: msg_list.append((data_typ_1, DataTypes.U32)) # It's not used in operation status case msg_list.append((op_mode, DataTypes.U08)) msg_list.append((sub_mode, DataTypes.U08)) @@ -134,15 +134,15 @@ # Check if the event state name is operation mode change. If it is, get the name of the operation modes # from the op modes enum class - if event_enum is fp_enum_repository.FPEventList.FP_EVENT_OP_MODE_CHANGE: + if event_enum is fp_enum_repository.FPEventList.OP_MODE_CHANGE: data_1 = fp_enum_repository.FPOpModes(data_1.value).name data_2 = fp_enum_repository.FPOpModes(data_2.value).name event_tuple = (current_timestamp, event_enum.name, data_1.value, data_2.value) # Check if the event state name is sub mode change. - elif event_enum is fp_enum_repository.FPEventList.FP_EVENT_SUB_MODE_CHANGE: + elif event_enum is fp_enum_repository.FPEventList.SUB_MODE_CHANGE: # Get the Op Mode Change messages - op_modes_list = self._event_dictionary[fp_enum_repository.FPEventList.FP_EVENT_OP_MODE_CHANGE.name] + op_modes_list = self._event_dictionary[fp_enum_repository.FPEventList.OP_MODE_CHANGE.name] # If there are Op mode change messages, use it to determine the operation mode for the current submode change # Index description: @@ -152,7 +152,7 @@ # 3: Current Op / Sub Mode if len(op_modes_list) != 0: # Get the Sub Mode Change messages - sub_mode_list = self._event_dictionary[fp_enum_repository.FPEventList.FP_EVENT_SUB_MODE_CHANGE.name] + sub_mode_list = self._event_dictionary[fp_enum_repository.FPEventList.SUB_MODE_CHANGE.name] last_op_mode_message = op_modes_list[-1] # Check if this is not the very first Sub Mode Change message @@ -183,7 +183,7 @@ # to identify the Op Modes for the Sub Modes else: # Get the Operation Status Change messages - op_status_list = self._event_dictionary[fp_enum_repository.FPEventList.FP_EVENT_OPERATION_STATUS.name] + op_status_list = self._event_dictionary[fp_enum_repository.FPEventList.OPERATION_STATUS.name] data_2_found = False event_1_op_mode = self.UNKNOWN_STATE @@ -223,8 +223,8 @@ # Update the tuple event_tuple = (current_timestamp, event_enum.name, data_1.value, data_2.value) - elif event_enum is fp_enum_repository.FPEventList.FP_EVENT_OPERATION_STATUS: - op_mode_enum, sub_mode_enum, state_enum, _ = self._operation_status_match(op_mode=op_mode, sub_mode=sub_mode, state=sub_state) + elif event_enum is fp_enum_repository.FPEventList.OPERATION_STATUS: + op_mode_enum, sub_mode_enum, state_enum, _ = self._operation_status_match(op_mode=op_mode.value, sub_mode=sub_mode.value, state=sub_state.value) event_tuple = (current_timestamp, op_mode_enum, sub_mode_enum, state_enum) # Update event dictionary @@ -294,17 +294,21 @@ return list_of_events - def _operation_status_match(self, op_mode: int, sub_mode: int=None, state:int=None, sub_state: int=None) -> Tuple[DialinEnum, Union[DialinEnum, int], Union[DialinEnum, int], Union[DialinEnum, int]]: + def _operation_status_match(self, op_mode: int, sub_mode: int=None, state:int=None, sub_state: int=None, debug: bool=False) -> Tuple[DialinEnum, Union[DialinEnum, int], Union[DialinEnum, int], Union[DialinEnum, int]]: """ Convert operation status values to enums. :param op_mode: (Integer) The operation mode value :param sub_mode: (Integer) The operation sub mode value :param state: (Integer) The operation state value :param sub_state: (Integer) The operation sub state value + :param debug: (Boolean) Print debug data or not :return: Returns the DialinEnum for each provied mode/state, or the original integer value if no enum is found """ op_mode_enum = fp_enum_repository.FPOpModes(op_mode) + if debug: + print(f'\nDebug op_mode: {op_mode}') + print(f'Debug op_mode_enum: {op_mode_enum}') sub_mode_enum = None state_enum = None sub_state_enum = None @@ -313,15 +317,24 @@ sub_mode_enum = sub_mode else: sub_mode_enum = self._op_mode_2_sub_mode[op_mode_enum.name](sub_mode) + if debug: + print(f'Debug sub_mode: {sub_mode}') + print(f'Debug sub_mode_enum: {sub_mode_enum}') if state is not None: - if sub_mode_enum.name not in self._sub_mode_2_states: + if sub_mode_enum.name not in self._sub_mode_2_states or len(self._sub_mode_2_states[sub_mode_enum.name]) < state: state_enum = state else: state_enum = self._sub_mode_2_states[sub_mode_enum.name](state) + if debug: + print(f'Debug state: {state}') + print(f'Debug state_enum: {state_enum}') if sub_state is not None: if state_enum.name not in self._state_2_sub_states: sub_state_enum = sub_state else: sub_state_enum = self._state_2_sub_states[state_enum.name](sub_state) + if debug: + print(f'Debug sub_state: {sub_state}') + print(f'Debug sub_state_enum: {sub_state_enum}') return op_mode_enum, sub_mode_enum, state_enum, sub_state_enum