And FIFO rather than deterministic 

> On 19 Oct 2023, at 20:49, Petro Karashchenko <petro.karashche...@gmail.com> 
> wrote:
> 
> 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