Loading...
Searching...
No Matches
feetech_writer.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2017 Inria
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser General
5 * Public License v2.1. See the file LICENSE in the top level directory for more
6 * details.
7 */
8
20#ifndef FEETECH_WRITER_H
21#define FEETECH_WRITER_H
22
23#include "feetech_protocol.h"
24
25#include <stdint.h>
26#include <stdbool.h>
27#include <stdlib.h>
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
36typedef struct {
37 uint8_t *buffer;
38 size_t size;
41
49void feetech_writer_init(feetech_writer_t *writer, uint8_t *buffer, size_t buffer_max_size);
50
58const uint8_t *feetech_writer_get_data(const feetech_writer_t *writer);
59
68
77void feetech_writer_response_make(feetech_writer_t *writer, uint8_t id, const uint8_t *buffer, size_t size);
78
85void feetech_writer_ack_make(feetech_writer_t *writer, uint8_t id);
86
94
104void feetech_writer_write_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, const uint8_t *buffer, size_t size);
105
114void feetech_writer_write8_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, uint8_t value);
115
124void feetech_writer_write16_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, uint16_t value);
125
134void feetech_writer_read_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, size_t size);
135
143void feetech_writer_sync_write_begin(feetech_writer_t *writer, uint8_t reg, size_t size);
144
151
160void feetech_writer_sync_write_add(feetech_writer_t *writer, uint8_t id, const uint8_t *buffer, size_t size);
161
169void feetech_writer_sync_write_add_8bits(feetech_writer_t *writer, uint8_t id, uint8_t value);
170
178void feetech_writer_sync_write_add_16bits(feetech_writer_t *writer, uint8_t id, uint16_t value);
179
180#ifdef __cplusplus
181}
182#endif
183
184#endif /* FEETECH_WRITER_H */
Feetech protocol definitions.
void feetech_writer_write16_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, uint16_t value)
Build a WRITE packet (16 bits)
void feetech_writer_sync_write_end(feetech_writer_t *writer)
End the building of a SYNC_WRITE packet.
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)
void feetech_writer_response_make(feetech_writer_t *writer, uint8_t id, const uint8_t *buffer, size_t size)
Build a response packet.
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.
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.
size_t feetech_writer_get_size(const feetech_writer_t *writer)
Get the data buffer's size to send.
void feetech_writer_sync_write_begin(feetech_writer_t *writer, uint8_t reg, size_t size)
Begin to build a SYNC_WRITE packet.
void feetech_writer_ack_make(feetech_writer_t *writer, uint8_t id)
Build an ack packet.
void feetech_writer_ping_make(feetech_writer_t *writer, uint8_t id)
Build a PING packet.
void feetech_writer_read_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, size_t size)
Build a READ packet.
const uint8_t * feetech_writer_get_data(const feetech_writer_t *writer)
Get the data buffer to send.
void feetech_writer_init(feetech_writer_t *writer, uint8_t *buffer, size_t buffer_max_size)
Initialize the Feetech packet writer.
void feetech_writer_write8_make(feetech_writer_t *writer, uint8_t id, uint8_t reg, uint8_t value)
Build a WRITE packet (8 bits)
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)
Feetech packet writer struct.
uint8_t * buffer
data buffer
size_t size
packet's size
size_t buffer_max_size
data buffer's size