def fp_versions(self, major: int, minor: int, micro: int, build: int,
fpga_id: int, fpga_major: int, fpga_minor: int, fpga_lab: int,
compatibility_rev: int):
"""
Broadcasts the current dd Version Data (Msg ID: 0x0F, 15)
Args:
@param major: (uint) - Major version number
@param minor: (uint) - Minor version number
@param micro: (uint) - Micro version number
@param build: (uint) - Build version number
@param fpga_id: (int) - FPGA id version number
@param fpga_major: (int) - FPGA Major version number
@param fpga_minor: (int) - FPGA Minor version number
@param fpga_lab: (int) - FPGA Lab version number
@param compatibility_rev: (uint) - The FWs/UI compatibility revision
@return: None
"""
if not self.can_enabled:
raise ValueError("CAN Interface is not enabled")
payload = conversions.unsigned_byte_to_bytearray (major )
payload += conversions.unsigned_byte_to_bytearray (minor )
payload += conversions.unsigned_byte_to_bytearray (micro )
payload += conversions.unsigned_short_to_bytearray (build )
payload += conversions.unsigned_byte_to_bytearray (fpga_id )
payload += conversions.unsigned_byte_to_bytearray (fpga_major )
payload += conversions.unsigned_byte_to_bytearray (fpga_minor )
payload += conversions.unsigned_byte_to_bytearray (fpga_lab )
payload += conversions.unsigned_integer_to_bytearray(compatibility_rev)
message = CAN.CanMessage.build_message(
channel_id=CAN.CanChannels.fp_sync_broadcast_ch_id,
message_id=msg_ids.MsgIds.MSG_ID_FP_VERSION_RESPONSE.value,
payload=payload)
self.can_interface.send(message, 0)