[Top][All Lists]

[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,
                <a href="";>Eric S. Raymond</a>

reply via email to

[Prev in Thread] Current Thread [Next in Thread]