Macros | Functions
mip_cmdqueue.c File Reference
#include "mip_cmdqueue.h"
#include "mip_field.h"
#include "mip_packet.h"
#include <string.h>
#include <assert.h>
Include dependency graph for mip_cmdqueue.c:

Go to the source code of this file.

Macros

#define MIP_INDEX_REPLY_ACK_CODE   1
 
#define MIP_INDEX_REPLY_DESCRIPTOR   0
 
#define MIP_REPLY_DESC_GLOBAL_ACK_NACK   0xF1
 

Functions

mip_timeout 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, mip_timeout base_reply_timeout)
 Initializes a command queue. More...
 
void mip_cmd_queue_process_packet (mip_cmd_queue *queue, const mip_packet *packet, mip_timestamp 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, mip_timeout timeout)
 Sets the base reply timeout for all commands. More...
 
void mip_cmd_queue_update (mip_cmd_queue *queue, mip_timestamp now)
 Call periodically to make sure commands time out if no packets are received. More...
 
bool mip_pending_cmd_check_timeout (const mip_pending_cmd *cmd, mip_timestamp now)
 Checks if the command should time out. More...
 
void mip_pending_cmd_init (mip_pending_cmd *cmd, uint8_t descriptor_set, uint8_t field_descriptor)
 Initialize a pending command with no reponse data or additional time. More...
 
void mip_pending_cmd_init_full (mip_pending_cmd *cmd, uint8_t descriptor_set, uint8_t field_descriptor, uint8_t response_descriptor, uint8_t *response_buffer, uint8_t response_buffer_size, mip_timeout additional_time)
 Initialize a pending mip commmand with all parameters. More...
 
void mip_pending_cmd_init_with_response (mip_pending_cmd *cmd, uint8_t descriptor_set, uint8_t field_descriptor, uint8_t response_descriptor, uint8_t *response_buffer, uint8_t response_buffer_size)
 Initialize a pending mip commmand with expected response data. More...
 
void mip_pending_cmd_init_with_timeout (mip_pending_cmd *cmd, uint8_t descriptor_set, uint8_t field_descriptor, mip_timeout additional_time)
 Initialize a pending mip commmand with extra timeout time. More...
 
int mip_pending_cmd_remaining_time (const mip_pending_cmd *cmd, mip_timestamp now)
 Determines how much time is remaining before the command times out. More...
 
const uint8_t * mip_pending_cmd_response (const mip_pending_cmd *cmd)
 Returns the response payload pointer. More...
 
uint8_t mip_pending_cmd_response_descriptor (const mip_pending_cmd *cmd)
 Returns the response descriptor. More...
 
uint8_t mip_pending_cmd_response_length (const mip_pending_cmd *cmd)
 Returns the length of the response data. More...
 
enum mip_cmd_result mip_pending_cmd_status (const mip_pending_cmd *cmd)
 Returns the status of the pending command. More...
 
static enum mip_cmd_result process_fields_for_pending_cmd (mip_pending_cmd *pending, const mip_packet *packet, mip_timeout base_timeout, mip_timestamp timestamp)
 Iterate over a packet, checking for replies to the pending command. More...
 

Macro Definition Documentation

◆ MIP_INDEX_REPLY_ACK_CODE

#define MIP_INDEX_REPLY_ACK_CODE   1

Definition at line 14 of file mip_cmdqueue.c.

◆ MIP_INDEX_REPLY_DESCRIPTOR

#define MIP_INDEX_REPLY_DESCRIPTOR   0

Definition at line 13 of file mip_cmdqueue.c.

◆ MIP_REPLY_DESC_GLOBAL_ACK_NACK

#define MIP_REPLY_DESC_GLOBAL_ACK_NACK   0xF1

Definition at line 11 of file mip_cmdqueue.c.

Function Documentation

◆ process_fields_for_pending_cmd()

static enum mip_cmd_result process_fields_for_pending_cmd ( mip_pending_cmd pending,
const mip_packet packet,
mip_timeout  base_timeout,
mip_timestamp  timestamp 
)
static

Iterate over a packet, checking for replies to the pending command.

Definition at line 268 of file mip_cmdqueue.c.



microstrain_inertial_driver
Author(s): Brian Bingham, Parker Hannifin Corp
autogenerated on Mon Jun 24 2024 02:51:40