Merge branch '2.3' into 3djc/2.3-synced
# Conflicts: # CREDITS.txt # radio/src/targets/sky9x/board.h
This commit is contained in:
+22
@@ -2058,3 +2058,25 @@ Josef de Beer
|
||||
Chad Mofford
|
||||
Pim Pouw
|
||||
Kenth Jonsson
|
||||
Gordon Westfall
|
||||
Jean-Michel Saves
|
||||
Roberto Orsello
|
||||
Luboš Konvalinka
|
||||
Lawrence Dorn
|
||||
Michael Dittmann
|
||||
Bernd Schmiedel
|
||||
Raoul Piccioli
|
||||
Uwe Probst
|
||||
Glendon Satchell
|
||||
Trevor Collins
|
||||
Horst Grashauser
|
||||
Miguel José Cárdenas Herrera
|
||||
Mike Jennings
|
||||
José Bernardo
|
||||
Carlos Dangle
|
||||
Gordon Evans
|
||||
Pablo Peinado Abad
|
||||
Carl Payne
|
||||
Adam Sosnowski
|
||||
Гасак Сергей
|
||||
SaltCtyRacingFPV
|
||||
|
||||
@@ -191,7 +191,20 @@ SwitchInfo Boards::getSwitchInfo(Board::Type board, int index)
|
||||
if (index < DIM(switches))
|
||||
return switches[index];
|
||||
}
|
||||
else if (IS_TARANIS_X7(board)) {
|
||||
else if (board == BOARD_TARANIS_X7_ACCESS) {
|
||||
const Board::SwitchInfo switches[] = {
|
||||
{SWITCH_3POS, "SA"},
|
||||
{SWITCH_3POS, "SB"},
|
||||
{SWITCH_3POS, "SC"},
|
||||
{SWITCH_3POS, "SD"},
|
||||
{SWITCH_2POS, "SF"},
|
||||
{SWITCH_TOGGLE, "SH"},
|
||||
{SWITCH_2POS, "SI"}
|
||||
};
|
||||
if (index < DIM(switches))
|
||||
return switches[index];
|
||||
}
|
||||
else if (board == BOARD_TARANIS_X7) {
|
||||
const Board::SwitchInfo switches[] = {
|
||||
{SWITCH_3POS, "SA"},
|
||||
{SWITCH_3POS, "SB"},
|
||||
@@ -350,7 +363,9 @@ int Boards::getCapability(Board::Type board, Board::Capability capability)
|
||||
return 5;
|
||||
else if (board == Board::BOARD_TARANIS_X9LITES)
|
||||
return 7;
|
||||
else if (IS_TARANIS_X7(board))
|
||||
else if (board == BOARD_TARANIS_X7_ACCESS)
|
||||
return 7;
|
||||
else if (board == BOARD_TARANIS_X7)
|
||||
return 8;
|
||||
else if (IS_FAMILY_T12(board))
|
||||
return 8;
|
||||
|
||||
@@ -141,8 +141,9 @@ enum MultiModuleRFProtocols {
|
||||
MODULE_SUBTYPE_MULTI_REALACC,
|
||||
MODULE_SUBTYPE_MULTI_OMP,
|
||||
MODULE_SUBTYPE_MULTI_MLINK,
|
||||
MODULE_SUBTYPE_MULTI_WFLYRF,
|
||||
MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_WFLYRF
|
||||
MODULE_SUBTYPE_MULTI_WFLY2,
|
||||
MODULE_SUBTYPE_MULTI_E016HV2,
|
||||
MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_E016HV2
|
||||
};
|
||||
|
||||
enum TrainerProtocol {
|
||||
|
||||
@@ -90,10 +90,10 @@ static const QStringList STR_SUBTYPE_FRSKYL {"LR12", "LR12 6-Channel"};
|
||||
static const QStringList STR_SUBTYPE_ESKY150V2 {"150 V2"};
|
||||
static const QStringList STR_SUBTYPE_JJRC345 {"Standard", "SkyTumbler"};
|
||||
static const QStringList STR_SUBTYPE_KYOSHO {"FHSS", "Hype"};
|
||||
static const QStringList STR_SUBTYPE_RLINK {"Surface", "Air"};
|
||||
static const QStringList STR_SUBTYPE_RLINK {"Surface", "Air", "DumboRC"};
|
||||
static const QStringList STR_SUBTYPE_ELRS {"Not Available WIP"};
|
||||
static const QStringList STR_SUBTYPE_REALACC {"R11"};
|
||||
static const QStringList STR_SUBTYPE_WFLYRF {"RF20x"};
|
||||
static const QStringList STR_SUBTYPE_WFLY2 {"RF20x"};
|
||||
|
||||
static const QStringList NO_SUBTYPE {STR_MULTI_DEFAULT};
|
||||
|
||||
@@ -159,11 +159,12 @@ const Multiprotocols multiProtocols {
|
||||
{MODULE_SUBTYPE_MULTI_JJRC345, 1, false, STR_SUBTYPE_JJRC345, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_Q90C, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_KYOSHO, 1, false, STR_SUBTYPE_KYOSHO, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_RLINK, 1, false, STR_SUBTYPE_RLINK, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_RLINK, 2, false, STR_SUBTYPE_RLINK, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_ELRS, 0, false, STR_SUBTYPE_ELRS, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_REALACC, 0, false, STR_SUBTYPE_REALACC, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_OMP, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_WFLYRF, 0, false, STR_SUBTYPE_WFLYRF, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_WFLY2, 0, false, STR_SUBTYPE_WFLY2, STR_MULTI_OPTION},
|
||||
{MODULE_SUBTYPE_MULTI_E016HV2, 0, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MM_RF_CUSTOM_SELECTED, 7, true, STR_SUBTYPE_CUSTOM, STR_MULTI_OPTION},
|
||||
|
||||
// Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff)
|
||||
@@ -208,7 +209,8 @@ QString Multiprotocols::protocolToString(int protocol, bool custom)
|
||||
"Hitec", "Wfly", "Bugs", "Bugs Mini", "Traxxas", "NCC-1701-A", "E01X", "WL Heli V911S", "GD00X", "Volantex V761",
|
||||
"KFPlan KF606", "Redpine", "Potensic", "ZSX", "Height", "Scanner", "FrSky RX", "FlySky AFHDS2A RX", "HoTT", "Fx816",
|
||||
"Bayang RX", "Pelikan", "Tiger", "XK", "XN297 Dump", "FrSky X 2.1", "FrSky R9", "Propel", "FrSky L", "Skyartec",
|
||||
"ESky 150v2", "DSM RX", "JJRC345", "Q90C", "Kyosho", "RadioLink", "ExpressLRS", "Realacc", "OMP", "M-Link", "Wfly RF"
|
||||
"ESky 150v2", "DSM RX", "JJRC345", "Q90C", "Kyosho", "RadioLink", "ExpressLRS", "Realacc", "OMP", "M-Link", "Wfly 2",
|
||||
"E016H v2"
|
||||
});
|
||||
|
||||
return strings.value(protocol, CPN_STR_UNKNOWN_ITEM);
|
||||
|
||||
@@ -48,6 +48,9 @@ inline int MAX_SWITCHES(Board::Type board, int version)
|
||||
if (IS_FAMILY_T12(board))
|
||||
return 8;
|
||||
|
||||
if (IS_TARANIS_X7(board))
|
||||
return 8;
|
||||
|
||||
return Boards::getCapability(board, Board::Switches);
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -30,6 +30,11 @@ local function run(event)
|
||||
return 2
|
||||
end
|
||||
|
||||
if crossfireTelemetryPush() == nil then
|
||||
error("Crossfire not available!")
|
||||
return 2
|
||||
end
|
||||
|
||||
chdir("/SCRIPTS/TOOLS/CROSSFIRE")
|
||||
return "crossfire.lua"
|
||||
end
|
||||
|
||||
@@ -30,6 +30,11 @@ local function run(event)
|
||||
return 2
|
||||
end
|
||||
|
||||
if crossfireTelemetryPush() == nil then
|
||||
error("Crossfire not available!")
|
||||
return 2
|
||||
end
|
||||
|
||||
chdir("/SCRIPTS/TOOLS/CROSSFIRE")
|
||||
return "crossfire.lua"
|
||||
end
|
||||
|
||||
@@ -30,6 +30,11 @@ local function run(event)
|
||||
return 2
|
||||
end
|
||||
|
||||
if crossfireTelemetryPush() == nil then
|
||||
error("Crossfire not available!")
|
||||
return 2
|
||||
end
|
||||
|
||||
chdir("/SCRIPTS/TOOLS/CROSSFIRE")
|
||||
return "crossfire.lua"
|
||||
end
|
||||
|
||||
@@ -61,6 +61,11 @@ void drawTopBar()
|
||||
lcdDrawBitmapPattern(LCD_W-98, 8, LBM_TOPMENU_USB, MENU_TITLE_COLOR);
|
||||
}
|
||||
|
||||
// Logs
|
||||
if (isFunctionActive(FUNCTION_LOGS) && !usbPlugged() && BLINK_ON_PHASE) {
|
||||
lcdDrawBitmapPattern(LCD_W-98, 6, LBM_DOT, MENU_TITLE_COLOR);
|
||||
}
|
||||
|
||||
// RSSI
|
||||
const uint8_t rssiBarsValue[] = {30, 40, 50, 60, 80};
|
||||
const uint8_t rssiBarsHeight[] = {5, 10, 15, 21, 31};
|
||||
|
||||
@@ -554,7 +554,7 @@ bool isPxx2IsrmChannelsCountAllowed(int channels)
|
||||
bool isTrainerUsingModuleBay()
|
||||
{
|
||||
#if defined(PCBTARANIS)
|
||||
if (TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE <= g_model.trainerData.mode && g_model.trainerData.mode <= TRAINER_MODE_MASTER_BATTERY_COMPARTMENT)
|
||||
if (TRAINER_MODE_MASTER_SBUS_EXTERNAL_MODULE <= g_model.trainerData.mode && g_model.trainerData.mode <= TRAINER_MODE_MASTER_CPPM_EXTERNAL_MODULE)
|
||||
return true;
|
||||
#endif
|
||||
return false;
|
||||
@@ -979,10 +979,10 @@ const char STR_SUBTYPE_FRSKYL[] = "\010""LR12\0 ""LR12 6ch";
|
||||
const char STR_SUBTYPE_ESKY150V2[] = "\006""150 V2";
|
||||
const char STR_SUBTYPE_JJRC345[] = "\007""Std\0 ""SkyTmbr";
|
||||
const char STR_SUBTYPE_KYOSHO[] = "\004""FHSS""Hype";
|
||||
const char STR_SUBTYPE_RLINK[] = "\007""Surface""Air\0 ";
|
||||
const char STR_SUBTYPE_RLINK[] = "\007""Surface""Air\0 ""DumboRC";
|
||||
const char STR_SUBTYPE_ELRS[] = "\007""N/A WIP";
|
||||
const char STR_SUBTYPE_REALACC[] = "\003""R11";
|
||||
const char STR_SUBTYPE_WFLYRF[] = "\005""RF20x";
|
||||
const char STR_SUBTYPE_WFLY2[] = "\005""RF20x";
|
||||
|
||||
const char* mm_options_strings::options[] = {
|
||||
nullptr,
|
||||
@@ -1045,7 +1045,7 @@ const mm_protocol_definition multi_protocols[] = {
|
||||
{MODULE_SUBTYPE_MULTI_FRSKYX_RX, 1, false, false, STR_SUBTYPE_FRSKYX_RX, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_HOTT, 1, true, false, STR_SUBTYPE_HOTT, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_FX816, 0, false, false, STR_SUBTYPE_FX816, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_PELIKAN, 1, false, false, STR_SUBTYPE_PELIKAN, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_PELIKAN, 1, false, true, STR_SUBTYPE_PELIKAN, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_XK, 1, false, false, STR_SUBTYPE_XK, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_XN297DUMP, 4, false, false, STR_SUBTYPE_XN297DUMP, STR_MULTI_RFCHAN},
|
||||
{MODULE_SUBTYPE_MULTI_FRSKYX2, 5, true, false, STR_SUBTYPE_FRSKYX2, STR_MULTI_RFTUNE},
|
||||
@@ -1057,11 +1057,12 @@ const mm_protocol_definition multi_protocols[] = {
|
||||
{MODULE_SUBTYPE_MULTI_JJRC345, 1, false, false, STR_SUBTYPE_JJRC345, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_Q90C, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_KYOSHO, 1, false, true, STR_SUBTYPE_KYOSHO, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_RLINK, 1, false, false, STR_SUBTYPE_RLINK, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_RLINK, 2, false, false, STR_SUBTYPE_RLINK, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_ELRS, 0, false, false, STR_SUBTYPE_ELRS, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_REALACC, 0, false, false, STR_SUBTYPE_REALACC, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_OMP, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MODULE_SUBTYPE_MULTI_WFLYRF, 0, false, false, STR_SUBTYPE_WFLYRF, nullptr},
|
||||
{MODULE_SUBTYPE_MULTI_WFLY2, 0, false, false, STR_SUBTYPE_WFLY2, STR_MULTI_OPTION},
|
||||
{MODULE_SUBTYPE_MULTI_E016HV2, 0, false, false, NO_SUBTYPE, STR_MULTI_RFTUNE},
|
||||
{MM_RF_CUSTOM_SELECTED, 7, true, true, NO_SUBTYPE, STR_MULTI_OPTION},
|
||||
|
||||
// Sentinel and default for protocols not listed above (MM_RF_CUSTOM is 0xff)
|
||||
|
||||
@@ -178,8 +178,9 @@ enum ModuleSubtypeMulti {
|
||||
MODULE_SUBTYPE_MULTI_REALACC,
|
||||
MODULE_SUBTYPE_MULTI_OMP,
|
||||
MODULE_SUBTYPE_MULTI_MLINK, //75
|
||||
MODULE_SUBTYPE_MULTI_WFLYRF,
|
||||
MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_WFLYRF
|
||||
MODULE_SUBTYPE_MULTI_WFLY2,
|
||||
MODULE_SUBTYPE_MULTI_E016HV2,
|
||||
MODULE_SUBTYPE_MULTI_LAST = MODULE_SUBTYPE_MULTI_E016HV2
|
||||
};
|
||||
#define MODULE_SUBTYPE_MULTI_XN297DP 63-3
|
||||
|
||||
|
||||
@@ -217,12 +217,8 @@ set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
keys_driver.cpp
|
||||
diskio.cpp
|
||||
)
|
||||
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
telemetry_driver.cpp
|
||||
)
|
||||
)
|
||||
|
||||
set(FIRMWARE_SRC
|
||||
${FIRMWARE_SRC}
|
||||
|
||||
@@ -128,7 +128,7 @@ void auxSerialInit(unsigned int mode, unsigned int protocol)
|
||||
break;
|
||||
|
||||
case UART_MODE_SBUS_TRAINER:
|
||||
auxSerialSetup(SBUS_BAUDRATE, false, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b
|
||||
auxSerialSetup(SBUS_BAUDRATE, true, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b
|
||||
AUX_SERIAL_POWER_ON();
|
||||
break;
|
||||
|
||||
@@ -213,10 +213,6 @@ extern "C" void AUX_SERIAL_USART_IRQHandler(void)
|
||||
#if defined(LUA) & !defined(CLI)
|
||||
if (luaRxFifo && auxSerialMode == UART_MODE_LUA)
|
||||
luaRxFifo->push(data);
|
||||
#endif
|
||||
#if !defined(BOOT)
|
||||
if (auxSerialMode == UART_MODE_SBUS_TRAINER)
|
||||
trainerSbusFifo.push(data);
|
||||
#endif
|
||||
}
|
||||
status = AUX_SERIAL_USART->SR;
|
||||
@@ -328,7 +324,7 @@ void aux2SerialInit(unsigned int mode, unsigned int protocol)
|
||||
break;
|
||||
|
||||
case UART_MODE_SBUS_TRAINER:
|
||||
aux2SerialSetup(SBUS_BAUDRATE, false, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b
|
||||
aux2SerialSetup(SBUS_BAUDRATE, true, USART_WordLength_9b, USART_Parity_Even, USART_StopBits_2); // 2 stop bits requires USART_WordLength_9b
|
||||
AUX2_SERIAL_POWER_ON();
|
||||
break;
|
||||
|
||||
@@ -415,11 +411,6 @@ extern "C" void AUX2_SERIAL_USART_IRQHandler(void)
|
||||
if (luaRxFifo && aux2SerialMode == UART_MODE_LUA) {
|
||||
luaRxFifo->push(data);
|
||||
}
|
||||
#endif
|
||||
#if !defined(BOOT)
|
||||
if (aux2SerialMode == UART_MODE_SBUS_TRAINER) {
|
||||
trainerSbusFifo.push(data);
|
||||
}
|
||||
#endif
|
||||
}
|
||||
status = AUX2_SERIAL_USART->SR;
|
||||
|
||||
@@ -54,29 +54,32 @@
|
||||
* @{
|
||||
*/
|
||||
|
||||
#define USBD_VID 0x0483
|
||||
#define USBD_VID_STM 0x0483 // STM Vendor ID
|
||||
#define USBD_VID_PID_CODES 0x1209 // https://pid.codes
|
||||
|
||||
#define USBD_LANGID_STRING 0x409
|
||||
#define USBD_MANUFACTURER_STRING "FrSky"
|
||||
#define USBD_MANUFACTURER_STRING "OpenTX"
|
||||
#define USBD_SERIALNUMBER_FS_STRING "00000000001B"
|
||||
|
||||
|
||||
#if defined(BOOT)
|
||||
#define USBD_MSC_PRODUCT_FS_STRING USB_NAME " Bootloader"
|
||||
#else
|
||||
#define USBD_MSC_PRODUCT_FS_STRING USB_NAME " Mass Storage"
|
||||
#endif
|
||||
|
||||
#define USBD_MSC_VID USBD_VID_STM
|
||||
#define USBD_MSC_PID 0x5720
|
||||
#define USBD_MSC_CONFIGURATION_FS_STRING "MSC Config"
|
||||
#define USBD_MSC_INTERFACE_FS_STRING "MSC Interface"
|
||||
|
||||
#define USBD_HID_PID 0x5710
|
||||
#define USBD_HID_VID USBD_VID_PID_CODES
|
||||
#define USBD_HID_PID 0x4F54 // OpenTX assigned PID
|
||||
#define USBD_HID_PRODUCT_FS_STRING USB_NAME " Joystick"
|
||||
#define USBD_HID_CONFIGURATION_FS_STRING "HID Config"
|
||||
#define USBD_HID_INTERFACE_FS_STRING "HID Interface"
|
||||
|
||||
#define USBD_CDC_PID 0x5740 // do not change, this ID is used by the ST USB driver for Windows
|
||||
#define USBD_CDC_VID USBD_VID_STM
|
||||
#define USBD_CDC_PID 0x5740 // do not change, this ID is used by the ST USB driver for Windows
|
||||
#define USBD_CDC_PRODUCT_FS_STRING USB_NAME " Serial Port"
|
||||
#define USBD_CDC_CONFIGURATION_FS_STRING "VSP Config"
|
||||
#define USBD_CDC_INTERFACE_FS_STRING "VSP Interface"
|
||||
@@ -126,20 +129,29 @@ __ALIGN_BEGIN uint8_t USBD_StrDesc[USB_MAX_STR_DESC_SIZ] __ALIGN_END ; // modifi
|
||||
* @param length : pointer to data length variable
|
||||
* @retval pointer to descriptor buffer
|
||||
*/
|
||||
uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length)
|
||||
uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length)
|
||||
{
|
||||
int pid=0;
|
||||
int vid, pid;
|
||||
|
||||
switch (getSelectedUsbMode()) {
|
||||
case USB_JOYSTICK_MODE:
|
||||
vid = USBD_HID_VID;
|
||||
pid = USBD_HID_PID;
|
||||
break;
|
||||
|
||||
case USB_SERIAL_MODE:
|
||||
vid = USBD_CDC_VID;
|
||||
pid = USBD_CDC_PID;
|
||||
break;
|
||||
|
||||
case USB_MASS_STORAGE_MODE:
|
||||
vid = USBD_MSC_VID;
|
||||
pid = USBD_MSC_PID;
|
||||
break;
|
||||
|
||||
default:
|
||||
vid = 0;
|
||||
pid = 0;
|
||||
}
|
||||
|
||||
/* USB Standard Device Descriptor */
|
||||
@@ -153,10 +165,10 @@ uint8_t * USBD_USR_DeviceDescriptor( uint8_t speed , uint16_t *length)
|
||||
0x00, /*bDeviceSubClass*/
|
||||
0x00, /*bDeviceProtocol*/
|
||||
USB_OTG_MAX_EP0_SIZE, /*bMaxPacketSize*/
|
||||
LOBYTE(USBD_VID), /*idVendor*/
|
||||
HIBYTE(USBD_VID), /*idVendor*/
|
||||
LOBYTE(pid), /*idVendor*/
|
||||
HIBYTE(pid), /*idVendor*/
|
||||
LOBYTE(vid), /*idVendor*/
|
||||
HIBYTE(vid), /*idVendor*/
|
||||
LOBYTE(pid), /*idVendor*/
|
||||
HIBYTE(pid), /*idVendor*/
|
||||
0x00, /*bcdDevice rel. 2.00*/
|
||||
0x02,
|
||||
USBD_IDX_MFC_STR, /*Index of manufacturer string*/
|
||||
|
||||
@@ -710,6 +710,7 @@ void bluetoothDisable();
|
||||
extern DMAFifo<512> telemetryFifo;
|
||||
typedef DMAFifo<32> AuxSerialRxFifo;
|
||||
extern AuxSerialRxFifo auxSerialRxFifo;
|
||||
extern AuxSerialRxFifo aux2SerialRxFifo;
|
||||
extern volatile uint32_t externalModulePort;
|
||||
#endif
|
||||
|
||||
|
||||
@@ -160,9 +160,16 @@ extern "C" void TRAINER_TIMER_IRQHandler()
|
||||
int sbusGetByte(uint8_t * byte)
|
||||
{
|
||||
switch (currentTrainerMode) {
|
||||
#if defined(AUX_SERIAL)
|
||||
#if defined(AUX_SERIAL) || defined(AUX2_SERIAL)
|
||||
case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT:
|
||||
return trainerSbusFifo.pop(*byte);
|
||||
#if defined(AUX_SERIAL)
|
||||
if (auxSerialMode == UART_MODE_SBUS_TRAINER)
|
||||
return auxSerialRxFifo.pop(*byte);
|
||||
#endif
|
||||
#if defined(AUX2_SERIAL)
|
||||
if (aux2SerialMode == UART_MODE_SBUS_TRAINER)
|
||||
return aux2SerialRxFifo.pop(*byte);
|
||||
#endif
|
||||
#endif
|
||||
default:
|
||||
return false;
|
||||
|
||||
@@ -42,6 +42,8 @@ char * main_thread_error = nullptr;
|
||||
bool simu_shutdown = false;
|
||||
bool simu_running = false;
|
||||
|
||||
uint32_t telemetryErrors = 0;
|
||||
|
||||
#if defined(STM32)
|
||||
GPIO_TypeDef gpioa, gpiob, gpioc, gpiod, gpioe, gpiof, gpiog, gpioh, gpioi, gpioj;
|
||||
TIM_TypeDef tim1, tim2, tim3, tim4, tim5, tim6, tim7, tim8, tim9, tim10;
|
||||
@@ -441,6 +443,47 @@ void sportUpdatePowerInit()
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortSetDirectionInput()
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortSetDirectionOutput()
|
||||
{
|
||||
}
|
||||
|
||||
void rxPdcUsart( void (*pChProcess)(uint8_t x) )
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortInit(uint32_t baudrate, uint8_t mode)
|
||||
{
|
||||
}
|
||||
|
||||
bool telemetryGetByte(uint8_t * byte)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
void telemetryClearFifo()
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortInvertedInit(uint32_t baudrate)
|
||||
{
|
||||
}
|
||||
|
||||
void sportSendByte(uint8_t byte)
|
||||
{
|
||||
}
|
||||
|
||||
void sportSendBuffer(const uint8_t * buffer, uint32_t count)
|
||||
{
|
||||
}
|
||||
|
||||
void check_telemetry_exti()
|
||||
{
|
||||
}
|
||||
|
||||
void boardInit()
|
||||
{
|
||||
}
|
||||
|
||||
@@ -122,9 +122,13 @@ set(FIRMWARE_TARGET_SRC
|
||||
MEDSdcard.c
|
||||
)
|
||||
|
||||
set(FIRMWARE_TARGET_SRC
|
||||
${FIRMWARE_TARGET_SRC}
|
||||
telemetry_driver.cpp
|
||||
)
|
||||
|
||||
set(TARGET_SRC
|
||||
${TARGET_SRC}
|
||||
telemetry_driver.cpp
|
||||
adc_driver.cpp
|
||||
pulses_driver.cpp
|
||||
audio_driver.cpp
|
||||
|
||||
@@ -395,13 +395,8 @@ void debugPutc(const char c);
|
||||
|
||||
// Telemetry driver
|
||||
void telemetryPortInit(uint32_t baudrate, uint8_t mode);
|
||||
inline void telemetryPortSetDirectionOutput()
|
||||
{
|
||||
}
|
||||
inline void telemetryPortSetDirectionInput()
|
||||
{
|
||||
}
|
||||
uint32_t telemetryTransmitPending();
|
||||
void telemetryPortSetDirectionOutput();
|
||||
void telemetryPortSetDirectionInput();
|
||||
void telemetryTransmitBuffer(const uint8_t * buffer, uint32_t size);
|
||||
void rxPdcUsart( void (*pChProcess)(uint8_t x) );
|
||||
void sportSendBuffer(const uint8_t * buffer, uint32_t size);
|
||||
|
||||
@@ -93,10 +93,8 @@ void startPdcUsartReceive()
|
||||
{
|
||||
Usart *pUsart = SECOND_USART;
|
||||
TelemetryInBuffer.outPtr = TelemetryInBuffer.fifo ;
|
||||
#ifndef SIMU
|
||||
pUsart->US_RPR = (uint32_t)TelemetryInBuffer.fifo ;
|
||||
pUsart->US_RNPR = (uint32_t)TelemetryInBuffer.fifo ;
|
||||
#endif
|
||||
pUsart->US_RCR = RX_UART_BUFFER_SIZE ;
|
||||
pUsart->US_RNCR = RX_UART_BUFFER_SIZE ;
|
||||
pUsart->US_PTCR = US_PTCR_RXTEN ;
|
||||
@@ -104,7 +102,6 @@ void startPdcUsartReceive()
|
||||
|
||||
void rxPdcUsart( void (*pChProcess)(uint8_t x) )
|
||||
{
|
||||
#if !defined(SIMU)
|
||||
Usart *pUsart = SECOND_USART;
|
||||
uint8_t *ptr ;
|
||||
uint8_t *endPtr ;
|
||||
@@ -132,7 +129,6 @@ void rxPdcUsart( void (*pChProcess)(uint8_t x) )
|
||||
pUsart->US_RNPR = (uint32_t)TelemetryInBuffer.fifo ;
|
||||
pUsart->US_RNCR = RX_UART_BUFFER_SIZE ;
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
uint32_t txPdcUsart(const uint8_t * buffer, uint32_t size)
|
||||
@@ -140,9 +136,7 @@ uint32_t txPdcUsart(const uint8_t * buffer, uint32_t size)
|
||||
Usart * pUsart = SECOND_USART;
|
||||
|
||||
if (pUsart->US_TNCR == 0) {
|
||||
#ifndef SIMU
|
||||
pUsart->US_TNPR = (uint32_t)buffer ;
|
||||
#endif
|
||||
pUsart->US_TNCR = size ;
|
||||
pUsart->US_PTCR = US_PTCR_TXTEN ;
|
||||
return 1 ;
|
||||
@@ -150,6 +144,7 @@ uint32_t txPdcUsart(const uint8_t * buffer, uint32_t size)
|
||||
return 0 ;
|
||||
}
|
||||
|
||||
/*
|
||||
uint32_t telemetryTransmitPending()
|
||||
{
|
||||
Usart *pUsart = SECOND_USART;
|
||||
@@ -164,13 +159,20 @@ uint32_t telemetryTransmitPending()
|
||||
|
||||
return x ;
|
||||
}
|
||||
*/
|
||||
|
||||
void telemetryPortSetDirectionOutput()
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortSetDirectionInput()
|
||||
{
|
||||
}
|
||||
|
||||
void telemetryPortInit(uint32_t baudrate, uint8_t mode)
|
||||
{
|
||||
#if !defined(SIMU)
|
||||
UART2_Configure(baudrate, Master_frequency, mode);
|
||||
startPdcUsartReceive();
|
||||
#endif
|
||||
}
|
||||
|
||||
void sportSendBuffer(const uint8_t * buffer, uint32_t size)
|
||||
|
||||
@@ -326,7 +326,7 @@ void telemetryInit(uint8_t protocol)
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(AFHDS3) && !defined(SIMU)
|
||||
#if defined(AFHDS3)
|
||||
else if (protocol == PROTOCOL_TELEMETRY_AFHDS3) {
|
||||
telemetryPortInvertedInit(AFHDS3_BAUDRATE);
|
||||
telemetryPortSetDirectionInput();
|
||||
|
||||
+11
-8
@@ -26,8 +26,8 @@ uint8_t currentTrainerMode = 0xff;
|
||||
|
||||
void checkTrainerSignalWarning()
|
||||
{
|
||||
enum PpmInValidState_t {
|
||||
PPM_IN_IS_NOT_USED=0,
|
||||
enum {
|
||||
PPM_IN_IS_NOT_USED = 0,
|
||||
PPM_IN_IS_VALID,
|
||||
PPM_IN_INVALID
|
||||
};
|
||||
@@ -137,17 +137,20 @@ void checkTrainerSettings()
|
||||
#if defined(TRAINER_BATTERY_COMPARTMENT)
|
||||
case TRAINER_MODE_MASTER_BATTERY_COMPARTMENT:
|
||||
#if defined(AUX_SERIAL)
|
||||
if (g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER)
|
||||
if (g_eeGeneral.auxSerialMode == UART_MODE_SBUS_TRAINER) {
|
||||
auxSerialSbusInit();
|
||||
else
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(AUX2_SERIAL)
|
||||
if (g_eeGeneral.aux2SerialMode == UART_MODE_SBUS_TRAINER)
|
||||
if (g_eeGeneral.aux2SerialMode == UART_MODE_SBUS_TRAINER) {
|
||||
aux2SerialSbusInit();
|
||||
else
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
init_trainer_capture();
|
||||
break;
|
||||
|
||||
// no break
|
||||
#endif
|
||||
|
||||
case TRAINER_MODE_MASTER_TRAINER_JACK:
|
||||
|
||||
@@ -1142,6 +1142,10 @@
|
||||
#define TR_ABOUT_HARDWARE_2 "Proucent/projektant Hardware"
|
||||
#define TR_ABOUT_HARDWARE_3 "Współautor firmware"
|
||||
#else
|
||||
#define TR_ABOUT_HARDWARE_1 "Brent Nelson"
|
||||
#define TR_ABOUT_HARDWARE_2 "Sky9x designer/výrobce"
|
||||
#define TR_ABOUT_HARDWARE_3 ""
|
||||
#endif
|
||||
|
||||
#define TR_ABOUT_PARENTS_1 "Projekty macierzyste"
|
||||
#define TR_ABOUT_PARENTS_2 TR("Ersky9x (Mike Blandford)", "Ersky9x (Mike Blandford)")
|
||||
|
||||
@@ -128,7 +128,7 @@
|
||||
#define TR_DSM_PROTOCOLS "LP45""DSM2""DSMX"
|
||||
|
||||
#define LEN_MULTI_PROTOCOLS "\007"
|
||||
#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""Futaba\0""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""Height\0""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyartc""ESky-v2""DSM RX\0""JJRC345""Q90C\0 ""Kyosho\0""RadLink""ExpLRS\0""Realacc""OMP\0 ""M-Link\0""Wfly-RF"
|
||||
#define TR_MULTI_PROTOCOLS "FlySky\0""Hubsan\0""FrSky\0 ""Hisky\0 ""V2x2\0 ""DSM\0 ""Devo\0 ""YD717\0 ""KN\0 ""SymaX\0 ""SLT\0 ""CX10\0 ""CG023\0 ""Bayang\0""ESky\0 ""MT99XX\0""MJXq\0 ""Shenqi\0""FY326\0 ""Futaba\0""J6 Pro\0""FQ777\0 ""Assan\0 ""Hontai\0""OpenLrs""FlSky2A""Q2x2\0 ""Walkera""Q303\0 ""GW008\0 ""DM002\0 ""Cabell\0""Esky150""H8 3D\0 ""Corona\0""CFlie\0 ""Hitec\0 ""WFly\0 ""Bugs\0 ""BugMini""Traxxas""NCC1701""E01X\0 ""V911S\0 ""GD00X\0 ""V761\0 ""KF606\0 ""Redpine""Potensi""ZSX\0 ""Height\0""Scanner""FrSkyRX""FS2A_RX""HoTT\0 ""FX816\0 ""BayanRX""Pelikan""Tiger\0 ""XK\0 ""XN297DU""FrSkyX2""FrSkyR9""Propel\0""FrSkyL\0""Skyartc""ESky-v2""DSM RX\0""JJRC345""Q90C\0 ""Kyosho\0""RadLink""ExpLRS\0""Realacc""OMP\0 ""M-Link\0""Wfly 2\0""E016Hv2"
|
||||
|
||||
#define LEN_MULTI_POWER "\005"
|
||||
#define TR_MULTI_POWER "10mW\0""25mW\0""50mW\0""100mW""200mW""300mW""500mW""1W\0 ""2W\0 "
|
||||
|
||||
Reference in New Issue
Block a user