#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)); }