1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-16 04:45:17 +03:00

Increase output buffer (#7323)

This commit is contained in:
3djc 2020-01-30 11:37:26 +01:00 committed by GitHub
parent cde54f04f4
commit 6a52627f47
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View file

@ -456,6 +456,10 @@ static int luaSportTelemetryPush(lua_State * L)
lua_pushboolean(L, outputTelemetryBuffer.isAvailable());
return 1;
}
else if (lua_gettop(L) > sizeof(SportTelemetryPacket) ) {
lua_pushboolean(L, false);
return 1;
}
uint16_t dataId = luaL_checkunsigned(L, 3);
@ -653,6 +657,10 @@ static int luaCrossfireTelemetryPush(lua_State * L)
if (lua_gettop(L) == 0) {
lua_pushboolean(L, outputTelemetryBuffer.isAvailable());
}
else if (lua_gettop(L) > TELEMETRY_OUTPUT_BUFFER_SIZE ) {
lua_pushboolean(L, false);
return 1;
}
else if (outputTelemetryBuffer.isAvailable()) {
uint8_t command = luaL_checkunsigned(L, 1);
luaL_checktype(L, 2, LUA_TTABLE);

View file

@ -171,6 +171,7 @@ void logTelemetryWriteByte(uint8_t data);
#define LOG_TELEMETRY_WRITE_START()
#define LOG_TELEMETRY_WRITE_BYTE(data)
#endif
#define TELEMETRY_OUTPUT_BUFFER_SIZE 64
class OutputTelemetryBuffer {
public:
@ -212,6 +213,7 @@ class OutputTelemetryBuffer {
void pushByte(uint8_t byte)
{
if (size < TELEMETRY_OUTPUT_BUFFER_SIZE)
data[size++] = byte;
}
@ -244,7 +246,7 @@ class OutputTelemetryBuffer {
public:
union {
SportTelemetryPacket sport;
uint8_t data[16];
uint8_t data[TELEMETRY_OUTPUT_BUFFER_SIZE];
};
uint8_t size;
uint8_t timeout;