コード例 #1
0
    def test_fail_silently(self):
        # this tests combines testing for an UnknownMessageException and the silent param at once
        msg = b"!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43"
        nmea = NMEAMessage(msg)

        with self.assertRaises(UnknownMessageException):
            nmea.decode(silent=False)

        # by default errors are ignored and an empty AIS message is returned
        assert nmea.decode() is not None
        assert isinstance(nmea.decode(), AISMessage)
        text = """{
    "nmea": {
        "ais_id": 37,
        "raw": "!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43",
        "talker": "AI",
        "type": "VDM",
        "message_fragments": 1,
        "fragment_number": 1,
        "message_id": null,
        "channel": "A",
        "payload": "U31<0OOP000CshrMdl600?wP00SL",
        "fill_bits": 0,
        "checksum": 67,
        "bit_array": "100101000011000001001100000000011111011111100000000000000000000000010011111011110000111010011101101100110100000110000000000000001111111111100000000000000000100011011100"
    },
    "decoded": {}
}"""
        self.assertEqual(nmea.decode().to_json(), text)
コード例 #2
0
    def test_fail_silently(self):
        # this tests combines testing for an UnknownMessageException and the silent param at once
        msg = b"!AIVDM,1,1,,A,U31<0OOP000CshrMdl600?wP00SL,0*43"
        nmea = NMEAMessage(msg)

        with self.assertRaises(UnknownMessageException):
            nmea.decode(silent=False)

        # by default errors are ignored and None is returned
        assert nmea.decode() is None
コード例 #3
0
    def test_msg_type(self):
        """
        Test if msg type is correct
        """
        nmea = NMEAMessage(b"!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C")
        assert nmea.decode().msg_type == AISType.POS_CLASS_A1

        nmea = NMEAMessage(b"!AIVDM,1,1,,B,15NG6V0P01G?cFhE`R2IU?wn28R>,0*05")
        assert nmea.decode().msg_type == AISType.POS_CLASS_A1

        nmea = NMEAMessage.assemble_from_iterable(messages=[
            NMEAMessage(b"!AIVDM,2,1,4,A,55O0W7`00001L@gCWGA2uItLth@DqtL5@F22220j1h742t0Ht0000000,0*08"),
            NMEAMessage(b"!AIVDM,2,2,4,A,000000000000000,2*20")
        ])
        assert nmea.decode().msg_type == AISType.STATIC_AND_VOYAGE
コード例 #4
0
 def test_nmea(self):
     """
     Test if ais message still contains the original nmea message
     """
     nmea = NMEAMessage(b"!AIVDM,1,1,,B,91b55wi;hbOS@OdQAC062Ch2089h,0*30")
     assert nmea.decode().nmea == nmea
コード例 #5
0
from pyais.messages import NMEAMessage

message = NMEAMessage(b"!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C")
print(message.decode())

# or

message = NMEAMessage.from_string(
    "!AIVDM,1,1,,B,15M67FC000G?ufbE`FepT@3n00Sa,0*5C")
print(message.decode())