|
|
|
@ -16,6 +16,9 @@ struct Robot {
|
|
|
|
|
uint8_t colors[3];
|
|
|
|
|
bool dirty_colors;
|
|
|
|
|
|
|
|
|
|
int16_t gimbal[2];
|
|
|
|
|
bool dirty_gimbal;
|
|
|
|
|
|
|
|
|
|
bool sdk_mode;
|
|
|
|
|
|
|
|
|
|
enum {
|
|
|
|
@ -46,6 +49,14 @@ robot_drive(Robot robot, float x, float y, float r) {
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
robot_aim(Robot robot, float p, float y) {
|
|
|
|
|
robot->gimbal[0] = p * 360;
|
|
|
|
|
robot->gimbal[1] = y * 360;
|
|
|
|
|
robot->dirty_gimbal = true;
|
|
|
|
|
return 1;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
int
|
|
|
|
|
robot_led(Robot robot, unsigned char r, unsigned char g, unsigned char b) {
|
|
|
|
|
robot->colors[0] = r;
|
|
|
|
@ -151,6 +162,15 @@ robot_work(Robot robot) {
|
|
|
|
|
req_send(robot->client->dev_conn, &req);
|
|
|
|
|
robot->dirty_wheels = false;
|
|
|
|
|
}
|
|
|
|
|
if(robot->dirty_gimbal) {
|
|
|
|
|
gimbal_ctrl_speed (
|
|
|
|
|
&req, robot->seq++, false,
|
|
|
|
|
robot->gimbal[0],
|
|
|
|
|
robot->gimbal[1],
|
|
|
|
|
0 );
|
|
|
|
|
req_send(robot->client->dev_conn, &req);
|
|
|
|
|
robot->dirty_gimbal = false;
|
|
|
|
|
}
|
|
|
|
|
if(robot->dirty_colors) {
|
|
|
|
|
set_system_led (
|
|
|
|
|
&req, robot->seq++, false,
|
|
|
|
|