Skip to content

No indication of full buffers #20

@riodda

Description

@riodda

i had a very odd behaviour of the library that drove me a bit creasy for a couple of hours (even if is not a real bug).
I guess that the micro has 8 fuffers to send messages and when those are full there is no indication that the message you send in not being sent.
Here below is part of the code that gave me problem (it's a GPS that sends data trough canbus):

First is with no delay and the 9th frame in not sent (don't show up in PCANview)

if (CAN[0].en) CANbus.write(can_pos); if (CAN[1].en) CANbus.write(can_pos_fil); if (CAN[2].en) CANbus.write(can_nav); if (CAN[3].en) CANbus.write(can_nav_fil); if (CAN[4].en) CANbus.write(can_dof1); if (CAN[5].en) CANbus.write(can_lap); if (CAN[6].en) CANbus.write(can_dof2); if (CAN[7].en) CANbus.write(can_gyr); if (CAN[8].en) CANbus.write(can_dop);

As soon as i add the delay just before the last CANbus.write the 9th frame appears and i can see it in the PCANview.

if (CAN[0].en) CANbus.write(can_pos); if (CAN[1].en) CANbus.write(can_pos_fil); if (CAN[2].en) CANbus.write(can_nav); if (CAN[3].en) CANbus.write(can_nav_fil); if (CAN[4].en) CANbus.write(can_dof1); if (CAN[5].en) CANbus.write(can_lap); if (CAN[6].en) CANbus.write(can_dof2); if (CAN[7].en) CANbus.write(can_gyr); delay(1); // Added delay to empty the can send buffers if (CAN[8].en) CANbus.write(can_dop);

i think that a flag to war if all the buffers are full should be added.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions