def decode_tuple(self, msg_tuple): ''' Take a tuple from an H5 file and decode it into Msg1553 data ''' # Version 1 - Data is stored in H5 table as a pickled Python tuple if self.layout_version == 1: self.msg_time = Time.IrigTime() self.msg_time.time = datetime.datetime.utcfromtimestamp( msg_tuple[0]) self.msg_time.time = self.msg_time.time.replace( microsecond=msg_tuple[1]) self.msg_time.dt_format = msg_tuple[2] self.chan_id = msg_tuple[3] self.header_flags = MsgDecode1553.Hdr1553_Flags() flags_p = ctypes.pointer(self.header_flags) flags_ip = ctypes.cast(flags_p, ctypes.POINTER(ctypes.c_uint16)) flags_ip[0] = msg_tuple[4] self.cmd_word_1 = MsgDecode1553.CmdWord(msg_tuple[5]) self.stat_word_1 = MsgDecode1553.StatWord(msg_tuple[6]) self.cmd_word_2 = MsgDecode1553.CmdWord(msg_tuple[7]) self.stat_word_2 = MsgDecode1553.StatWord(msg_tuple[8]) self.data = msg_tuple[9] elif self.layout_version == 2: self.msg_time = Time.IrigTime() self.msg_time.time = datetime.datetime.utcfromtimestamp(( msg_tuple[0] << 16) | msg_tuple[1]) self.msg_time.time = self.msg_time.time.replace( microsecond=(msg_tuple[2] << 16) | msg_tuple[3]) self.msg_time.dt_format = msg_tuple[4] self.chan_id = msg_tuple[5] self.header_flags = MsgDecode1553.Hdr1553_Flags() flags_p = ctypes.pointer(self.header_flags) flags_ip = ctypes.cast(flags_p, ctypes.POINTER(ctypes.c_uint16)) flags_ip[0] = msg_tuple[6] self.cmd_word_1 = MsgDecode1553.CmdWord(msg_tuple[7]) self.stat_word_1 = MsgDecode1553.StatWord(msg_tuple[8]) self.cmd_word_2 = MsgDecode1553.CmdWord(msg_tuple[9]) self.stat_word_2 = MsgDecode1553.StatWord(msg_tuple[10]) self.data = [] for data_index in range(11, len(msg_tuple)): self.data.append(msg_tuple[data_index]) else: return
def I106_Decode_TimeF1(header, msg_buffer): native_irig_time = Time._ctIrig106Time() ret_status = Packet.IrigDataDll.enI106_Decode_TimeF1( ctypes.byref(header), ctypes.byref(msg_buffer), ctypes.byref(native_irig_time)) irig_time = Time.IrigTime() irig_time.set_from_ctIrig106Time(native_irig_time) return ret_status, irig_time
def __init__(self, ch10_h5_file=None): self.ch10_h5_file = ch10_h5_file if ch10_h5_file != None: self.layout_version = ch10_h5_file.root.Bus_Data.attrs.layout_version else: self.layout_version = 2 # 1553 message data self.msg_time = Time.IrigTime() self.chan_id = numpy.uint16(0) self.header_flags = numpy.uint16(0) self.cmd_word_1 = numpy.uint16(0) self.stat_word_1 = numpy.uint16(0) self.cmd_word_2 = numpy.uint16(0) self.stat_word_2 = numpy.uint16(0) self.data = []
def __init__(self, PacketIO): ''' Constructor ''' self.PacketIO = PacketIO self.irig_time = Time.IrigTime()