Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change data-creation and multiplexing #3

Open
10 tasks
arnegue opened this issue Mar 17, 2024 · 0 comments · May be fixed by #8
Open
10 tasks

Change data-creation and multiplexing #3

arnegue opened this issue Mar 17, 2024 · 0 comments · May be fixed by #8

Comments

@arnegue
Copy link
Owner

arnegue commented Mar 17, 2024

Currently this program's focus is on NMEA-messages: Receiving NMEA-Messages on one device and forwarding it to another (without parsing whatsoever).
Only Seatalk-Mesages are getting parsed so that they may get put into another NMEA-Message and getting send to a NMEA-device. And then only if there is a one-to-one-datagram on each side. This is done throught inheritance. (Seatalk-datagram derives from nmea-datagram).

But there are some limitations.
E.g:
NMEA's datagram (RMC) needs more than one Seatalk-Datagram for its message: There are two seatalk-datagrams for one position: LatitudePosition (0x50) and LongitudePosition (0x51). One for time, one for date, one for speed....

TODOs and thoughts (will be edited through the whole process)

  • Write a "database" of the current ship "status" (~every datatype there is)
  • Write a publish/subscribe model to these values on the database
  • Add a timestamp (max-age) to the values
  • Fill these data from nmea- and seatalk-datagrams
  • Get rid of inheritance: Seatalk-datagram from NMEA-datagram (and use super() constructor instead)
  • Get rid of inheritance: Seatalk-Exceptions from NMEA-Exceptions
  • In devices, do not subscribe from other devices but rather from specific messages [nmea subscribe specific to nmea-datagrams, seatalk to specific seatalk-datagrams
  • If wanted: subscribe for every other datagram, which is not parsable (Seatalk doesn't have this feature yet)
  • Change SpecialDevices (SetTimeDevice from ShipData, so it doesn't depend on NMEA: Seatalk has a Date/Time object too)
  • Rename get_seatalk_datagram to get_datragram (SeatalkDatagram is a DeviceClass, that function only returns bytearray)
arnegue added a commit that referenced this issue Apr 18, 2024
@arnegue arnegue linked a pull request Apr 24, 2024 that will close this issue
arnegue added a commit that referenced this issue Apr 24, 2024
arnegue added a commit that referenced this issue Apr 24, 2024
arnegue added a commit that referenced this issue Apr 24, 2024
arnegue added a commit that referenced this issue Apr 24, 2024
arnegue added a commit that referenced this issue Apr 24, 2024
arnegue added a commit that referenced this issue May 1, 2024
arnegue added a commit that referenced this issue May 1, 2024
arnegue added a commit that referenced this issue May 2, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant