On Tuesday, November 03, 2015 at 06:32:12 PM, Oliver Hartkopp wrote:
[...]
> It looks like you need to shift the stuff in user space every time.
>
> So you might better think of something like this:
>
> struct a429_frame {
> __u32 label; /* ARINC 429 label */
> __u8 length; /* always set to 8 */
> __u8 __pad; /* padding */
> __u8 __res0; /* reserved / padding */
> __u8 __res1; /* reserved / padding */
> __u32 data __attribute__((aligned(8)));
> __u8 p; /* p */
> __u8 ssm; /* ssm */
> __u8 sdi; /* sdi */
> __u8 __end; /* padding */
> };
You don't want to interpret those P(arity)/SSM/SDI bits, since they differ
depending on whatever the remote party sends. That's why I decided to just
make those into 3-bytes of data and let the userland application deal with
it as seen fit. Besides, the ARINC "FTP" really uses those 3 bytes as plain
data.
> Good thing would be that you can directly see the content in logfiles and
> you can easily modify the content on the fly by can-gw.
>
> Of course the arinc netdevice driver would have to take care to do the
> correct rx/tx whatever. But routing and processing arinc content through
> the CAN stack does not seem to be a bad idea IMO.
Pretty much, yeah.
Best regards,
Marek Vasut
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html