Index: leahi_dialin/fp/filtration_purification.py =================================================================== diff -u -rbd5420b3540747a01b3d4d6dd40146eab527e0d1 -r18f767a4c701bf22d074eda6cafe3dfd98906585 --- leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision bd5420b3540747a01b3d4d6dd40146eab527e0d1) +++ leahi_dialin/fp/filtration_purification.py (.../filtration_purification.py) (revision 18f767a4c701bf22d074eda6cafe3dfd98906585) @@ -93,6 +93,16 @@ self.can_interface.register_receiving_publication_function(channel_id, MsgIds.MSG_ID_FP_DEF_STATUS_RESPONSE.value, self._handler_fp_defeatured_response) + # For current builds and setups without UI, there are no CAN messages sent on the bus to let the + # subsystems know there are other nodes and start publishing. Dialin will send a plain ACK to the CANbus over + # the dd channel to start publishing. + message = DenaliMessage.build_message( + channel_id=DenaliChannels.dialin_to_fp_ch_id, + message_id=MsgIds.MSG_ID_ACK_MESSAGE_THAT_REQUIRES_ACK.value, + payload=bytearray(), + seq=0) + if message is not None: + self.can_interface.send(message, 0, is_ack=True) # create properties self.fp_defeatured = False @@ -245,24 +255,17 @@ @return: 1 if successful, zero otherwise """ + return cmd_generic_override( + payload = None, + reset = NO_RESET, + channel_id = DenaliChannels.dialin_to_fp_ch_id, + msg_id = MsgIds.MSG_ID_FP_DEF_STATUS_REQUEST, + entity_name = 'FP Defeatured Status', + override_text = '', + logger = self.logger, + can_interface = self.can_interface) - message = DenaliMessage.build_message(channel_id=DenaliChannels.dialin_to_fp_ch_id, - message_id=MsgIds.MSG_ID_FP_DEF_STATUS_REQUEST.value) - self.logger.debug('Getting FP defeatured status') - received_message = self.can_interface.send(message) - - # If there is content... - if received_message is not None: - self.logger.debug("Received FW ACK after requesting FP defeatured configuration record.") - # response payload is OK or not OK - return received_message['message'][DenaliMessage.PAYLOAD_START_INDEX] - else: - self.logger.debug("Timeout!!!!") - return False - - - def cmd_op_mode_broadcast_interval_override(self, ms: int, reset: int = NO_RESET) -> int: """ Constructs and sends the measured op mode broadcast interval override command