def test_report_6d(self): """0x6d - All-In-View Satellite Selection report""" while True: packet = self.gps.read() if packet.code == 0x6d: assert len(packet) == 6 assert isinstance(packet[0], IntType) assert isinstance(packet[1], FloatType) assert isinstance(packet[2], FloatType) assert isinstance(packet[3], FloatType) assert isinstance(packet[4], FloatType) assert isinstance(packet[5], ListType) assert b012(packet[0]) in [3, 4] assert b3(packet[0]) in [0, 1] assert 0 <= b4567(packet[0]) <= 12 assert len(packet[5]) == b4567(packet[0]) for prn in packet[5]: assert isinstance(prn, IntType) assert 0 <= prn <= 40 assert packet.dimension in [3, 4] assert packet.auto_manual in [0, 1] assert (packet.auto_manual == 0 and packet.is_auto is True) or (packet.auto_manual == 1 and packet.is_manual is True) assert (packet.auto_manual == 0 and packet.is_manual is False) or (packet.auto_manual == 1 and packet.is_auto is False) assert packet.nsv == len(packet[5]) return
def values(self): (byte0, pdop, hdop, vdop, tdop) = struct.unpack(self._format, self.data[0:17]) #dimension = b012(byte0) #auto = b3(byte0) nsv = b4567(byte0) prn = [] for i in xrange(0, nsv): prn.append(struct.unpack('>B', self.data[17+i])[0]) return [byte0, pdop, hdop, vdop, tdop, prn]
def test_b4567(self): assert b4567(0b00000000) == 0 assert b4567(0b00010000) == 1 assert b4567(0b00100000) == 2 assert b4567(0b00110000) == 3 assert b4567(0b01000000) == 4 assert b4567(0b01010000) == 5 assert b4567(0b01100000) == 6 assert b4567(0b01110000) == 7 assert b4567(0b10000000) == 8 assert b4567(0b10010000) == 9 assert b4567(0b10100000) == 10 assert b4567(0b10110000) == 11 assert b4567(0b11000000) == 12 assert b4567(0b11010000) == 13 assert b4567(0b11100000) == 14 assert b4567(0b11110000) == 15 assert b4567(0b00001111) == 0