mirror of
https://github.com/okalachev/flix.git
synced 2025-07-27 01:29:33 +00:00
Make mavlink print buffered
Combine all output of each step into one SERIAL_CONTROL message
This commit is contained in:
parent
4b938e8d89
commit
21dc47c472
@ -13,6 +13,7 @@
|
||||
#define MAVLINK_CONTROL_YAW_DEAD_ZONE 0.1f
|
||||
|
||||
float mavlinkControlScale = 0.7;
|
||||
String mavlinkPrintBuffer;
|
||||
|
||||
extern double controlsTime;
|
||||
extern int rollChannel, pitchChannel, throttleChannel, yawChannel, armedChannel, modeChannel;
|
||||
@ -23,6 +24,8 @@ void processMavlink() {
|
||||
}
|
||||
|
||||
void sendMavlink() {
|
||||
sendMavlinkPrint();
|
||||
|
||||
static double lastSlow = 0;
|
||||
static double lastFast = 0;
|
||||
|
||||
@ -197,7 +200,12 @@ void handleMavlink(const void *_msg) {
|
||||
|
||||
// Send shell output to GCS
|
||||
void mavlinkPrint(const char* str) {
|
||||
// Send data in chunks
|
||||
mavlinkPrintBuffer += str;
|
||||
}
|
||||
|
||||
void sendMavlinkPrint() {
|
||||
// Send mavlink print data in chunks
|
||||
const char *str = mavlinkPrintBuffer.c_str();
|
||||
for (int i = 0; i < strlen(str); i += MAVLINK_MSG_SERIAL_CONTROL_FIELD_DATA_LEN) {
|
||||
char data[MAVLINK_MSG_SERIAL_CONTROL_FIELD_DATA_LEN + 1];
|
||||
strlcpy(data, str + i, sizeof(data));
|
||||
@ -206,6 +214,7 @@ void mavlinkPrint(const char* str) {
|
||||
SERIAL_CONTROL_DEV_SHELL, 0, 0, 0, strlen(data), (uint8_t *)data, 0, 0);
|
||||
sendMessage(&msg);
|
||||
}
|
||||
mavlinkPrintBuffer.clear();
|
||||
}
|
||||
|
||||
// Convert Forward-Left-Up to Forward-Right-Down quaternion
|
||||
|
@ -51,6 +51,7 @@ void sendMessage(const void *msg);
|
||||
void receiveMavlink();
|
||||
void handleMavlink(const void *_msg);
|
||||
void mavlinkPrint(const char* str);
|
||||
void sendMavlinkPrint();
|
||||
inline Quaternion fluToFrd(const Quaternion &q);
|
||||
void failsafe();
|
||||
void armingFailsafe();
|
||||
|
Loading…
x
Reference in New Issue
Block a user