Hi,

I do not fully understand if you are looking from Application or Kernel
perspective?
Also I do not know if the CAN driver is capable of providing you with
information when the message is actually transmitted on the bus. I mean
that for example CAN peripheral may have multiple TX buffers and you can
put your message into one of those, but it can loose internal TX
arbitration if CAN peripheral picks a buffer holding the lowest CAN-ID
first, so the mechanism how do you want to ensure that messages are
transmitted with the chronological order is not clear to me, unless you use
a special version of the peripheral driver that uses a single TX buffer.

Best regards,
Petro

чт, 19 жовт. 2023 р. о 22:35 Tim Hardisty <timhardist...@gmail.com> пише:

> Hello helpful people. I am not sure if this is a POSIX or NuttX
> question, so apologies it it's something I "should" know.
>
> I am looking for a methodology - ideally portable (POSIX) - perhaps a
> queue, to hold a list of messages (CANbus) that need to be transmitted
> in the correct chronological order. I have been using linked lists for
> other things and just about have that sussed (but they do my head in to
> be honest!) but it doesn't seem quite right for this. I am thinking the
> set of "dq_" functions are possibly a good solution but I can't find
> much information/documentation on this and am not sure if its just a
> NuttX-specific thing, although I see it used heavily for audio playback?
>
> Am I on the right track, or should I be looking at something else?
>
> In essence I want to add (queue?) entries (pointers to message structs)
> that need to be sent (on a POSIX timer, which I have setup and working
> well) and once each is transmitted it'll be removed until added again if
> needed. I want it to be as generic as possible.
>
> Thanks!
>
> TimH (aka TimJTi...new email account)
>

Reply via email to