Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
    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 = []
Ejemplo n.º 4
0
 def __init__(self, PacketIO):
     ''' Constructor '''
     self.PacketIO = PacketIO
     self.irig_time = Time.IrigTime()