mirror of
https://github.com/opentx/opentx.git
synced 2025-07-16 21:05:26 +03:00
Compilation fixes
This commit is contained in:
parent
469f6f860e
commit
fa6db9e330
8 changed files with 38 additions and 55 deletions
|
@ -80,7 +80,6 @@ enum MenuModelSetupItems {
|
||||||
#if defined(PCBTARANIS)
|
#if defined(PCBTARANIS)
|
||||||
ITEM_MODEL_INTERNAL_MODULE_LABEL,
|
ITEM_MODEL_INTERNAL_MODULE_LABEL,
|
||||||
ITEM_MODEL_INTERNAL_MODULE_MODE,
|
ITEM_MODEL_INTERNAL_MODULE_MODE,
|
||||||
ITEM_MODEL_INTERNAL_MODULE_PROTOCOL,
|
|
||||||
ITEM_MODEL_INTERNAL_MODULE_CHANNELS,
|
ITEM_MODEL_INTERNAL_MODULE_CHANNELS,
|
||||||
ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND,
|
ITEM_MODEL_INTERNAL_MODULE_NPXX2_BIND,
|
||||||
ITEM_MODEL_INTERNAL_MODULE_PXX2_MODEL_NUM,
|
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)
|
#define SW_WARN_ROWS uint8_t(NAVIGATION_LINE_BY_LINE|(getSwitchWarningsCount()-1)), uint8_t(getSwitchWarningsCount() > 5 ? TITLE_ROW : HIDDEN_ROW)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if defined(TARANIS_INTERNAL_PPM)
|
#define INTERNAL_MODULE_MODE_ROWS (isModuleXJT(INTERNAL_MODULE) ? (uint8_t)1 : (uint8_t)0) // Module type + RF protocols
|
||||||
#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_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 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
|
#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),
|
LABEL(InternalModule),
|
||||||
INTERNAL_MODULE_MODE_ROWS, // module mode (PXX(2) / None)
|
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
|
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_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
|
IF_PXX2_MODULE(INTERNAL_MODULE, 0), // RxNum
|
||||||
|
@ -948,27 +941,26 @@ void menuModelSetup(event_t event)
|
||||||
|
|
||||||
case ITEM_MODEL_INTERNAL_MODULE_MODE:
|
case ITEM_MODEL_INTERNAL_MODULE_MODE:
|
||||||
lcdDrawTextAlignedLeft(y, STR_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 (attr) {
|
||||||
uint8_t moduleType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable);
|
if (menuHorizontalPosition == 0) {
|
||||||
if (checkIncDec_Ret) {
|
uint8_t moduleType = checkIncDec(event, g_model.moduleData[INTERNAL_MODULE].type, MODULE_TYPE_NONE, MODULE_TYPE_MAX, EE_MODEL, isInternalModuleAvailable);
|
||||||
// TODO this code should be common, in module.h (X10_new_UI branch)
|
if (checkIncDec_Ret) {
|
||||||
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
|
// TODO this code should be common, in module.h (X10_new_UI branch)
|
||||||
g_model.moduleData[INTERNAL_MODULE].type = moduleType;
|
memclear(&g_model.moduleData[INTERNAL_MODULE], sizeof(ModuleData));
|
||||||
g_model.moduleData[INTERNAL_MODULE].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
|
g_model.moduleData[INTERNAL_MODULE].type = moduleType;
|
||||||
|
g_model.moduleData[INTERNAL_MODULE].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
else if (isModuleXJT(INTERNAL_MODULE)) {
|
||||||
break;
|
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) {
|
||||||
case ITEM_MODEL_INTERNAL_MODULE_PROTOCOL:
|
g_model.moduleData[0].type = MODULE_TYPE_XJT;
|
||||||
lcdDrawTextAlignedLeft(y, STR_PROTO);
|
g_model.moduleData[0].channelsStart = 0;
|
||||||
lcdDrawTextAtIndex(MODEL_SETUP_2ND_COLUMN, y, STR_XJT_PROTOCOLS, 1+g_model.moduleData[0].rfProtocol, attr);
|
g_model.moduleData[0].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
|
||||||
if (attr) {
|
}
|
||||||
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;
|
|
||||||
g_model.moduleData[0].channelsStart = 0;
|
|
||||||
g_model.moduleData[0].channelsCount = defaultModuleChannels_M8(INTERNAL_MODULE);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -568,21 +568,21 @@ When called without parameters, it will only return the status of the output buf
|
||||||
static int luaCrossfireTelemetryPush(lua_State * L)
|
static int luaCrossfireTelemetryPush(lua_State * L)
|
||||||
{
|
{
|
||||||
if (lua_gettop(L) == 0) {
|
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);
|
uint8_t command = luaL_checkunsigned(L, 1);
|
||||||
luaL_checktype(L, 2, LUA_TTABLE);
|
luaL_checktype(L, 2, LUA_TTABLE);
|
||||||
uint8_t length = luaL_len(L, 2);
|
uint8_t length = luaL_len(L, 2);
|
||||||
telemetryOutputPushByte(MODULE_ADDRESS);
|
outputTelemetryBuffer.pushByte(MODULE_ADDRESS);
|
||||||
telemetryOutputPushByte(2 + length); // 1(COMMAND) + data length + 1(CRC)
|
outputTelemetryBuffer.pushByte(2 + length); // 1(COMMAND) + data length + 1(CRC)
|
||||||
telemetryOutputPushByte(command); // COMMAND
|
outputTelemetryBuffer.pushByte(command); // COMMAND
|
||||||
for (int i=0; i<length; i++) {
|
for (int i=0; i<length; i++) {
|
||||||
lua_rawgeti(L, 2, i+1);
|
lua_rawgeti(L, 2, i+1);
|
||||||
telemetryOutputPushByte(luaL_checkunsigned(L, -1));
|
outputTelemetryBuffer.pushByte(luaL_checkunsigned(L, -1));
|
||||||
}
|
}
|
||||||
telemetryOutputPushByte(crc8(outputTelemetryBuffer+2, 1 + length));
|
outputTelemetryBuffer.pushByte(crc8(outputTelemetryBuffer.data+2, 1 + length));
|
||||||
telemetryOutputSetTrigger(command);
|
outputTelemetryBuffer.setDestination(TELEMETRY_ENDPOINT_SPORT);
|
||||||
lua_pushboolean(L, true);
|
lua_pushboolean(L, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
|
@ -52,11 +52,10 @@ void setupPulsesCrossfire()
|
||||||
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
if (telemetryProtocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||||
uint8_t * pulses = extmodulePulsesData.crossfire.pulses;
|
uint8_t * pulses = extmodulePulsesData.crossfire.pulses;
|
||||||
#if defined(LUA)
|
#if defined(LUA)
|
||||||
if (outputTelemetryBufferTrigger != 0x00 && outputTelemetryBufferSize > 0) {
|
if (outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT) {
|
||||||
memcpy(pulses, outputTelemetryBuffer, outputTelemetryBufferSize);
|
memcpy(pulses, outputTelemetryBuffer.data, outputTelemetryBuffer.size);
|
||||||
extmodulePulsesData.crossfire.length = outputTelemetryBufferSize;
|
extmodulePulsesData.crossfire.length = outputTelemetryBuffer.size;
|
||||||
outputTelemetryBufferTrigger = 0x00;
|
outputTelemetryBuffer.reset();
|
||||||
outputTelemetryBufferSize = 0;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -174,11 +174,6 @@ void processCrossfireTelemetryFrame()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
bool isCrossfireOutputBufferAvailable()
|
|
||||||
{
|
|
||||||
return outputTelemetryBufferSize == 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void processCrossfireTelemetryData(uint8_t data)
|
void processCrossfireTelemetryData(uint8_t data)
|
||||||
{
|
{
|
||||||
if (telemetryRxBufferCount == 0 && data != RADIO_ADDRESS) {
|
if (telemetryRxBufferCount == 0 && data != RADIO_ADDRESS) {
|
||||||
|
|
|
@ -78,7 +78,6 @@ enum CrossfireSensorIndexes {
|
||||||
|
|
||||||
void processCrossfireTelemetryData(uint8_t data);
|
void processCrossfireTelemetryData(uint8_t data);
|
||||||
void crossfireSetDefault(int index, uint8_t id, uint8_t subId);
|
void crossfireSetDefault(int index, uint8_t id, uint8_t subId);
|
||||||
bool isCrossfireOutputBufferAvailable();
|
|
||||||
|
|
||||||
#if SPORT_MAX_BAUDRATE < 400000
|
#if SPORT_MAX_BAUDRATE < 400000
|
||||||
const uint32_t CROSSFIRE_BAUDRATES[] = {
|
const uint32_t CROSSFIRE_BAUDRATES[] = {
|
||||||
|
|
|
@ -158,14 +158,14 @@ static void processMultiTelemetryPaket(const uint8_t *packet)
|
||||||
// Just an ack to our command, ignore for now
|
// Just an ack to our command, ignore for now
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if defined(MULTI_SPORT) && defined(LUA)
|
||||||
case FrskySportPolling:
|
case FrskySportPolling:
|
||||||
#if defined(LUA)
|
if (len >= 1 && outputTelemetryBuffer.destination == TELEMETRY_ENDPOINT_SPORT && data[0] == outputTelemetryBuffer.sport.physicalId) {
|
||||||
if (len >= 1 && outputTelemetryBuffer.size > 0 && data[0] == outputTelemetryBuffer.trigger) {
|
|
||||||
TRACE("MP Sending sport data out.");
|
TRACE("MP Sending sport data out.");
|
||||||
sportSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size);
|
sportSendBuffer(outputTelemetryBuffer.data, outputTelemetryBuffer.size);
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
break;
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
default:
|
default:
|
||||||
TRACE("[MP] Unkown multi packet type 0x%02X, len %d", type, len);
|
TRACE("[MP] Unkown multi packet type 0x%02X, len %d", type, len);
|
||||||
|
|
|
@ -266,8 +266,7 @@ void telemetryInit(uint8_t protocol)
|
||||||
// The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use
|
// The DIY Multi module always speaks 100000 baud regardless of the telemetry protocol in use
|
||||||
telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2);
|
telemetryPortInit(MULTIMODULE_BAUDRATE, TELEMETRY_SERIAL_8E2);
|
||||||
#if defined(LUA)
|
#if defined(LUA)
|
||||||
outputTelemetryBuffer.size = 0;
|
outputTelemetryBuffer.reset();
|
||||||
outputTelemetryBuffer.trigger = 0x7E;
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
else if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
|
else if (protocol == PROTOCOL_TELEMETRY_SPEKTRUM) {
|
||||||
|
@ -280,8 +279,7 @@ void telemetryInit(uint8_t protocol)
|
||||||
else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
else if (protocol == PROTOCOL_TELEMETRY_CROSSFIRE) {
|
||||||
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
telemetryPortInit(CROSSFIRE_BAUDRATE, TELEMETRY_SERIAL_DEFAULT);
|
||||||
#if defined(LUA)
|
#if defined(LUA)
|
||||||
outputTelemetryBufferSize = 0;
|
outputTelemetryBuffer.reset();
|
||||||
outputTelemetryBufferTrigger = 0;
|
|
||||||
#endif
|
#endif
|
||||||
telemetryPortSetDirectionOutput();
|
telemetryPortSetDirectionOutput();
|
||||||
}
|
}
|
||||||
|
|
|
@ -108,8 +108,8 @@
|
||||||
#define LEN_MODULE_PROTOCOLS "\006"
|
#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"
|
#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
|
#else
|
||||||
#define LEN_MODULE_PROTOCOLS "\006"
|
#define LEN_MODULE_PROTOCOLS "\013"
|
||||||
#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 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
|
#endif
|
||||||
|
|
||||||
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
#define LEN_TELEMETRY_PROTOCOLS "\017"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue