diff --git a/README b/README index 9b8bbc3..35775af 100644 --- a/README +++ b/README @@ -1,91 +1,39 @@ +Description +----------- +NMEA0183 multiplexer (and tools), written in python (python3). + +Comes with a lib that make it easy to connect to NMEA0183 servers and to send NMEA sentences. +Reading/Filtering NMEA sentences is also possible. + External tools --------------------------------- -- Needs python3 -- Needs pip3 : sudo apt-get install python3-pip -- Needs geographiclib : pip3 install geographiclib +- Needs python3 + pip3 (python3-pip or dev-python/pip package) +- Needs geographiclib: pip3 install geographiclib +- Needs a C compiler for the Current content of the repository --------------------------------- -./bin/console - -Console that plugs into a NMEA multiplexer (or any TCP server). It displays the NMEA sentences. - -USAGE: -./console 39150 localhost -or (equivalent) -./console 39150 - ---- - -./bin/joiner - -Tool that sends the NMEA sentences from one server to another one. - -USAGE: -./joiner localhost 39150 localhost 39151 -(This would send the traffic from the NMEA server on port 39150 to the server on port 39151) - ---- - -./bin/multiplexer - -NMEA multiplexer. Each NMEA client that connects to the multiplexer will receive the NMEA traffic from other clients, and its NMEA sentences will be sent to other clients. - -USAGE: -./multiplexer 39150 localhost -or (equivalent) -./multiplexer 39150 - ---- - -./bin/pipe - -Pipe tool to connect 2 NMEA servers in both directions. Like a joiner but in both directions. - -USAGE: -./joiner localhost 39150 localhost 39151 - ---- - -./tools/dpt - -Client NMEA client that sends random DPT sentences (with YX talker ID) every second. - -USAGE: -./dpt 39150 - ---- - -./tools/boat - -Fake boat that waits for a RMB sentence from navigation (like OpenCPN), and sends RMC position sentences. -When the navigation starts sending RMB messages, the fake boat will jump to the provided way point. -This wokrs by activation a route in OpenCPN. - -USAGE: -./boat -(it connects to server on port 39150 by default) - ---- - -./tools/PetitBaigneur.py - -Fake AIS ship sending AIS type 5 and type 1 messages. - -USAGE: -./PetitBaigneur.py -(it connects to server on port 39150 by default) - ---- - -./tools/MOB.py - -Simulate AIS Man Over Board - ---- - -./tools/CardNorth - -Simulate AIS Cardinal N - +"/bin" contains: +A "multiplexer" can be used to connect several NMEA0183 clients. +A "joiner" connects a mutiplexer (or any NMEA server) to another multiplexer or server (one way). +A "pipe" connects a mutiplexer (or any NMEA server) to another multiplexer or server (bi-directional). +A "console" can be plugged-in on the multiplexer to monitor live NMEA0183 traffic. + +"/lib" contains: +nmea0183.py: encoding/decoding/filtering library +nmeaSender.py: NMEA0183 message sending (to server) library +nmeaTranceiver.py: asyncio based lib to create intelligent NMEA clients +geoCalc.py: geographiclib based lib to do geographic calculations + convert Deg/Minute/Sec/Hemi format to NMEA format (decimal degrees) +aisMsg.py: lib to encode/decode AIS messages, based on ITU-R M.1371-5 Annex 8 (2014) +[...] + +"/tools" contains: +boat.py: a simple test boat that receives RMBs and sends RMCs +dpt.py: a simple depth transducer that sends DPT +PetitBaigneur.py: a fake Cargo ship that sends it's AIS position +MOB.py: a MOB AIS signal +CardNorth: Simulate AIS Cardinal N +[...] + +Also included: tools to decode GRIB files, polars, etc.