77#define ALL_DEVICE 0xff
78#define CUSTOM_TYPE 0x00
80#define CTL_ASSIGN_DEV_ID 0x10
81#define CTL_SYSTEM_RESET 0x11
82#define CTL_READ_DEV_VERSION 0x12
83#define CTL_SET_BAUD_RATE 0x13
84#define CTL_CMD_TEST 0x14
85#define CTL_ERROR_CODE 0x15
87#define SMART_SERVO 0x60
89 #define SET_SERVO_PID 0x10
90 #define SET_SERVO_ABSOLUTE_POS 0x11
91 #define SET_SERVO_RELATIVE_POS 0x12
92 #define SET_SERVO_CONTINUOUS_ROTATION 0x13
93 #define SET_SERVO_MOTION_COMPENSATION 0x14
94 #define CLR_SERVO_MOTION_COMPENSATION 0x15
95 #define SET_SERVO_BREAK 0x16
96 #define SET_SERVO_RGB_LED 0x17
97 #define SERVO_SHARKE_HAND 0x18
98 #define SET_SERVO_CMD_MODE 0x19
100 #define GET_SERVO_STATUS 0x20
101 #define GET_SERVO_PID 0x21
102 #define GET_SERVO_CUR_POS 0x22
103 #define GET_SERVO_SPEED 0x23
104 #define GET_SERVO_MOTION_COMPENSATION 0x24
105 #define GET_SERVO_TEMPERATURE 0x25
106 #define GET_SERVO_ELECTRIC_CURRENT 0x26
107 #define GET_SERVO_VOLTAGE 0x27
109 #define SET_SERVO_CURRENT_ANGLE_ZERO_DEGREES 0x30
110 #define SET_SERVO_ABSOLUTE_ANGLE 0x31
111 #define SET_SERVO_RELATIVE_ANGLE 0x32
112 #define SET_SERVO_ABSOLUTE_ANGLE_LONG 0x33
113 #define SET_SERVO_RELATIVE_ANGLE_LONG 0x34
114 #define SET_SERVO_PWM_MOVE 0x35
115 #define GET_SERVO_CUR_ANGLE 0x36
116 #define SET_SERVO_INIT_ANGLE 0x37
117 #define REPORT_WHEN_REACH_THE_SET_POSITION 0x40
119#define START_SYSEX 0xF0
120#define END_SYSEX 0xF7
123#define PROCESS_SUC 0x0F
124#define PROCESS_BUSY 0x10
125#define PROCESS_ERROR 0x11
126#define WRONG_TYPE_OF_SERVICE 0x12
128#define DEFAULT_UART_BUF_SIZE 64
133 uint8_t value[DEFAULT_UART_BUF_SIZE - 2];
138 void (*request_fun)(
void *arg);
139 void (*response_fun)(
void *arg);
143 uint8_t storedInputData[DEFAULT_UART_BUF_SIZE];
177typedef void (*smartServoCb)(uint8_t);
184#ifndef ME_PORT_DEFINED
191#ifdef ME_PORT_DEFINED
218 MeSmartServo(uint8_t receivePin, uint8_t transmitPin, bool inverse_logic);
237 uint8_t
readByte(uint8_t *argv,int16_t idx);
257 short readShort(uint8_t *argv,int16_t idx,
boolean ignore_high);
275 float readFloat(uint8_t *argv,int16_t idx);
293 long readLong(uint8_t *argv,
int idx);
327 uint8_t
sendShort(int16_t val,
boolean ignore_high);
397 boolean moveTo(uint8_t dev_id,
long angle_value,
float speed,smartServoCb callback = NULL);
419 boolean move(uint8_t dev_id,
long angle_value,
float speed,smartServoCb callback = NULL);
435 boolean setZero(uint8_t dev_id);
453 boolean setBreak(uint8_t dev_id, uint8_t breakStatus);
475 boolean setRGBLed(uint8_t dev_id, uint8_t r_value, uint8_t g_value, uint8_t b_value);
509 boolean setPwmMove(uint8_t dev_id, int16_t pwm_value);
529 boolean setInitAngle(uint8_t dev_id,uint8_t = 0,int16_t = 40);
693 volatile int16_t sysexBytesRead;
694 volatile uint8_t servo_num_max;
695 volatile uint16_t resFlag;
697 volatile long cmdTimeOutValue;
698 volatile boolean parsingSysex;
699 smartServoCb _callback;
Configuration file of library.
Header for MePort.cpp module.
Header for for MeSerial.cpp module.
Driver for serial.
Definition MeSerial.h:67
Driver for Me Smart Servo device.
Definition MeSmartServo.h:189
float getSpeedRequest(uint8_t devId)
Definition MeSmartServo.cpp:879
uint8_t readByte(uint8_t *argv, int16_t idx)
Definition MeSmartServo.cpp:134
void smartServoEventHandle(void)
Definition MeSmartServo.cpp:1117
boolean setRGBLed(uint8_t dev_id, uint8_t r_value, uint8_t g_value, uint8_t b_value)
Definition MeSmartServo.cpp:644
void processSysexMessage(void)
Definition MeSmartServo.cpp:1082
uint8_t sendByte(uint8_t val)
Definition MeSmartServo.cpp:268
void assignDevIdResponse(void *arg)
Definition MeSmartServo.cpp:1054
boolean setPwmMove(uint8_t dev_id, int16_t pwm_value)
Definition MeSmartServo.cpp:738
uint8_t sendLong(long val)
Definition MeSmartServo.cpp:367
uint8_t sendFloat(float val)
Definition MeSmartServo.cpp:333
MeSmartServo()
Definition MeSmartServo.cpp:76
short readShort(uint8_t *argv, int16_t idx, boolean ignore_high)
Definition MeSmartServo.cpp:161
void smartServoCmdResponse(void *arg)
Definition MeSmartServo.cpp:1194
boolean handSharke(uint8_t dev_id)
Definition MeSmartServo.cpp:692
boolean moveTo(uint8_t dev_id, long angle_value, float speed, smartServoCb callback=NULL)
Definition MeSmartServo.cpp:445
float getTempRequest(uint8_t devId)
Definition MeSmartServo.cpp:966
boolean setZero(uint8_t dev_id)
Definition MeSmartServo.cpp:547
void errorCodeCheckResponse(void *arg)
Definition MeSmartServo.cpp:1166
boolean move(uint8_t dev_id, long angle_value, float speed, smartServoCb callback=NULL)
Definition MeSmartServo.cpp:499
uint8_t sendShort(int16_t val, boolean ignore_high)
Definition MeSmartServo.cpp:298
boolean assignDevIdRequest(void)
Definition MeSmartServo.cpp:401
long getAngleRequest(uint8_t devId)
Definition MeSmartServo.cpp:835
float getCurrentRequest(uint8_t devId)
Definition MeSmartServo.cpp:1010
long readLong(uint8_t *argv, int idx)
Definition MeSmartServo.cpp:232
float getVoltageRequest(uint8_t devId)
Definition MeSmartServo.cpp:923
float readFloat(uint8_t *argv, int16_t idx)
Definition MeSmartServo.cpp:194
boolean setBreak(uint8_t dev_id, uint8_t breakStatus)
Definition MeSmartServo.cpp:593
boolean setInitAngle(uint8_t dev_id, uint8_t=0, int16_t=40)
Definition MeSmartServo.cpp:788
Definition MeSmartServo.h:136
Definition MeSmartServo.h:169
Definition MeSmartServo.h:130
Definition MeSmartServo.h:142