![]() |
Classes | |
struct | mip_cmd_queue |
Holds a list of pending commands. More... | |
Typedefs | |
typedef struct mip_cmd_queue | mip_cmd_queue |
Holds a list of pending commands. More... | |
Functions | |
timeout_type | mip_cmd_queue_base_reply_timeout (const mip_cmd_queue *queue) |
Gets the base reply timeout for all commands. More... | |
void | mip_cmd_queue_clear (mip_cmd_queue *queue) |
Clears the command queue. More... | |
void | mip_cmd_queue_dequeue (mip_cmd_queue *queue, mip_pending_cmd *cmd) |
Removes a pending command from the queue. More... | |
void | mip_cmd_queue_enqueue (mip_cmd_queue *queue, mip_pending_cmd *cmd) |
Queue a command to wait for replies. More... | |
void | mip_cmd_queue_init (mip_cmd_queue *queue, timeout_type base_reply_timeout) |
Initializes a command queue. More... | |
void | mip_cmd_queue_process_packet (mip_cmd_queue *queue, const mip_packet *packet, timestamp_type timestamp) |
Process an incoming packet and check for replies to pending commands. More... | |
void | mip_cmd_queue_set_base_reply_timeout (mip_cmd_queue *queue, timeout_type timeout) |
Sets the base reply timeout for all commands. More... | |
void | mip_cmd_queue_update (mip_cmd_queue *queue, timestamp_type timestamp) |
Call periodically to make sure commands time out if no packets are received. More... | |
typedef struct mip_cmd_queue mip_cmd_queue |
Holds a list of pending commands.
Currently only one command may be pending at a time.
timeout_type mip_cmd_queue_base_reply_timeout | ( | const mip_cmd_queue * | queue | ) |
Gets the base reply timeout for all commands.
Definition at line 481 of file mip_cmdqueue.c.
void mip_cmd_queue_clear | ( | mip_cmd_queue * | queue | ) |
Clears the command queue.
This must be called from the same thread context as the update function.
queue |
Definition at line 411 of file mip_cmdqueue.c.
void mip_cmd_queue_dequeue | ( | mip_cmd_queue * | queue, |
mip_pending_cmd * | cmd | ||
) |
Removes a pending command from the queue.
Definition at line 238 of file mip_cmdqueue.c.
void mip_cmd_queue_enqueue | ( | mip_cmd_queue * | queue, |
mip_pending_cmd * | cmd | ||
) |
Queue a command to wait for replies.
queue | |
cmd | Listens for replies to this command. |
Definition at line 215 of file mip_cmdqueue.c.
void mip_cmd_queue_init | ( | mip_cmd_queue * | queue, |
timeout_type | base_reply_timeout | ||
) |
Initializes a command queue.
queue | |
base_reply_timeout | The minimum timeout given to all MIP commands. Additional time may be given to specific commands which take longer. This is intended to be used to accommodate long communication latencies, such as when using a TCP connection. |
Definition at line 194 of file mip_cmdqueue.c.
void mip_cmd_queue_process_packet | ( | mip_cmd_queue * | queue, |
const mip_packet * | packet, | ||
timestamp_type | timestamp | ||
) |
Process an incoming packet and check for replies to pending commands.
Call this from the Mip_parser callback, passing the arguments directly.
queue | |
packet | The received MIP packet. Assumed to be valid. |
timestamp | The time the packet was received |
Definition at line 369 of file mip_cmdqueue.c.
void mip_cmd_queue_set_base_reply_timeout | ( | mip_cmd_queue * | queue, |
timeout_type | timeout | ||
) |
Sets the base reply timeout for all commands.
The base reply timeout is the minimum time to wait for a reply. Takes effect for any commands queued after this function call.
queue | |
timeout |
Definition at line 471 of file mip_cmdqueue.c.
void mip_cmd_queue_update | ( | mip_cmd_queue * | queue, |
timestamp_type | now | ||
) |
Call periodically to make sure commands time out if no packets are received.
Call this during the device update if no calls to mip_cmd_queue_process_packet are made (e.g. because no packets were received). It is safe to call this in either case.
queue | |
now |
Definition at line 434 of file mip_cmdqueue.c.