Support new Multi 1.3 features (#7077)

This commit is contained in:
3djc
2019-11-15 16:20:24 +01:00
committed by GitHub
parent 86b186fafd
commit 3a7e006635
57 changed files with 1542 additions and 355 deletions
+22 -11
View File
@@ -21,6 +21,9 @@
#ifndef OPENTX_MULTI_H
#define OPENTX_MULTI_H
#define MULTI_BUFFER_SIZE 177
extern uint8_t * Multi_Buffer;
/*
Multiprotocol telemetry definition
@@ -93,23 +96,21 @@ void processMultiTelemetryData(uint8_t data, uint8_t module);
// This should be put into the Module definition if other modules gain this functionality
struct MultiModuleSyncStatus {
uint32_t adjustedRefreshRate; // in ps
uint32_t adjustedRefreshRate = 9000 * 1000; // in ps
tmr10ms_t lastUpdate;
uint16_t refreshRate;
uint16_t inputLag;
uint8_t interval;
uint8_t target;
inline bool isValid() {return (get_tmr10ms() - lastUpdate < 100);}
void getRefreshString(char* refreshText);
uint16_t getAdjustedRefreshRate();
void calcAdjustedRefreshRate(uint16_t newRefreshRate, uint16_t newInputLag);
MultiModuleSyncStatus() {
// Initialise to a valid value
adjustedRefreshRate=9000 * 1000;
inline bool isValid() const
{
return (get_tmr10ms() - lastUpdate < 100);
}
void getRefreshString(char * refreshText);
const uint16_t getAdjustedRefreshRate();
void calcAdjustedRefreshRate(uint16_t newRefreshRate, uint16_t newInputLag);
};
MultiModuleSyncStatus& getMultiSyncStatus(uint8_t module);
@@ -121,14 +122,24 @@ struct MultiModuleStatus {
uint8_t minor;
uint8_t revision;
uint8_t patch;
uint8_t ch_order;
uint8_t flags;
uint8_t requiresFailsafeCheck;
tmr10ms_t lastUpdate;
void getStatusString(char* statusText);
uint8_t protocolPrev = 0;
uint8_t protocolNext = 0;
char protocolName[8] = {0};
uint8_t protocolSubNbr = 0;
char protocolSubName[9] = {0};
uint8_t optionDisp = 0;
void getStatusString(char * statusText) const;
inline bool isValid() const { return (bool)(get_tmr10ms() - lastUpdate < 200); }
inline bool isBufferFull() const { return (bool) (flags & 0x80); }
inline bool supportsDisableMapping() const { return (bool) (flags & 0x40); }
inline bool supportsFailsafe() const { return (bool) (flags & 0x20); }
inline bool isWaitingforBind() const { return (bool) (flags & 0x10); }
inline bool isBinding() const { return (bool) (flags & 0x08); }