Added halfduplex option for VTX control ports.
This commit is contained in:
parent
4948415560
commit
420ed2d0a3
|
@ -60,6 +60,7 @@
|
|||
#include "io/gps.h"
|
||||
#include "io/ledstrip.h"
|
||||
#include "io/osd.h"
|
||||
#include "io/vtx_control.h"
|
||||
#include "io/vtx_rtc6705.h"
|
||||
|
||||
#include "rx/rx.h"
|
||||
|
@ -715,13 +716,18 @@ const clivalue_t valueTable[] = {
|
|||
#endif
|
||||
{ "pwr_on_arm_grace", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, 30 }, PG_SYSTEM_CONFIG, offsetof(systemConfig_t, powerOnArmingGraceTime) },
|
||||
|
||||
// PG_VTX_CONFIG
|
||||
// PG_VTX_RTC6705_CONFIG
|
||||
#ifdef VTX_RTC6705
|
||||
{ "vtx_band", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 1, 5 }, PG_VTX_RTC6705_CONFIG, offsetof(vtxRTC6705Config_t, band) },
|
||||
{ "vtx_channel", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 1, 8 }, PG_VTX_RTC6705_CONFIG, offsetof(vtxRTC6705Config_t, channel) },
|
||||
{ "vtx_power", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, RTC6705_POWER_COUNT - 1 }, PG_VTX_RTC6705_CONFIG, offsetof(vtxRTC6705Config_t, power) },
|
||||
#endif
|
||||
|
||||
// PG_VTX_CONFIG
|
||||
#if defined(VTX_CONTROL) && defined(VTX_COMMON)
|
||||
{ "vtx_halfduplex", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_VTX_CONFIG, offsetof(vtxConfig_t, halfDuplex) },
|
||||
#endif
|
||||
|
||||
// PG_VCD_CONFIG
|
||||
#ifdef USE_MAX7456
|
||||
{ "vcd_video_system", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, 2 }, PG_VCD_CONFIG, offsetof(vcdProfile_t, video_system) },
|
||||
|
|
|
@ -40,7 +40,12 @@
|
|||
|
||||
#if defined(VTX_CONTROL) && defined(VTX_COMMON)
|
||||
|
||||
PG_REGISTER(vtxConfig_t, vtxConfig, PG_VTX_CONFIG, 1);
|
||||
PG_REGISTER_WITH_RESET_TEMPLATE(vtxConfig_t, vtxConfig, PG_VTX_CONFIG, 1);
|
||||
|
||||
PG_RESET_TEMPLATE(vtxConfig_t, vtxConfig,
|
||||
// .vtxChannelActivationConditions = { 0 },
|
||||
.halfDuplex = true
|
||||
);
|
||||
|
||||
static uint8_t locked = 0;
|
||||
|
||||
|
|
|
@ -30,6 +30,7 @@ typedef struct vtxChannelActivationCondition_s {
|
|||
|
||||
typedef struct vtxConfig_s {
|
||||
vtxChannelActivationCondition_t vtxChannelActivationConditions[MAX_CHANNEL_ACTIVATION_CONDITION_COUNT];
|
||||
uint8_t halfDuplex;
|
||||
} vtxConfig_t;
|
||||
|
||||
PG_DECLARE(vtxConfig_t, vtxConfig);
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
#include "flight/pid.h"
|
||||
|
||||
#include "io/serial.h"
|
||||
#include "io/vtx_control.h"
|
||||
#include "io/vtx_smartaudio.h"
|
||||
#include "io/vtx_string.h"
|
||||
|
||||
|
@ -622,7 +623,14 @@ bool vtxSmartAudioInit()
|
|||
|
||||
serialPortConfig_t *portConfig = findSerialPortConfig(FUNCTION_VTX_SMARTAUDIO);
|
||||
if (portConfig) {
|
||||
smartAudioSerialPort = openSerialPort(portConfig->identifier, FUNCTION_VTX_SMARTAUDIO, NULL, 4800, MODE_RXTX, SERIAL_BIDIR|SERIAL_BIDIR_PP);
|
||||
portOptions_e portOptions = 0;
|
||||
#if defined(VTX_COMMON)
|
||||
portOptions = portOptions | (vtxConfig()->halfDuplex ? SERIAL_BIDIR | SERIAL_BIDIR_PP : SERIAL_UNIDIR);
|
||||
#else
|
||||
portOptions = SERIAL_BIDIR;
|
||||
#endif
|
||||
|
||||
smartAudioSerialPort = openSerialPort(portConfig->identifier, FUNCTION_VTX_SMARTAUDIO, NULL, 4800, MODE_RXTX, portOptions);
|
||||
}
|
||||
|
||||
if (!smartAudioSerialPort) {
|
||||
|
|
|
@ -35,11 +35,10 @@
|
|||
#include "drivers/vtx_common.h"
|
||||
|
||||
#include "io/serial.h"
|
||||
#include "io/vtx_control.h"
|
||||
#include "io/vtx_string.h"
|
||||
#include "io/vtx_tramp.h"
|
||||
|
||||
#define TRAMP_SERIAL_OPTIONS (SERIAL_BIDIR)
|
||||
|
||||
#if defined(CMS) || defined(VTX_COMMON)
|
||||
const uint16_t trampPowerTable[VTX_TRAMP_POWER_COUNT] = {
|
||||
25, 100, 200, 400, 600
|
||||
|
@ -518,7 +517,14 @@ bool vtxTrampInit(void)
|
|||
serialPortConfig_t *portConfig = findSerialPortConfig(FUNCTION_VTX_TRAMP);
|
||||
|
||||
if (portConfig) {
|
||||
trampSerialPort = openSerialPort(portConfig->identifier, FUNCTION_VTX_TRAMP, NULL, 9600, MODE_RXTX, TRAMP_SERIAL_OPTIONS);
|
||||
portOptions_e portOptions = 0;
|
||||
#if defined(VTX_COMMON)
|
||||
portOptions = portOptions | (vtxConfig()->halfDuplex ? SERIAL_BIDIR : SERIAL_UNIDIR);
|
||||
#else
|
||||
portOptions = SERIAL_BIDIR;
|
||||
#endif
|
||||
|
||||
trampSerialPort = openSerialPort(portConfig->identifier, FUNCTION_VTX_TRAMP, NULL, 9600, MODE_RXTX, portOptions);
|
||||
}
|
||||
|
||||
if (!trampSerialPort) {
|
||||
|
|
|
@ -41,6 +41,7 @@
|
|||
#undef USE_UNCOMMON_MIXERS
|
||||
#endif
|
||||
#undef TELEMETRY_JETIEXBUS
|
||||
#undef USE_SERIALRX_JETIEXBUS
|
||||
|
||||
|
||||
#define CONFIG_FASTLOOP_PREFERRED_ACC ACC_DEFAULT
|
||||
|
|
Loading…
Reference in New Issue