Reorganize messages into module groups
This commit is contained in:
+2
-13
@@ -18,17 +18,6 @@ struct Client {
|
||||
|
||||
};
|
||||
|
||||
// Not sure what these are, but they are used for the hostbyte
|
||||
static const uint8_t DEFAULT_CLIENT_HOST = 9;
|
||||
static const uint8_t DEFAULT_CLIENT_INDEX = 6;
|
||||
static const uint8_t DEFAULT_ROBOT_INDEX = 0;
|
||||
|
||||
static inline uint8_t host2byte(uint8_t host, uint8_t index) {
|
||||
return index * 32 + host;
|
||||
}
|
||||
|
||||
static inline void byte2host(uint8_t b, uint8_t* host, uint8_t* index) {
|
||||
*host = (b & 0x1F);
|
||||
*index = b >> 5;
|
||||
}
|
||||
static const uint8_t CLIENT_HOST = 9;
|
||||
static const uint8_t CLIENT_INDEX = 6;
|
||||
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_system_led (
|
||||
Client session,
|
||||
uint8_t red,
|
||||
uint8_t green,
|
||||
uint8_t blue,
|
||||
enum LEDCOMP comp,
|
||||
uint16_t led_mask,
|
||||
enum LEDEFFECT effect,
|
||||
uint16_t t1,
|
||||
uint16_t t2 ) {
|
||||
|
||||
union Request req = {0};
|
||||
|
||||
req.led.comp_mask = comp;
|
||||
req.led.led_mask = led_mask;
|
||||
req.led.effect_mode = effect;
|
||||
req.led.control_mode = 7;
|
||||
req.led.red = red;
|
||||
req.led.green = green;
|
||||
req.led.blue = blue;
|
||||
req.led.loop = 0;
|
||||
req.led.t1 = t1;
|
||||
req.led.t2 = t2;
|
||||
|
||||
req_finalize(session, 0x3F, SET_SYSTEM_LED_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetSystemLedReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetSystemLedReq));
|
||||
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_sdk_connection(
|
||||
Client session,
|
||||
enum CONNECTION connection_type,
|
||||
uint32_t ip_address,
|
||||
uint16_t port ) {
|
||||
|
||||
union Request req = {0};
|
||||
req.sdkconn.control = 0;
|
||||
req.sdkconn.host = session->hostbyte;
|
||||
req.sdkconn.connection = connection_type;
|
||||
req.sdkconn.protocol = 0;
|
||||
req.sdkconn.ip_address = ip_address;
|
||||
req.sdkconn.port = port;
|
||||
req_finalize(session, 0x3F, SET_SDK_CONNECTION_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetSdkConnectionReq), &req);
|
||||
req_send(session->sdk_conn, &req, sizeof(struct SetSdkConnectionReq));
|
||||
}
|
||||
@@ -1,21 +0,0 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_sdk_mode(
|
||||
Client session,
|
||||
bool enable ) {
|
||||
union Request req = {0};
|
||||
req.sdkmode.enable = enable;
|
||||
req_finalize(session, 0x3F, SET_SDK_MODE_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetSdkModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetSdkModeReq));
|
||||
}
|
||||
|
||||
void
|
||||
sdk_heartbeat(
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req_finalize(session, 0x3F, SDK_HEARTBEAT_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SdkHeartbeatReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SdkHeartbeatReq));
|
||||
}
|
||||
@@ -1,78 +0,0 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_wheel_speed (
|
||||
Client session,
|
||||
int16_t w1,
|
||||
int16_t w2,
|
||||
int16_t w3,
|
||||
int16_t w4 ) {
|
||||
union Request req = {0};
|
||||
req.wheel.wheel_speed[0] = w1;
|
||||
req.wheel.wheel_speed[1] = w2;
|
||||
req.wheel.wheel_speed[2] = w3;
|
||||
req.wheel.wheel_speed[3] = w4;
|
||||
req_finalize(session, 0x3F, SET_WHEEL_SPEED_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetWheelSpeedReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetWheelSpeedReq));
|
||||
}
|
||||
|
||||
void
|
||||
set_chassis_wheel_speed (
|
||||
Client session,
|
||||
int8_t w1,
|
||||
int8_t w2,
|
||||
int8_t w3,
|
||||
int8_t w4 ) {
|
||||
union Request req = {0};
|
||||
req.chswheel.wheel_speed[0] = w1;
|
||||
req.chswheel.wheel_speed[1] = w2;
|
||||
req.chswheel.wheel_speed[2] = w3;
|
||||
req.chswheel.wheel_speed[3] = w4;
|
||||
req_finalize(session, 0x3F, SET_CHASSIS_WHEEL_SPEED_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetChassisWheelSpeedReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetChassisWheelSpeedReq));
|
||||
}
|
||||
|
||||
void
|
||||
chassis_speed_mode (
|
||||
Client session,
|
||||
float x,
|
||||
float y,
|
||||
float z ) {
|
||||
union Request req = {0};
|
||||
req.chsspeed.speed[0] = x;
|
||||
req.chsspeed.speed[1] = y;
|
||||
req.chsspeed.speed[2] = z;
|
||||
req_finalize(session, 0x3F, CHASSIS_SPEED_MODE_CMDID, host2byte(3, 6), false, sizeof(struct ChassisSpeedModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct ChassisSpeedModeReq));
|
||||
}
|
||||
|
||||
void
|
||||
set_robot_mode (
|
||||
Client session,
|
||||
enum MOVEMENTMODE mode ) {
|
||||
union Request req = {0};
|
||||
req.mvmode.mode = mode;
|
||||
req_finalize(session, 0x3F, SET_ROBOT_MODE_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SetRobotModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetRobotModeReq));
|
||||
}
|
||||
|
||||
void
|
||||
subnode_reset (
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req.subnodereset.hostbyte = session->hostbyte;
|
||||
req_finalize(session, 0x48, SUBNODE_RESET_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SubNodeResetReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SubNodeResetReq));
|
||||
}
|
||||
|
||||
void
|
||||
subscribe_add_node (
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req.subnodeadd.hostbyte = session->hostbyte;
|
||||
req.subnodeadd.sub_vision = 0x03000000;
|
||||
req_finalize(session, 0x48, SUBSCRIBE_ADD_NODE_CMDID, host2byte(DEFAULT_CLIENT_HOST, DEFAULT_ROBOT_INDEX), true, sizeof(struct SubscribeAddNodeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SubscribeAddNodeReq));
|
||||
}
|
||||
@@ -0,0 +1,33 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_wheel_speed (
|
||||
Client session,
|
||||
int16_t w1,
|
||||
int16_t w2,
|
||||
int16_t w3,
|
||||
int16_t w4 ) {
|
||||
union Request req = {0};
|
||||
req.wheel.wheel_speed[0] = w1;
|
||||
req.wheel.wheel_speed[1] = w2;
|
||||
req.wheel.wheel_speed[2] = w3;
|
||||
req.wheel.wheel_speed[3] = w4;
|
||||
req_finalize(session, 0x3F, SET_WHEEL_SPEED_CMDID, host2byte(CHASSIS_HOST, CHASSIS_INDEX), true, sizeof(struct SetWheelSpeedReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetWheelSpeedReq));
|
||||
}
|
||||
|
||||
void
|
||||
chassis_speed_mode (
|
||||
Client session,
|
||||
float x,
|
||||
float y,
|
||||
float z ) {
|
||||
union Request req = {0};
|
||||
req.chsspeed.speed[0] = x;
|
||||
req.chsspeed.speed[1] = y;
|
||||
req.chsspeed.speed[2] = z;
|
||||
req_finalize(session, 0x3F, CHASSIS_SPEED_MODE_CMDID, host2byte(CHASSIS_HOST, CHASSIS_INDEX), false, sizeof(struct ChassisSpeedModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct ChassisSpeedModeReq));
|
||||
}
|
||||
@@ -0,0 +1,98 @@
|
||||
#include "message.h"
|
||||
#include "connection.h"
|
||||
#include "robomaster.h"
|
||||
|
||||
void
|
||||
set_sdk_connection(
|
||||
Client session,
|
||||
enum CONNECTION connection_type,
|
||||
uint32_t ip_address,
|
||||
uint16_t port ) {
|
||||
|
||||
union Request req = {0};
|
||||
req.sdkconn.control = 0;
|
||||
req.sdkconn.host = session->hostbyte;
|
||||
req.sdkconn.connection = connection_type;
|
||||
req.sdkconn.protocol = 0;
|
||||
req.sdkconn.ip_address = ip_address;
|
||||
req.sdkconn.port = port;
|
||||
req_finalize(session, 0x3F, SET_SDK_CONNECTION_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SetSdkConnectionReq), &req);
|
||||
req_send(session->sdk_conn, &req, sizeof(struct SetSdkConnectionReq));
|
||||
}
|
||||
|
||||
void
|
||||
set_sdk_mode(
|
||||
Client session,
|
||||
bool enable ) {
|
||||
union Request req = {0};
|
||||
req.sdkmode.enable = enable;
|
||||
req_finalize(session, 0x3F, SET_SDK_MODE_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SetSdkModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetSdkModeReq));
|
||||
}
|
||||
|
||||
void
|
||||
sdk_heartbeat(
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req_finalize(session, 0x3F, SDK_HEARTBEAT_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SdkHeartbeatReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SdkHeartbeatReq));
|
||||
}
|
||||
|
||||
void
|
||||
set_robot_mode (
|
||||
Client session,
|
||||
enum MOVEMENTMODE mode ) {
|
||||
union Request req = {0};
|
||||
req.mvmode.mode = mode;
|
||||
req_finalize(session, 0x3F, SET_ROBOT_MODE_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SetRobotModeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetRobotModeReq));
|
||||
}
|
||||
|
||||
void
|
||||
subnode_reset (
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req.subnodereset.hostbyte = session->hostbyte;
|
||||
req_finalize(session, 0x48, SUBNODE_RESET_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SubNodeResetReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SubNodeResetReq));
|
||||
}
|
||||
|
||||
void
|
||||
subscribe_add_node (
|
||||
Client session ) {
|
||||
union Request req = {0};
|
||||
req.subnodeadd.hostbyte = session->hostbyte;
|
||||
req.subnodeadd.sub_vision = 0x03000000;
|
||||
req_finalize(session, 0x48, SUBSCRIBE_ADD_NODE_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SubscribeAddNodeReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SubscribeAddNodeReq));
|
||||
}
|
||||
|
||||
void
|
||||
set_system_led (
|
||||
Client session,
|
||||
uint8_t red,
|
||||
uint8_t green,
|
||||
uint8_t blue,
|
||||
enum LEDCOMP comp,
|
||||
uint16_t led_mask,
|
||||
enum LEDEFFECT effect,
|
||||
uint16_t t1,
|
||||
uint16_t t2 ) {
|
||||
|
||||
union Request req = {0};
|
||||
|
||||
req.led.comp_mask = comp;
|
||||
req.led.led_mask = led_mask;
|
||||
req.led.effect_mode = effect;
|
||||
req.led.control_mode = 7;
|
||||
req.led.red = red;
|
||||
req.led.green = green;
|
||||
req.led.blue = blue;
|
||||
req.led.loop = 0;
|
||||
req.led.t1 = t1;
|
||||
req.led.t2 = t2;
|
||||
|
||||
req_finalize(session, 0x3F, SET_SYSTEM_LED_CMDID, host2byte(SDK_HOST, SDK_INDEX), true, sizeof(struct SetSystemLedReq), &req);
|
||||
req_send(session->dev_conn, &req, sizeof(struct SetSystemLedReq));
|
||||
|
||||
}
|
||||
+1
-1
@@ -11,7 +11,7 @@ Client client_new() {
|
||||
struct Client* client = malloc(sizeof(struct Client));
|
||||
memset(client, 0, sizeof(struct Client));
|
||||
// TODO: Make this configurable
|
||||
client->hostbyte = host2byte(DEFAULT_CLIENT_HOST, DEFAULT_CLIENT_INDEX);
|
||||
client->hostbyte = host2byte(CLIENT_HOST, CLIENT_INDEX);
|
||||
return client;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user