Hoi Pedro,
Van Arduino's en embedded dingen heb ik geen kaas gegeten, maar wellicht heb je betreft N2K protocol iets aan mijn project. Hiervoor heb ik een RPi2 met PiCAN2 board gebruikt.
Hier staat beschreven welke ISO commando's je minimaal moet gaan ondersteunen om je virtuele device netjes op het netwerk aan te melden. Doe je dat niet dan wordt je instrument niet weergegeven op je repeaters, plotter etc en blijven deze apparaten je bombarderen met ISO Requests: dat geeft tevens een hoge busload.
Ik heb veel gebruik gemaakt van de CANboat libraries van Kees Verruit: ideaal om droog, onder Linux te testen of je fast packets of data-PGN's goed doorkomen/begrepen worden.
En wellicht heb je iets aan bijgevoegde Excel sheet, waar ik een aantal PGN's uit elkaar geplozen heb op bit niveau en, omgekeerd, de CAN ID's en data frames geherconstrueerd heb. Met name PGN 126996 (ISO Product Info) is het nodige werk om aan te maken - is een zogenaamd "N2K fast packet" welke uit meerdere dataframes bestaat. Ook voor "normale" PGN's met 8 databytes lopen de datavelden over de bytegrenzen heen!
Voor jou project heb je in ieder geval nodig:
- PGN 127508 (Battery Status)
- PGN 60928 (ISO Address Claim)
- PGN 126996 (Product Info)
- PGN 59904 (ISO Request) - je apparaat kan gevraagd worden te reageren met PGN 60928 en daarná met PGN 126996
Als je het netjes doet ondervraagt je device eerst zelf de overige apparaten in het netwerk om vervolgens een vrij netwerk adres te kiezen - ik doe dat niet omdat mijn netwerk bekend is en ik geen commercieel product maak
Na downloaden de .pdf extensie weghalen en je houdt een .xlsx file over: