diff --git a/radio/src/opentx.h b/radio/src/opentx.h index 284048491..fe42cdd5c 100644 --- a/radio/src/opentx.h +++ b/radio/src/opentx.h @@ -1131,6 +1131,7 @@ union ReusableBuffer #if defined(GHOST) struct { GhostMenuData line[GHST_MENU_LINES + 1]; + uint8_t menuFlags; uint8_t menuAction; uint8_t buttonAction; } ghostMenu; diff --git a/radio/src/pulses/ghost.cpp b/radio/src/pulses/ghost.cpp index 1847976e2..df4fa6f69 100755 --- a/radio/src/pulses/ghost.cpp +++ b/radio/src/pulses/ghost.cpp @@ -22,8 +22,6 @@ uint8_t createGhostMenuControlFrame(uint8_t * frame, int16_t * pulses) { - moduleState[EXTERNAL_MODULE].counter = GHST_FRAME_CHANNEL; - uint8_t * buf = frame; #if SPORT_MAX_BAUDRATE < 400000 *buf++ = g_eeGeneral.telemetryBaudrate == GHST_TELEMETRY_RATE_400K ? GHST_ADDR_MODULE_SYM : GHST_ADDR_MODULE_ASYM; @@ -118,5 +116,7 @@ void setupPulsesGhost() extmodulePulsesData.ghost.length = createGhostMenuControlFrame(pulses, &channelOutputs[g_model.moduleData[EXTERNAL_MODULE].channelsStart]); else extmodulePulsesData.ghost.length = createGhostChannelsFrame(pulses, &channelOutputs[g_model.moduleData[EXTERNAL_MODULE].channelsStart]); + + moduleState[EXTERNAL_MODULE].counter = GHST_FRAME_CHANNEL; } } diff --git a/radio/src/telemetry/ghost.cpp b/radio/src/telemetry/ghost.cpp index 67ee38277..7a9653bb4 100755 --- a/radio/src/telemetry/ghost.cpp +++ b/radio/src/telemetry/ghost.cpp @@ -192,11 +192,10 @@ void processGhostTelemetryFrame() { GhostMenuFrame * packet; GhostMenuData * lineData; - packet = (GhostMenuFrame * ) telemetryRxBuffer; lineData = (GhostMenuData *) &reusableBuffer.ghostMenu.line[packet->lineIndex]; lineData->splitLine = 0; - reusableBuffer.ghostMenu.menuAction = packet->menuFlags; + reusableBuffer.ghostMenu.menuFlags = packet->menuFlags; lineData->lineFlags = packet->lineFlags; for (uint8_t i = 0; i < GHST_MENU_CHARS; i++) { if (packet->menuText[i] == 0x7C) {