Commit Graph
16 Commits
Author SHA1 Message Date
Raphael CoefficandGitHub 6d3aa573d4 fix(yaml): Do not limit to static MPM protocol definitions (#4146) 2023-10-18 19:24:21 +10:00
MichaelandGitHub ec5ab0b87c fix: Reset proto scan software timer to MULTI_PROTOLIST_START_TIMEOUT (#3763)
reset proto scan software timer to MULTI_PROTOLIST_START_TIMEOUT if timer already exists (from previous scan)
2023-07-10 20:29:34 +10:00
MichaelandGitHub 8893db2726 fix: MPM protocol options missing for some protocols (#3504)
* fixes #2713

changes:
- use getMultiOptionTitle() instead of rfproto->getOptionStr() as getMultiOptionTitle() takes updated MPM status in account

* code cleanup: removed obsolete functions

* fix #3046

* fixed my complete misunderstanding of how the chosen protocol is updated in Multi DSM auto mode

* removed obsolete check

* update subType list only on rf protocol change

added some comments

* reconsidered implementation utilizing  LV_EVENT_REFRESH to avoid sporadic loss of update

* editorial change

* fix problem where a successful MPM DSM2 auto bind would reset the receiver ID

* reset DSM2autoUpdated just in case
2023-05-23 10:05:12 +10:00
MichaelandGitHub 04359757c4 fix: Update built-in Multi-protocol module protocol lists, single source for firmware and cpn (#3435)
* - Concentrated Multi protocol definitions into a consistent single source. Actually two .h files, one for the protocol list and names, the other for subtypes and capababilites, see comments in .h files as to why

- updated available protocols reflecting 1.3.3.20 (15+ protocols)
- fixed Companion always showing f/s and channel map options in model setup disregarding the protocol capability

* Following @pfeerick's review: changed heaeders and typos

fixed Ubuntu runtime error on assert
fixed change of Multi protocol not triggering writing yaml file

* corrected copy/paste error

* fixed FrSky index juggling

* Updated Multiprotocol database to current MPM project status (ref. MPM Multiprotos.ino)

- changed protocol name FX816 to FX
- added Flysky AFHDS2A options PPM and PPWM SBUS 16ch subtypes "PWM,SB16" and  "PPM,SB16
- added V761 option to select TOPRC
- added FX options "816" and "620"
- added FRSKYR9 option "-- 8ch"

* MPM protocol scan excludes some protocols which are not meant to be selected. For Companion and Simualtor (and for radios if there is no MPM connected) this was handled in different places with outdated information. Harmonized and centralized the handling of non-selectabale protocols into the single source for all companion, Simulator and all gui types.

* More cleanup:

- changed some MPM protocol names to the ones the MPM delivers with MPM protocol scan to harmonize names between CPN/Simulator/radio
- added XN2927DUMP and MOULDKG to the list of excluded MPM protocols just like the MPM does with MPM protocol scan
- added new option value limits and moved definitions to single source
- adapted CPN and radio to use common definitions of option values for all GUI types
- moved distributed MPM (as far as possible) to one coherent place under a single #if defined (MULTIMODULE)
- fixed option value not reset at change of protocol
- some editorial stuff

Note: There is still some work to be done on CPN GUI option values. DSM2 servo rates are hard coded, BAYANG telemetry options are only shown by index and not by text as in radio code, AFHDS2A servo update rate is shown as index too which is to no use for users.

I'll try to fix all this in the next session, but request to get rid of BAYANG telemetry options translations. It is much easier to define a common string list by using untranslated.h

* rebase due to fr.h

* resolve merge conflict with main fr.h

* more cleanup:

- deleted multiple definition of MM_RF_CUSTOM_SELECTED in favor of single source define
- bw radios: change to only allow defined protocols rather than a fixed 127 protocols

* Changes:

- magic sentinel number 0xfe as define
- add 10 NN protocol entries for future use of new MPM protocols not yet defined in ETX (still recommend timely ETX maintenance update if MPM releases new firmware)

* Changes by @elecpower:

- align field labels to radio
- change servo update frequency from combo box to spin box with edit only via up/down arrows to stop invalid values being entered via keyboard. Remove frequency list used to populate combo box as only used by Companion.
- add validation to module yaml decode checking for unsupported multi protocols and/or multi protocol sub types and if unsupported set module to OFF just to be safe.

* Changes:

- radio: added validation to module yaml decode checking for unsupported multi protocols and/or multi protocol sub types and if unsupported set module to OFF just to be safe.

* CPN: use sentinel define

* cpn: Sort multi protocols list (courtesy @elecpower)

* fixes #3480

changes:
- moved FrSky subtype defines to MultiProtoDefs.h
- updated bind_button_driver.cpp

* missed replacing one instance of setMultiProtocol()

* changes:

- editorial change
- added multi option to OMP protocol (ref #2713)

* rather go for STR_MULTI_RFTUNE because MPM manual talks about RF tune

* made XN297_DUMP selectable (available with MPM debug fw only)

* corrected merge mistakes
2023-05-22 20:07:29 +10:00
Raphael CoefficandGitHub 72193eda82 chore: New module/serial API (#3055)
* WiP: new module interface

* WiP: softserial timer DMA

* WiP: setup() and send() in one step

and remove methods specific to internal or external module

* fixes and extra port config

* horus targets

* module ports have moved

* T8 support (only internal module)

* fix nv14

* stupid GCC....

* disable BT

* remove nv14 telem driver

* remove old aux serial driver

* Move module buffers out of pulses.h

* Soft serial fixes and PXX1 support

* Fixed PPM module output

* Fixed CLI

* compilation fixes

* Ported bluetooth and flysky gimbal to new serial driver

* Re-enable soft-serial RX

* fixes and cleanup

* nv14 fixes

* Fix flysky gimbals

* Ghost module

* 16 bytes of RAM

* Remove getByte from module API

* Ghost cleanup

* fix: _half_duplex_input() must be called after usart init

* WiP

* more cleanup

* Remove board specific settings from PXX1 / PXX2 drivers

* A bit of PXX2 header cleanup

* Add support for OVER8 and ONEBIT

* Add some support for inverters (NV14 / EL18)

* Support NV14 power fixes in generic board

* Fix polarity handling

* Fix RX DMA

* Fix mixer not running

* Add soft-serial polarity control

* Quick fix for telemetry polling while module port is changed

* Fix bootloader DEBUG

* Fix MPM telemetry

* Fix pulse start

* DSM2 soft-serial fallback

* DSMP async module restart

* Fix CRSF LUA upstream

* Remove global variable telemetryProtocol

* Use HAL/LL constants

* Fix various issue with AFHDS3 and NV14/EL18 internal module

* Fixed S.PORT unit tests

* fix: update widx after writing at current index

* fix: init error condition

* Fix: possible infinite loop in _find_port()

* Add support for bidir S.PORT init

* Add support for "getLastByte" in HW serial driver

* PXX1: Add support for S.PORT based on IDLE callback

* Fix rebase error

* Fix softserial _rx_fifo_push()

* Add softserial support for waitForTxCompleted()

* Fix MPM flashing (internal / external)

* Fixed external MPM

* Activate RX DMA on internal module

Seems to work with serial passthrough without issues, at least on the L3R PRO.

* Fix softserial DMA on stdlcd F4 targets

* Add softserial support for 32bit timers (mostly TIM2)

* More precise soft-serial

* Fix MPM update using inverters & HW uart

* Raise S.PORT DMA/USART IRQ prio to achieve faster switching to input

* Remove useless delays

* Fix flashing external ELRS module

* Added a retry mechanism for FrSky S.PORT update

* Remove useless enableRx()

* External FrSky modules are all flashed via S.PORT

* Remove power management unit update

This was only used on the first batch of X-lite.
2023-02-09 19:44:32 +10:00
Raphael CoefficandGitHub 57bf180a9b feat(mpm): remove FrSky special treatment madness (#3032) 2023-01-26 11:44:46 +10:00
Raphael CoefficandGitHub acd95dfad4 fix(B&W): Avoid having constants in SRAM (#2993)
fix constness to avoid having constants in data segment 
.... and thus free some precious RAM
2023-01-18 20:12:35 +10:00
b4e1ceb4f8 fix(MPM): Various UI elements for MPM opts weren't updating correctly (#2209)
* fix: Get current values for MPM options

* fix: Don't show sub-proto dropdown when empty

* Add suggested call to `update()`

* Add callback to refresh when subtype changed

* Trip `SetValueHandler` rather than setting value
Thank you to @raphaelcoeffic for the hint ;)

* fix: Saving values when changed is a good idea!

* Load option flags properly when using internal proto list

* NumberEdit fields don't implement LV_EVENT_VALUE_CHANGED, use update() instead

* Fix checkbox behaviour

* Fix autobind checkbox after switching away from DSM

* Fix more parameter needing update on MPM sub-proto changes

* fix: Also update servo rate if present

* fix: Channel mapping needs updating also

Co-authored-by: Raphael Coeffic <raphael.coeffic@frafos.com>
2022-09-05 21:56:24 +10:00
Raphael CoefficandRaphael Coeffic 8f85097c90 MPM proto scan: use RTOS timers instead of polling for timeout 2022-08-11 12:15:46 +02:00
Raphael CoefficandRaphael Coeffic 0a38120024 Fixed MPM protolist after rebase 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic f6565c6826 Horus fixes 2022-06-11 15:38:08 +02:00
Raphael CoefficandRaphael Coeffic f39f7a87ed Use static MPM protolist on simu
Resolves #1793
2022-04-18 10:18:17 +02:00
Peter FeerickandGitHub c327c6c0db fix: TPro FS showing in global funcs and MPM protocol list updates (#1705)
* Init contrast earlier for 128 B&W screens
https://github.com/opentx/opentx/pull/8882

* fix: TPro - No FS in global functions
https://github.com/opentx/opentx/pull/8845

* Missing IS_SWITCH_FS defintions

* Update MPM fallback SUBTYPE and OPT strings

* Custom MPM proto should not be processed
2022-03-21 20:57:04 +10:00
Raphael CoefficandPeter Feerick f401cd4a12 [color] use own protocol counter
Overloading the frame counter causes aa race condition with the UI thread (see SEND_FAILSAFE_1S()).
2021-09-18 11:57:23 +10:00
Raphael Coeffic c2588efbca Prevent proto list to be fetched when started in anything but "normal" mode 2021-09-17 11:15:33 +02:00
Raphael Coeffic ba906e1d5d [color] Dynamic MPM proto list 2021-09-11 11:10:00 +02:00