1
0
Fork 0
mirror of https://github.com/opentx/opentx.git synced 2025-07-17 05:15:18 +03:00

Compilation fixes

This commit is contained in:
Bertrand Songis 2019-04-23 08:26:38 +02:00
parent 469f6f860e
commit fa6db9e330
8 changed files with 38 additions and 55 deletions

View file

@ -80,7 +80,6 @@ enum MenuModelSetupItems {
#if defined(PCBTARANIS)
ITEM_MODEL_INTERNAL_MODULE_LABEL,
ITEM_MODEL_INTERNAL_MODULE_MODE,
ITEM_MODEL_INTERNAL_MODULE_PROTOCOL,
ITEM_MODEL_INTERNAL_MODULE_CHANNELS,
ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND,
ITEM_MODEL_INTERNAL_MODULE_PXX2_MODEL_NUM,
@ -173,12 +172,7 @@ enum MenuModelSetupItems {
#define SW_WARN_ROWS uint8_t(NAVIGATION_LINE_BY_LINE|(getSwitchWarningsCount()-1)), uint8_t(getSwitchWarningsCount() > 5 ? TITLE_ROW : HIDDEN_ROW)
#endif
#if defined(TARANIS_INTERNAL_PPM)
#define INTERNAL_MODULE_MODE_ROWS (isModuleXJT(INTERNAL_MODULE) ? (uint8_t)1 : (uint8_t)0) // Module type + RF protocols
#else
#define INTERNAL_MODULE_MODE_ROWS 0 // (OFF / RF protocols)
#endif
#define IF_INTERNAL_MODULE_ON(x) (IS_INTERNAL_MODULE_ENABLED()? (uint8_t)(x) : HIDDEN_ROW)
#define IF_EXTERNAL_MODULE_ON(x) (IS_EXTERNAL_MODULE_ENABLED()? (uint8_t)(x) : HIDDEN_ROW)
#define EXTERNAL_MODULE_BIND_ROWS() ((isModuleXJT(EXTERNAL_MODULE) && IS_D8_RX(EXTERNAL_MODULE)) || isModuleSBUS(EXTERNAL_MODULE)) ? (uint8_t)1 : (isModulePPM(EXTERNAL_MODULE) || isModulePXX(EXTERNAL_MODULE) || isModuleDSM2(EXTERNAL_MODULE) || isModuleMultimodule(EXTERNAL_MODULE)) ? (uint8_t)2 : HIDDEN_ROW
@ -494,7 +488,6 @@ void menuModelSetup(event_t event)
LABEL(InternalModule),
INTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
IF_NOT_PXX2_MODULE(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(0)), // XJT protocols
INTERNAL_MODULE_CHANNELS_ROWS, // Channels min and count
IF_NOT_PXX2_MODULE(INTERNAL_MODULE, IF_INTERNAL_MODULE_ON(HAS_RF_PROTOCOL_MODELINDEX(g_model.moduleData[INTERNAL_MODULE].rfProtocol) ? (uint8_t)2 : (uint8_t)1)),
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // RxNum
@ -948,8 +941,11 @@ void menuModelSetup(event_t event)
case ITEM_MODEL_INTERNAL_MODULE_MODE:
lcdDrawTextAlignedLeft(y, STR_MODE);
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, attr);
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_MODULE_PROTOCOLS, g_model.moduleData[INTERNAL_MODULE].type, menuHorizontalPosition==0 ? attr : 0);
if (isModuleXJT(INTERNAL_MODULE))
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN+6*FW, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[INTERNAL_MODULE].rfProtocol, menuHorizontalPosition==1 ? attr : 0);
if (attr) {
if (menuHorizontalPosition == 0) {
uint8_t moduleType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable);
if (checkIncDec_Ret) {
// TODO this code should be common, in module.h (X10_new_UI branch)
@ -958,12 +954,7 @@ void menuModelSetup(event_t event)
g_model.moduleData[INTERNAL_MODULE].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
}
}
break;
case ITEM_MODEL_INTERNAL_MODULE_PROTOCOL:
lcdDrawTextAlignedLeft(y, STR_PROTO);
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[0].rfProtocol, attr);
if (attr) {
else if (isModuleXJT(INTERNAL_MODULE)) {
g_model.moduleData[INTERNAL_MODULE].rfProtocol = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].rfProtocol, RF_PROTO_X16, RF_PROTO_LAST, EE_MODEL, isRfProtocolAvailable);
if (checkIncDec_Ret) {
g_model.moduleData[0].type = MODULE_TYPE_XJT;
@ -971,6 +962,7 @@ void menuModelSetup(event_t event)
g_model.moduleData[0].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
}
}
}
break;
#endif

View file

@ -568,21 +568,21 @@ When called without parameters, it will only return the status of the output buf
static int luaCrossfireTelemetryPush(lua_State * L)
{
if (lua_gettop(L) == 0) {
lua_pushboolean(L, isCrossfireOutputBufferAvailable());
lua_pushboolean(L, outputTelemetryBuffer.isAvailable());
}
else if (isCrossfireOutputBufferAvailable()) {
else if (outputTelemetryBuffer.isAvailable()) {
uint8_t command = luaL_checkunsigned(L, 1);
luaL_checktype(L, 2, LUA_TTABLE);
uint8_t length = luaL_len(L, 2);
telemetryOutputPushByte(MODULE_ADDRESS);
telemetryOutputPushByte(2 + length); // 1(COMMAND) + data length + 1(CRC)
telemetryOutputPushByte(command); // COMMAND
outputTelemetryBuffer.pushByte(MODULE_ADDRESS);
outputTelemetryBuffer.pushByte(2 + length); // 1(COMMAND) + data length + 1(CRC)
outputTelemetryBuffer.pushByte(command); // COMMAND
for (int i=0; i<length; i++) {
lua_rawgeti(L, 2, i+1);
telemetryOutputPushByte(luaL_checkunsigned(L, -1));
outputTelemetryBuffer.pushByte(luaL_checkunsigned(L, -1));
}
telemetryOutputPushByte(crc8(outputTelemetryBuffer+2, 1 + length));
telemetryOutputSetTrigger(command);
outputTelemetryBuffer.pushByte(crc8(outputTelemetryBuffer.data+2, 1 + length));
outputTelemetryBuffer.setDestination(TELEMETRY_ENDPOINT_SPORT);
lua_pushboolean(L, true);
}
else {

View file

@ -52,11 +52,10 @@ void setupPulsesCrossfire()
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
uint8_t * pulses = extmodulePulsesData.crossfire.pulses;
#if defined(LUA)
if (outputTelemetryBufferTrigger != 0x00 && outputTelemetryBufferSize > 0) {
memcpy(pulses, outputTelemetryBuffer, outputTelemetryBufferSize);
extmodulePulsesData.crossfire.length = outputTelemetryBufferSize;
outputTelemetryBufferTrigger = 0x00;
outputTelemetryBufferSize = 0;
if (outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT) {
memcpy(pulses, outputTelemetryBuffer.data, outputTelemetryBuffer.size);
extmodulePulsesData.crossfire.length = outputTelemetryBuffer.size;
outputTelemetryBuffer.reset();
}
else
#endif

View file

@ -174,11 +174,6 @@ void processCrossfireTelemetryFrame()
}
}
bool isCrossfireOutputBufferAvailable()
{
return outputTelemetryBufferSize == 0;
}
void processCrossfireTelemetryData(uint8_t data)
{
if (telemetryRxBufferCount == 0 && data != RADIO_ADDRESS) {

View file

@ -78,7 +78,6 @@ enum CrossfireSensorIndexes {
void processCrossfireTelemetryData(uint8_t data);
void crossfireSetDefault(int index, uint8_t id, uint8_t subId);
bool isCrossfireOutputBufferAvailable();
#if SPORT_MAX_BAUDRATE < 400000
const uint32_t CROSSFIRE_BAUDRATES[] = {

View file

@ -158,14 +158,14 @@ static void processMultiTelemetryPaket(const uint8_t *packet)
// Just an ack to our command, ignore for now
break;
#if defined(MULTI_SPORT) && defined(LUA)
case FrskySportPolling:
#if defined(LUA)
if (len >= 1 && outputTelemetryBuffer.size > 0 && data[0] == outputTelemetryBuffer.trigger) {
if (len >= 1 && outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT && data[0] == outputTelemetryBuffer.sport.physicalId) {
TRACE("MP Sending sport data out.");
sportSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size);
}
#endif
break;
#endif
default:
TRACE("[MP] Unkown multi packet type 0x%02X, len %d", type, len);

View file

@ -266,8 +266,7 @@ void telemetryInit(uint8_t protocol)
// The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use
telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2);
#if defined(LUA)
outputTelemetryBuffer.size = 0;
outputTelemetryBuffer.trigger = 0x7E;
outputTelemetryBuffer.reset();
#endif
}
else if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
@ -280,8 +279,7 @@ void telemetryInit(uint8_t protocol)
else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
#if defined(LUA)
outputTelemetryBufferSize = 0;
outputTelemetryBufferTrigger = 0;
outputTelemetryBuffer.reset();
#endif
telemetryPortSetDirectionOutput();
}

View file

@ -108,8 +108,8 @@
#define LEN_MODULE_PROTOCOLS "\006"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""ISRM\0 ""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M-A\0""R9MLit""R9ML-A""R9MP-A""SBUS\0"
#else
#define LEN_MODULE_PROTOCOLS "\006"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT-A\0""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M-A\0""R9MLit""R9ML-A""R9MP-A""SBUS\0"
#define LEN_MODULE_PROTOCOLS "\013"
#define TR_MODULE_PROTOCOLS "OFF\0 ""PPM\0 ""XJT\0 ""XJT ACCESS\0""DSM2\0 ""CRSF\0 ""MULT\0 ""R9M\0 ""R9M ACCESS\0""R9MLite\0 ""R9ML ACCESS""R9MP ACCESS""SBUS\0"
#endif
#define LEN_TELEMETRY_PROTOCOLS "\017"