feetech_writer.h File Reference

Interface definition for Feetech packet writer. More...

Detailed Description

#include "feetech_protocol.h"
#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h>
+ Include dependency graph for feetech_writer.h:

Go to the source code of this file.

Data Structures

struct  feetech_writer_t
 Feetech packet writer struct. More...
 

Functions

void feetech_writer_init (feetech_writer_t *writer, uint8_t *buffer, size_t buffer_max_size)
 Initialize the Feetech packet writer. More...
 
const uint8_t * feetech_writer_get_data (const feetech_writer_t *writer)
 Get the data buffer to send. More...
 
size_t feetech_writer_get_size (const feetech_writer_t *writer)
 Get the data buffer's size to send. More...
 
void feetech_writer_response_make (feetech_writer_t *writer, uint8_t id, const uint8_t *buffer, size_t size)
 Build a response packet. More...
 
void feetech_writer_ack_make (feetech_writer_t *writer, uint8_t id)
 Build an ack packet. More...
 
void feetech_writer_ping_make (feetech_writer_t *writer, uint8_t id)
 Build a PING packet. More...
 
void feetech_writer_write_make (feetech_writer_t *writer, uint8_t id, uint8_t reg, const uint8_t *buffer, size_t size)
 Build a WRITE packet. More...
 
void feetech_writer_write8_make (feetech_writer_t *writer, uint8_t id, uint8_t reg, uint8_t value)
 Build a WRITE packet (8 bits) More...
 
void feetech_writer_write16_make (feetech_writer_t *writer, uint8_t id, uint8_t reg, uint16_t value)
 Build a WRITE packet (16 bits) More...
 
void feetech_writer_read_make (feetech_writer_t *writer, uint8_t id, uint8_t reg, size_t size)
 Build a READ packet. More...
 
void feetech_writer_sync_write_begin (feetech_writer_t *writer, uint8_t reg, size_t size)
 Begin to build a SYNC_WRITE packet. More...
 
void feetech_writer_sync_write_end (feetech_writer_t *writer)
 End the building of a SYNC_WRITE packet. More...
 
void feetech_writer_sync_write_add (feetech_writer_t *writer, uint8_t id, const uint8_t *buffer, size_t size)
 Add an item to a SYNC_WRITE packet. More...
 
void feetech_writer_sync_write_add_8bits (feetech_writer_t *writer, uint8_t id, uint8_t value)
 Add an item to a SYNC_WRITE packet (8 bits) More...
 
void feetech_writer_sync_write_add_16bits (feetech_writer_t *writer, uint8_t id, uint16_t value)
 Add an item to a SYNC_WRITE packet (16 bits) More...
 

Function Documentation

void feetech_writer_ack_make ( feetech_writer_t writer,
uint8_t  id 
)
Parameters
[out]writerthe packet writer
[in]idthe responder's id
const uint8_t* feetech_writer_get_data ( const feetech_writer_t writer)
Parameters
[out]writerthe packet writer
Returns
the begining address of the buffer
size_t feetech_writer_get_size ( const feetech_writer_t writer)
Parameters
[out]writerthe packet writer
Returns
the buffer's size
void feetech_writer_init ( feetech_writer_t writer,
uint8_t *  buffer,
size_t  buffer_max_size 
)
Parameters
[out]writerthe packet writer
[in]bufferthe buffer used to store data
[in]buffer_max_sizethe size of the buffer (= maximum packet size)
void feetech_writer_ping_make ( feetech_writer_t writer,
uint8_t  id 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
void feetech_writer_read_make ( feetech_writer_t writer,
uint8_t  id,
uint8_t  reg,
size_t  size 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]regthe register to read
[in]sizethe size to read
void feetech_writer_response_make ( feetech_writer_t writer,
uint8_t  id,
const uint8_t *  buffer,
size_t  size 
)
Parameters
[out]writerthe packet writer
[in]idthe responder's id
[in]bufferthe response data
[in]sizethe response size
void feetech_writer_sync_write_add ( feetech_writer_t writer,
uint8_t  id,
const uint8_t *  buffer,
size_t  size 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]bufferthe data buffer to write
[in]sizethe data buffer's size
void feetech_writer_sync_write_add_16bits ( feetech_writer_t writer,
uint8_t  id,
uint16_t  value 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]valuethe value to write
void feetech_writer_sync_write_add_8bits ( feetech_writer_t writer,
uint8_t  id,
uint8_t  value 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]valuethe value to write
void feetech_writer_sync_write_begin ( feetech_writer_t writer,
uint8_t  reg,
size_t  size 
)
Parameters
[out]writerthe packet writer
[in]regthe register to write in
[in]sizethe data buffer's size
void feetech_writer_sync_write_end ( feetech_writer_t writer)
Parameters
[out]writerthe packet writer
void feetech_writer_write16_make ( feetech_writer_t writer,
uint8_t  id,
uint8_t  reg,
uint16_t  value 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]regthe register to write in
[in]valuethe value to write in the register
void feetech_writer_write8_make ( feetech_writer_t writer,
uint8_t  id,
uint8_t  reg,
uint8_t  value 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]regthe register to write in
[in]valuethe value to write in the register
void feetech_writer_write_make ( feetech_writer_t writer,
uint8_t  id,
uint8_t  reg,
const uint8_t *  buffer,
size_t  size 
)
Parameters
[out]writerthe packet writer
[in]idthe destination's id
[in]regthe register to write in
[in]bufferthe data buffer to write
[in]sizethe data buffer's size