Loading...
Searching...
No Matches
dynamixel.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2017 Inria
3 * SPDX-License-Identifier: LGPL-2.1-only
4 */
5
6#pragma once
7
22
23#include <stdlib.h>
24#include <stdbool.h>
25
26#include "dynamixel_protocol.h"
27#include "uart_half_duplex.h"
28
29#ifdef __cplusplus
30extern "C" {
31#endif
32
33typedef uint8_t dynamixel_id_t;
34typedef uint16_t dynamixel_addr_t;
35
43
47enum {
52};
53
66
75
88int dynamixel_write8(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t value);
89
102int dynamixel_write16(const dynamixel_t *device, dynamixel_addr_t reg, uint16_t value);
103
117int dynamixel_write(const dynamixel_t *device, dynamixel_addr_t reg, const uint8_t *data, size_t length);
118
131int dynamixel_read8(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t *value);
132
145int dynamixel_read16(const dynamixel_t *device, dynamixel_addr_t reg, uint16_t *value);
146
160int dynamixel_read(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t *data, size_t length);
161
162#ifdef __cplusplus
163}
164#endif
165
Dynamixel protocol definitions.
uint16_t dynamixel_addr_t
register address type
Definition dynamixel.h:34
int dynamixel_read8(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t *value)
Read from a device 8bits register.
uint8_t dynamixel_id_t
device id type
Definition dynamixel.h:33
int dynamixel_write16(const dynamixel_t *device, dynamixel_addr_t reg, uint16_t value)
Write to a device 16bits register.
int dynamixel_write(const dynamixel_t *device, dynamixel_addr_t reg, const uint8_t *data, size_t length)
Write to a device address.
void dynamixel_init(dynamixel_t *device, uart_half_duplex_t *stream, dynamixel_id_t id)
Initialize a Dynamixel device.
int dynamixel_read16(const dynamixel_t *device, dynamixel_addr_t reg, uint16_t *value)
Read from a device 16bits register.
int dynamixel_ping(uart_half_duplex_t *stream, dynamixel_id_t id)
Send a PING message to a device.
int dynamixel_write8(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t value)
Write to a device 8bits register.
int dynamixel_read(const dynamixel_t *device, dynamixel_addr_t reg, uint8_t *data, size_t length)
Read from a device address.
@ DYNAMIXEL_INVALID_MESSAGE
Invalid message received.
Definition dynamixel.h:51
@ DYNAMIXEL_TIMEOUT
No response from the device.
Definition dynamixel.h:49
@ DYNAMIXEL_OK
Success.
Definition dynamixel.h:48
@ DYNAMIXEL_BUFFER_TOO_SMALL
Buffer is too small for the message.
Definition dynamixel.h:50
Descriptor struct for a dynamixel device.
Definition dynamixel.h:39
uart_half_duplex_t * stream
the stream used
Definition dynamixel.h:40
dynamixel_id_t id
the device address
Definition dynamixel.h:41
Descriptor struct for half-duplex UART.
Interface definition for half-duplex UART driver.