[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [gpsd-dev] Encode AIVDM messages
From: |
Eric S. Raymond |
Subject: |
Re: [gpsd-dev] Encode AIVDM messages |
Date: |
Sat, 14 Sep 2013 07:40:42 -0400 |
User-agent: |
Mutt/1.5.21 (2010-09-15) |
address@hidden <address@hidden>:
> i have three open questions at the moment:
>
> 1.) I do not see, where the channel information is stored. So, at the
> moment, all messages are tagged with channel 'A' a source. This info
> is also available in nearly all ais related n2K messages (in info i
> used, it is missing only in the message 24, but this could be an error
> of the documentation). or is there an easy way to and such a variable
> without breaking client compatibility?
It's in session->aivdm_ais_channel. You can find the code that
sets this field in drivers.c near line 1279.
> 2.) The sequence counter for the splited messages should be on a per
> client base. Where can i place such a variable.
You're probably talking about the index member of struct ais_type24_queue_t.
If that's not what you want, you may need to create another sequence number
in that structure.
> 3.) The third question is the extraction of the vendor id from the
> message 24b. The current code extract them as seven 6bit chars, but
> ITU-R M.1371-4 says, this field is build from three 6bit chars, a 4
> bit wide number, and a 20 bit wide possibly binary coded serial
> number.
Ugh. What's in the C code now matches what's in AIVDM.txt, but it's
entirely possible that was true in an earlier version of ITU-R 1371 and is
no longer. Do you have access to older versions of ITU-R 1371? If so,
can you figure out when this changed so I can document it properly?
It wouldn't be the first time they've incompatibly changed field
semantics in a minor version. And probably won't be the last, either,
dammit.
--
<a href="http://www.catb.org/~esr/">Eric S. Raymond</a>
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- Re: [gpsd-dev] Encode AIVDM messages,
Eric S. Raymond <=