MIP SDK  0.0.1
MicroStrain Communications Library for embedded systems
Namespaces | Macros | Functions
serialization.c File Reference
#include "serialization.h"
#include "../mip_field.h"
#include <string.h>
Include dependency graph for serialization.c:

Namespaces

 mip
 A collection of C++ classes and functions covering the full mip api.
 

Macros

#define INSERT_MACRO(name, type)
 
#define EXTRACT_MACRO(name, type)
 

Functions

void mip::mip_serializer_init_insertion (mip_serializer *serializer, uint8_t *buffer, size_t buffer_size)
 Initialize a serialization struct for insertion into a buffer. More...
 
void mip::mip_serializer_init_extraction (mip_serializer *serializer, const uint8_t *buffer, size_t buffer_size)
 Initialize a serialization struct for extract from a buffer. More...
 
void mip::mip_serializer_init_from_field (mip_serializer *serializer, const mip_field *field)
 Initialize a serialization struct from a MIP field payload. More...
 
size_t mip::mip_serializer_capacity (const mip_serializer *serializer)
 Determines the total length the buffer. More...
 
size_t mip::mip_serializer_length (const mip_serializer *serializer)
 Determines the length of the data in the buffer. More...
 
remaining_count mip::mip_serializer_remaining (const mip_serializer *serializer)
 Determines the difference between the length and buffer size. More...
 
bool mip::mip_serializer_is_ok (const mip_serializer *serializer)
 Determines if the data read/written is less than the buffer size. More...
 
bool mip::mip_serializer_is_complete (const mip_serializer *serializer)
 Determines if the number of remaining bytes is 0. More...
 
void mip::extract_count (mip_serializer *serializer, uint8_t *count_out, uint8_t max_count)
 Similar to extract_u8 but allows a maximum value to be specified. More...
 

Macro Definition Documentation

◆ EXTRACT_MACRO

#define EXTRACT_MACRO (   name,
  type 
)
Value:
void extract_##name(mip_serializer* serializer, type* value) \
{ \
const size_t offset = serializer->_offset + sizeof(type); \
if( offset <= serializer->_buffer_size ) \
unpack(&serializer->_buffer[serializer->_offset], value, sizeof(type)); \
serializer->_offset = offset; \
}
struct mip::C::mip_serializer mip_serializer
Structure used for serialization.

◆ INSERT_MACRO

#define INSERT_MACRO (   name,
  type 
)
Value:
void insert_##name(mip_serializer* serializer, type value) \
{ \
const size_t offset = serializer->_offset + sizeof(type); \
if( offset <= serializer->_buffer_size ) \
pack(&serializer->_buffer[serializer->_offset], &value, sizeof(type)); \
serializer->_offset = offset; \
}