fix: Internal PXX exclusive S.PORT (#3822)

This commit is contained in:
Raphael Coeffic
2023-10-13 09:48:32 +10:00
committed by GitHub
parent c270ec18bf
commit ff2b3ac22a
24 changed files with 435 additions and 186 deletions
+19 -7
View File
@@ -19,6 +19,7 @@
* GNU General Public License for more details.
*/
#include "opentx.h"
#include "hal/module_port.h"
#include "telemetry.h"
#include "io/multi_protolist.h"
@@ -83,6 +84,11 @@ MultiModuleStatus &getMultiModuleStatus(uint8_t module)
return multiModuleStatus[module];
}
static uint8_t _getMultiStatusModuleIdx(const MultiModuleStatus* p)
{
return p - multiModuleStatus;
}
uint8_t getMultiBindStatus(uint8_t module)
{
return multiBindStatus[module];
@@ -116,6 +122,11 @@ MultiModuleStatus& getMultiModuleStatus(uint8_t)
return multiModuleStatus;
}
static uint8_t _getMultiStatusModuleIdx(const MultiModuleStatus*)
{
return EXTERNAL_MODULE;
}
uint8_t getMultiBindStatus(uint8_t)
{
return multiBindStatus;
@@ -497,14 +508,11 @@ static void processMultiTelemetryPaket(const uint8_t * packet, uint8_t module)
void MultiModuleStatus::getStatusString(char * statusText) const
{
if (!isValid()) {
#if defined(PCBFRSKY)
#if !defined(INTERNAL_MODULE_MULTI)
if (isSportLineUsedByInternalModule())
if (!modulePortIsPortUsedByModule(getModuleIndex(), ETX_MOD_PORT_SPORT)) {
strcpy(statusText, STR_DISABLE_INTERNAL);
else
#endif
#endif
strcpy(statusText, STR_MODULE_NO_TELEMETRY);
} else {
strcpy(statusText, STR_MODULE_NO_TELEMETRY);
}
return;
}
if (!protocolValid()) {
@@ -556,6 +564,10 @@ void MultiModuleStatus::getStatusString(char * statusText) const
}
}
uint8_t MultiModuleStatus::getModuleIndex() const {
return _getMultiStatusModuleIdx(this);
}
static void processMultiTelemetryByte(const uint8_t data, uint8_t module)
{
uint8_t * rxBuffer = getTelemetryRxBuffer(module);