You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
99 lines
2.9 KiB
C
99 lines
2.9 KiB
C
#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), false, 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));
|
|
|
|
}
|