mirror of
https://github.com/pascallanger/DIY-Multiprotocol-TX-Module.git
synced 2025-02-04 20:48:12 +00:00
Multiprotocol status
Along with the latest ersky9x version, display the module version and if a specific protocol is available or not.
This commit is contained in:
parent
e30ebd39fd
commit
7ee918ad49
@ -499,7 +499,7 @@ void Update_All()
|
||||
}
|
||||
update_channels_aux();
|
||||
#if defined(TELEMETRY)
|
||||
#if !defined(MULTI_TELEMETRY)
|
||||
#if ( !( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) ) )
|
||||
if((protocol==MODE_FRSKYD) || (protocol==MODE_BAYANG) || (protocol==MODE_HUBSAN) || (protocol==MODE_AFHDS2A) || (protocol==MODE_FRSKYX) || (protocol==MODE_DSM) )
|
||||
#endif
|
||||
TelemetryUpdate();
|
||||
@ -1042,21 +1042,12 @@ void Mprotocol_serial_init()
|
||||
#if defined(TELEMETRY)
|
||||
void PPM_Telemetry_serial_init()
|
||||
{
|
||||
#ifdef MULTI_TELEMETRY
|
||||
Mprotocol_serial_init();
|
||||
#ifndef ORANGE_TX
|
||||
#ifndef STM32_BOARD
|
||||
UCSR0B &= ~(_BV(RXEN0)|_BV(RXCIE0));//rx disable and interrupt
|
||||
#endif
|
||||
#endif
|
||||
#else
|
||||
if( (protocol==MODE_FRSKYD) || (protocol==MODE_HUBSAN) || (protocol==MODE_AFHDS2A) || (protocol==MODE_BAYANG) )
|
||||
initTXSerial( SPEED_9600 ) ;
|
||||
if(protocol==MODE_FRSKYX)
|
||||
initTXSerial( SPEED_57600 ) ;
|
||||
if(protocol==MODE_DSM)
|
||||
initTXSerial( SPEED_125K ) ;
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -17,8 +17,8 @@
|
||||
//**************************
|
||||
#if defined TELEMETRY
|
||||
|
||||
#if defined MULTI_TELEMETRY
|
||||
#define MULTI_TIME 250 //in ms
|
||||
#if ( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) )
|
||||
#define MULTI_TIME 500 //in ms
|
||||
uint32_t lastMulti = 0;
|
||||
#endif
|
||||
|
||||
@ -57,22 +57,19 @@ uint8_t frame[18];
|
||||
} SerialControl ;
|
||||
#endif
|
||||
|
||||
#ifdef MULTI_TELEMETRY
|
||||
#if ( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) )
|
||||
static void multi_send_header(uint8_t type, uint8_t len)
|
||||
{
|
||||
Serial_write('M');
|
||||
#ifdef MULTI_TELEMETRY
|
||||
Serial_write('P');
|
||||
Serial_write(type);
|
||||
#else
|
||||
(void)type;
|
||||
#endif
|
||||
Serial_write(len);
|
||||
}
|
||||
|
||||
static void multi_send_frskyhub()
|
||||
{
|
||||
multi_send_header(MULTI_TELEMETRY_HUB, 9);
|
||||
for (uint8_t i = 0; i < 9; i++)
|
||||
Serial_write(frame[i]);
|
||||
}
|
||||
|
||||
static void multi_send_status()
|
||||
{
|
||||
multi_send_header(MULTI_TELEMETRY_STATUS, 5);
|
||||
@ -138,6 +135,15 @@ static void multi_send_status()
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef MULTI_TELEMETRY
|
||||
static void multi_send_frskyhub()
|
||||
{
|
||||
multi_send_header(MULTI_TELEMETRY_HUB, 9);
|
||||
for (uint8_t i = 0; i < 9; i++)
|
||||
Serial_write(frame[i]);
|
||||
}
|
||||
#endif
|
||||
|
||||
void frskySendStuffed()
|
||||
{
|
||||
Serial_write(START_STOP);
|
||||
@ -538,40 +544,28 @@ void TelemetryUpdate()
|
||||
h = SerialControl.head ;
|
||||
t = SerialControl.tail ;
|
||||
if ( h >= t )
|
||||
{
|
||||
t += 64 - h ;
|
||||
}
|
||||
else
|
||||
{
|
||||
t -= h ;
|
||||
}
|
||||
if ( t < 32 )
|
||||
{
|
||||
return ;
|
||||
}
|
||||
|
||||
#else
|
||||
uint8_t h ;
|
||||
uint8_t t ;
|
||||
h = tx_head ;
|
||||
t = tx_tail ;
|
||||
if ( h >= t )
|
||||
{
|
||||
t += TXBUFFER_SIZE - h ;
|
||||
}
|
||||
else
|
||||
{
|
||||
t -= h ;
|
||||
}
|
||||
if ( t < 16 )
|
||||
{
|
||||
return ;
|
||||
}
|
||||
#endif
|
||||
#if defined MULTI_TELEMETRY
|
||||
#if ( defined(MULTI_TELEMETRY) || defined(MULTI_STATUS) )
|
||||
{
|
||||
uint32_t now = millis();
|
||||
if ((now - lastMulti) > MULTI_TIME) {
|
||||
if ((now - lastMulti) > MULTI_TIME)
|
||||
{
|
||||
multi_send_status();
|
||||
lastMulti = now;
|
||||
return;
|
||||
|
@ -120,8 +120,11 @@
|
||||
//For er9x it depends if you have an inveter mod or not on the telemetry pin. If you don't have an inverter comment this line.
|
||||
#define INVERT_TELEMETRY
|
||||
|
||||
//Uncomment to send also Multi status and wrap other telemetry to allow TX to autodetect the format
|
||||
//Only for newest OpenTX version
|
||||
//Comment if you don't want to send Multi status telemetry frames (Protocol available, Bind in progress, version...)
|
||||
#define MULTI_STATUS
|
||||
|
||||
//Uncomment to send Multi status and wrap other telemetry to allow TX to autodetect the format
|
||||
//Only for newest OpenTX version, not supported by er9x/ersky9x
|
||||
//#define MULTI_TELEMETRY
|
||||
|
||||
//Comment a line to disable a protocol telemetry
|
||||
@ -133,6 +136,7 @@
|
||||
#define BAYANG_HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX
|
||||
#define HUBSAN_HUB_TELEMETRY // Use FrSkyD Hub format to send telemetry to TX
|
||||
|
||||
|
||||
/****************************/
|
||||
/*** SERIAL MODE SETTINGS ***/
|
||||
/****************************/
|
||||
@ -258,6 +262,8 @@ const PPM_Parameters PPM_prot[15]= {
|
||||
MODE_FRSKYX
|
||||
CH_16
|
||||
CH_8
|
||||
EU_16
|
||||
EU_8
|
||||
MODE_ESKY
|
||||
NONE
|
||||
MODE_MT99XX
|
||||
|
Loading…
x
Reference in New Issue
Block a user