Implement simple SDK API

This commit is contained in:
2023-02-21 15:08:56 -06:00
parent af5a6efdb3
commit 31d7e57125
15 changed files with 486 additions and 235 deletions
+49 -49
View File
@@ -4,72 +4,74 @@
void
set_sdk_connection(
Client session,
union Request* req,
uint16_t seq,
bool ack,
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));
req->sdkconn.control = 0;
req->sdkconn.host = host2byte(CLIENT_HOST, CLIENT_INDEX);
req->sdkconn.connection = connection_type;
req->sdkconn.protocol = 0;
req->sdkconn.ip_address = ip_address;
req->sdkconn.port = port;
req_finalize(seq, SET_SDK_CONNECTION_CMD, ack, req);
}
void
set_sdk_mode(
Client session,
union Request* req,
uint16_t seq,
bool ack,
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));
req->sdkmode.enable = enable;
req_finalize(seq, SET_SDK_MODE_CMD, ack, req);
}
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));
union Request* req,
uint16_t seq,
bool ack ) {
req_finalize(seq, SDK_HEARTBEAT_CMD, ack, req);
}
void
set_robot_mode (
Client session,
union Request* req,
uint16_t seq,
bool ack,
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));
req->mvmode.mode = mode;
req_finalize(seq, SET_ROBOT_MODE_CMD, ack, req);
}
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));
union Request* req,
uint16_t seq,
bool ack ) {
req->subnodereset.hostbyte = host2byte(CLIENT_HOST, CLIENT_INDEX);
req_finalize(seq, SUBNODE_RESET_CMD, ack, req);
}
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));
union Request* req,
uint16_t seq,
bool ack ) {
req->subnodeadd.hostbyte = host2byte(CLIENT_HOST, CLIENT_INDEX);
req->subnodeadd.sub_vision = 0x03000000;
req_finalize(seq, SUBSCRIBE_ADD_NODE_CMD, ack, req);
}
void
set_system_led (
Client session,
union Request* req,
uint16_t seq,
bool ack,
uint8_t red,
uint8_t green,
uint8_t blue,
@@ -79,20 +81,18 @@ set_system_led (
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->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));
req_finalize(seq, SET_SYSTEM_LED_CMD, ack, req);
}