Add support for moving with velocity

Signed-off-by: Agis Zisimatos <agzisim@gmail.com>
merge-requests/7/head
Agis Zisimatos 2019-07-17 14:15:35 +03:00
parent 12e38fb752
commit 31541b7946
1 changed files with 48 additions and 16 deletions

View File

@ -98,38 +98,70 @@ public:
control_el.setpoint = atof(data);
}
}
} else if (buffer[0] == 'V' && buffer[1] == 'U') {
} else if ((buffer[0] == 'V' && buffer[1] == 'U') ||
(buffer[0] == 'M' && buffer[1] == 'U')) {
// Elevation increase speed in mdeg/s
rotator.control_mode = speed;
strncpy(data, Data + 2, 10);
if (isNumber(data)) {
// Convert to deg/s
control_el.setpoint_speed = atof(data) / 1000;
if (strlen(data) == 0) {
control_el.setpoint_speed = 3;
} else {
if (isNumber(data)) {
// Convert to deg/s
control_el.setpoint_speed = atof(data) / 1000;
}
}
} else if (buffer[0] == 'V' && buffer[1] == 'D') {
str1 = String("VU");
str2 = String((control_el.setpoint_speed * 1000), 1);
rs485.print(str1 + str2 + str_newline);
} else if ((buffer[0] == 'V' && buffer[1] == 'D') ||
(buffer[0] == 'M' && buffer[1] == 'D')) {
// Elevation decrease speed in mdeg/s
rotator.control_mode = speed;
strncpy(data, Data + 2, 10);
if (isNumber(data)) {
// Convert to deg/s
control_el.setpoint_speed = - atof(data) / 1000;
if (strlen(data) == 0) {
control_el.setpoint_speed = -3;
} else {
if (isNumber(data)) {
// Convert to deg/s
control_el.setpoint_speed = - atof(data) / 1000;
}
}
} else if (buffer[0] == 'V' && buffer[1] == 'L') {
str1 = String("VD");
str2 = String((control_el.setpoint_speed * 1000), 1);
rs485.print(str1 + str2 + str_newline);
} else if ((buffer[0] == 'V' && buffer[1] == 'L') ||
(buffer[0] == 'M' && buffer[1] == 'L')) {
// Azimuth increase speed in mdeg/s
rotator.control_mode = speed;
strncpy(data, Data + 2, 10);
if (isNumber(data)) {
// Convert to deg/s
control_az.setpoint_speed = atof(data) / 1000;
if (strlen(data) == 0) {
control_az.setpoint_speed = 3;
} else {
if (isNumber(data)) {
// Convert to deg/s
control_az.setpoint_speed = atof(data) / 1000;
}
}
} else if (buffer[0] == 'V' && buffer[1] == 'R') {
str1 = String("VL");
str2 = String((control_az.setpoint_speed * 1000), 1);
rs485.print(str1 + str2 + str_newline);
} else if ((buffer[0] == 'V' && buffer[1] == 'R') ||
(buffer[0] == 'M' && buffer[1] == 'R')) {
// Azimuth decrease speed in mdeg/s
rotator.control_mode = speed;
strncpy(data, Data + 2, 10);
if (isNumber(data)) {
// Convert to deg/s
control_az.setpoint_speed = - atof(data) / 1000;
if (strlen(data) == 0) {
control_az.setpoint_speed = -3;
} else {
if (isNumber(data)) {
// Convert to deg/s
control_az.setpoint_speed = - atof(data) / 1000;
}
}
str1 = String("VR");
str2 = String((control_az.setpoint_speed * 1000), 1);
rs485.print(str1 + str2 + str_newline);
} else if (buffer[0] == 'S' && buffer[1] == 'A' &&
buffer[2] == ' ' && buffer[3] == 'S' &&
buffer[4] == 'E') {