Index: leahi_dialin/fp/proxies/dd_proxy.py =================================================================== diff -u -r9bfb4b489a4608541017c05660e111d8ef6b8b5f -r461d4331183f983474ba62cccea455e45039b0ec --- leahi_dialin/fp/proxies/dd_proxy.py (.../dd_proxy.py) (revision 9bfb4b489a4608541017c05660e111d8ef6b8b5f) +++ leahi_dialin/fp/proxies/dd_proxy.py (.../dd_proxy.py) (revision 461d4331183f983474ba62cccea455e45039b0ec) @@ -18,6 +18,7 @@ from leahi_dialin.common.msg_defs import MsgIds from leahi_dialin.common.fp_defs import fp_enum_repository +from leahi_dialin.common.test_config_defs import DDFPTestConfigOptions from leahi_dialin.protocols.CAN import DenaliMessage, DenaliCanMessenger, DenaliChannels from leahi_dialin.utils.base import AbstractSubSystem from leahi_dialin.utils.conversions import integer_to_bytearray, float_to_bytearray @@ -64,7 +65,7 @@ self.can_interface.send(message, 0) - def cmd_send_dd_mode_change_request(self, op_mode: int) -> int: + def cmd_dd_send_fp_to_pre_gen(self) -> int: """ Constructs and sends a set operation mode request command via internal CAN bus. Constraints: @@ -77,10 +78,29 @@ @return: 1 if successful, zero otherwise """ - target_opmode = op_mode - if op_mode in [fp_enum_repository.FPOpModes.MODE_PRE_GENP, fp_enum_repository.FPOpModes.MODE_DPGP]: - target_opmode = fp_enum_repository.FPOpModes.MODE_DPGP if self._fp.fp_defeaturized else fp_enum_repository.FPOpModes.MODE_PRE_GENP - elif op_mode in [fp_enum_repository.FPOpModes.MODE_GENP, fp_enum_repository.FPOpModes.MODE_DEGP]: - target_opmode = fp_enum_repository.FPOpModes.MODE_DEGP if self._fp.fp_defeaturized else fp_enum_repository.FPOpModes.MODE_GENP + if not self._fp.fp_defeaturized: + self._fp.cmd_fp_set_operation_mode(4) + else: + self._fp.cmd_fp_set_operation_mode(6) - return self._fp.cmd_fp_set_operation_mode(target_opmode) + + def cmd_dd_send_fp_to_gen_permeate(self) -> int: + """ + Constructs and sends a set operation mode request command via internal CAN bus. + Constraints: + Must be logged into FP. + Transition from current to requested op mode must be legal. + NOTE: for POST the FP device shall be in Standby Mode + + @param op_mode: ID of operation mode to transition to + + @return: 1 if successful, zero otherwise + """ + + # Disable flush + self._fp.test_configs.cmd_set_test_config(DDFPTestConfigOptions.TEST_CONFIG_FP_SKIP_PRE_GEN_FLUSH.value, 1) + + if not self._fp.fp_defeaturized: + self._fp.cmd_fp_set_operation_mode(5) + else: + self._fp.cmd_fp_set_operation_mode(7)