2019-10-15 02:04:19 +02:00
/*
This project is free software : you can redistribute it and / or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation , either version 3 of the License , or
( at your option ) any later version .
Multiprotocol is distributed in the hope that it will be useful ,
but WITHOUT ANY WARRANTY ; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
GNU General Public License for more details .
You should have received a copy of the GNU General Public License
along with Multiprotocol . If not , see < http : //www.gnu.org/licenses/>.
*/
# if defined(MULTI_NAMES)
const char STR_FLYSKY [ ] = " FlySky " ;
const char STR_HUBSAN [ ] = " Hubsan " ;
const char STR_FRSKYD [ ] = " FrSky D " ;
const char STR_HISKY [ ] = " Hisky " ;
const char STR_V2X2 [ ] = " V2x2 " ;
const char STR_DSM [ ] = " DSM " ;
const char STR_DEVO [ ] = " Devo " ;
const char STR_YD717 [ ] = " YD717 " ;
const char STR_KN [ ] = " KN " ;
const char STR_SYMAX [ ] = " SymaX " ;
const char STR_SLT [ ] = " SLT " ;
const char STR_CX10 [ ] = " CX10 " ;
const char STR_CG023 [ ] = " CG023 " ;
const char STR_BAYANG [ ] = " Bayang " ;
const char STR_FRSKYX [ ] = " FrSky X " ;
const char STR_ESKY [ ] = " ESky " ;
const char STR_MT99XX [ ] = " MT99XX " ;
const char STR_MJXQ [ ] = " MJXq " ;
const char STR_SHENQI [ ] = " Shenqi " ;
const char STR_FY326 [ ] = " FY326 " ;
const char STR_SFHSS [ ] = " SFHSS " ;
const char STR_J6PRO [ ] = " J6 Pro " ;
const char STR_FQ777 [ ] = " FQ777 " ;
const char STR_ASSAN [ ] = " Assan " ;
const char STR_FRSKYV [ ] = " FrSky V " ;
const char STR_HONTAI [ ] = " Hontai " ;
const char STR_AFHDS2A [ ] = " FSky 2A " ;
const char STR_Q2X2 [ ] = " Q2x2 " ;
const char STR_WK2x01 [ ] = " Walkera " ;
const char STR_Q303 [ ] = " Q303 " ;
const char STR_GW008 [ ] = " GW008 " ;
const char STR_DM002 [ ] = " DM002 " ;
const char STR_CABELL [ ] = " Cabell " ;
const char STR_ESKY150 [ ] = " Esky150 " ;
const char STR_H8_3D [ ] = " H8 3D " ;
const char STR_CORONA [ ] = " Corona " ;
const char STR_CFLIE [ ] = " CFlie " ;
const char STR_HITEC [ ] = " Hitec " ;
const char STR_WFLY [ ] = " WFly " ;
const char STR_BUGS [ ] = " Bugs " ;
const char STR_BUGSMINI [ ] = " BugMini " ;
const char STR_TRAXXAS [ ] = " Traxxas " ;
const char STR_NCC1701 [ ] = " NCC1701 " ;
const char STR_E01X [ ] = " E01X " ;
const char STR_V911S [ ] = " V911S " ;
const char STR_GD00X [ ] = " GD00X " ;
const char STR_V761 [ ] = " V761 " ;
const char STR_KF606 [ ] = " KF606 " ;
const char STR_REDPINE [ ] = " Redpine " ;
const char STR_POTENSIC [ ] = " Potensi " ;
const char STR_ZSX [ ] = " ZSX " ;
const char STR_FLYZONE [ ] = " FlyZone " ;
const char STR_SCANNER [ ] = " Scanner " ;
const char STR_FRSKY_RX [ ] = " FrSkyRX " ;
const char STR_AFHDS2A_RX [ ] = " FS2A_RX " ;
const char STR_XN297DUMP [ ] = " XN297DP " ;
const char STR_SUBTYPE_FLYSKY [ ] = " \x04 " " Std \0 " " V9x9 " " V6x6 " " V912 " " CX20 " ;
const char STR_SUBTYPE_HUBSAN [ ] = " \x04 " " H107 " " H301 " " H501 " ;
const char STR_SUBTYPE_FRSKYX [ ] = " \x07 " " D16 \0 " " D16 8ch " " LBT(EU) " " LBT 8ch " ;
const char STR_SUBTYPE_HISKY [ ] = " \x05 " " Std \0 " " HK310 " ;
const char STR_SUBTYPE_V2X2 [ ] = " \x06 " " Std \0 " " JXD506 " ;
const char STR_SUBTYPE_DSM [ ] = " \x06 " " 2 22ms " " 2 11ms " " X 22ms " " X 11ms " ;
const char STR_SUBTYPE_DEVO [ ] = " \x04 " " 8ch \0 " " 10ch " " 12ch " " 6ch \0 " " 7ch \0 " ;
const char STR_SUBTYPE_YD717 [ ] = " \x07 " " Std \0 " " SkyWlkr " " Syma X4 " " XINXUN \0 " " NIHUI \0 " ;
const char STR_SUBTYPE_KN [ ] = " \x06 " " WLtoys " " FeiLun " ;
const char STR_SUBTYPE_SYMAX [ ] = " \x03 " " Std " " X5C " ;
const char STR_SUBTYPE_SLT [ ] = " \x06 " " V1_6ch " " V2_8ch " " Q100 \0 " " Q200 \0 " " MR100 \0 " ;
const char STR_SUBTYPE_CX10 [ ] = " \x07 " " Green \0 " " Blue \0 " " DM007 \0 " " - \0 " " JC3015a " " JC3015b " " MK33041 " ;
const char STR_SUBTYPE_CG023 [ ] = " \x05 " " Std \0 " " YD829 " ;
const char STR_SUBTYPE_BAYANG [ ] = " \x07 " " Std \0 " " H8S3D \0 " " X16 AH \0 " " IRDrone " " DHD D4 " ;
const char STR_SUBTYPE_MT99 [ ] = " \x06 " " MT99 \0 " " H7 \0 " " YZ \0 " " LS \0 " " FY805 " ;
const char STR_SUBTYPE_MJXQ [ ] = " \x07 " " WLH08 \0 " " X600 \0 " " X800 \0 " " H26D \0 " " E010 \0 " " H26WH \0 " " Phoenix " ;
const char STR_SUBTYPE_FY326 [ ] = " \x05 " " Std \0 " " FY319 " ;
const char STR_SUBTYPE_HONTAI [ ] = " \x07 " " Std \0 " " JJRC X1 " " X5C1 \0 " " FQ_951 " ;
const char STR_SUBTYPE_AFHDS2A [ ] = " \x08 " " PWM,IBUS " " PPM,IBUS " " PWM,SBUS " " PPM,SBUS " ;
const char STR_SUBTYPE_Q2X2 [ ] = " \x04 " " Q222 " " Q242 " " Q282 " ;
const char STR_SUBTYPE_WK2x01 [ ] = " \x06 " " WK2801 " " WK2401 " " W6_5_1 " " W6_6_1 " " W6_HeL " " W6_HeI " ;
const char STR_SUBTYPE_Q303 [ ] = " \x06 " " Std \0 " " CX35 \0 " " CX10D \0 " " CX10WD " ;
const char STR_SUBTYPE_CABELL [ ] = " \x07 " " V3 \0 " " V3 Telm " " - \0 " " - \0 " " - \0 " " - \0 " " F-Safe \0 " " Unbind \0 " ;
const char STR_SUBTYPE_H83D [ ] = " \x07 " " Std \0 " " H20H \0 " " H20Mini " " H30Mini " ;
const char STR_SUBTYPE_CORONA [ ] = " \x05 " " V1 \0 " " V2 \0 " " FD V3 " ;
const char STR_SUBTYPE_HITEC [ ] = " \x07 " " Optima \0 " " Opt Hub " " Minima \0 " ;
const char STR_SUBTYPE_BUGS_MINI [ ] = " \x06 " " Std \0 " " Bugs3H " ;
const char STR_SUBTYPE_TRAXXAS [ ] = " \x04 " " 6519 " ;
const char STR_SUBTYPE_E01X [ ] = " \x05 " " E012 \0 " " E015 \0 " " E016H " ;
const char STR_SUBTYPE_GD00X [ ] = " \x05 " " GD_V1 " " GD_V2 " ;
const char STR_SUBTYPE_REDPINE [ ] = " \x04 " " Fast " " Slow " ;
const char STR_SUBTYPE_POTENSIC [ ] = " \x03 " " A20 " ;
const char STR_SUBTYPE_ZSX [ ] = " \x07 " " 280JJRC " ;
const char STR_SUBTYPE_FLYZONE [ ] = " \x05 " " FZ410 " ;
const char STR_SUBTYPE_XN297DUMP [ ] = " \x07 " " 250Kbps " " 1Mbps \0 " " 2Mbps \0 " ;
enum
{
OPTION_NONE ,
OPTION_OPTION ,
OPTION_RFTUNE ,
OPTION_VIDFREQ ,
OPTION_FIXEDID ,
OPTION_TELEM ,
OPTION_SRVFREQ ,
} ;
# define NO_SUBTYPE nullptr
const mm_protocol_definition multi_protocols [ ] = {
// Protocol as defined in pulses\modules_constants.h, number of sub_protocols - 1, Failsafe supported, Disable channel mapping supported, Subtype string, Option type
# if defined(FLYSKY_A7105_INO)
{ PROTO_FLYSKY , STR_FLYSKY , 5 , STR_SUBTYPE_FLYSKY , OPTION_NONE } ,
# endif
# if defined(HUBSAN_A7105_INO)
{ PROTO_HUBSAN , STR_HUBSAN , 3 , STR_SUBTYPE_HUBSAN , OPTION_VIDFREQ } ,
# endif
# if defined(FRSKYD_CC2500_INO)
{ PROTO_FRSKYD , STR_FRSKYD , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
# endif
# if defined(HISKY_NRF24L01_INO)
{ PROTO_HISKY , STR_HISKY , 2 , STR_SUBTYPE_HISKY , OPTION_NONE } ,
# endif
# if defined(V2X2_NRF24L01_INO)
{ PROTO_V2X2 , STR_V2X2 , 2 , STR_SUBTYPE_V2X2 , OPTION_NONE } ,
# endif
# if defined(DSM_CYRF6936_INO)
{ PROTO_DSM , STR_DSM , 4 , STR_SUBTYPE_DSM , OPTION_NONE } ,
# endif
# if defined(DEVO_CYRF6936_INO)
{ PROTO_DEVO , STR_DEVO , 5 , STR_SUBTYPE_DEVO , OPTION_FIXEDID } ,
# endif
# if defined(YD717_NRF24L01_INO)
{ PROTO_YD717 , STR_YD717 , 5 , STR_SUBTYPE_YD717 , OPTION_NONE } ,
# endif
# if defined(KN_NRF24L01_INO)
{ PROTO_KN , STR_KN , 2 , STR_SUBTYPE_KN , OPTION_NONE } ,
# endif
# if defined(SYMAX_NRF24L01_INO)
{ PROTO_SYMAX , STR_SYMAX , 2 , STR_SUBTYPE_SYMAX , OPTION_NONE } ,
# endif
# if defined(SLT_NRF24L01_INO)
{ PROTO_SLT , STR_SLT , 5 , STR_SUBTYPE_SLT , OPTION_NONE } ,
# endif
# if defined(CX10_NRF24L01_INO)
{ PROTO_CX10 , STR_CX10 , 7 , STR_SUBTYPE_CX10 , OPTION_NONE } ,
# endif
# if defined(CG023_NRF24L01_INO)
{ PROTO_CG023 , STR_CG023 , 2 , STR_SUBTYPE_CG023 , OPTION_NONE } ,
# endif
# if defined(BAYANG_NRF24L01_INO)
{ PROTO_BAYANG , STR_BAYANG , 5 , STR_SUBTYPE_BAYANG , OPTION_TELEM } ,
# endif
# if defined(FRSKYX_CC2500_INO)
2019-10-17 11:38:23 +02:00
{ PROTO_FRSKYX , STR_FRSKYX , 4 , STR_SUBTYPE_FRSKYX , OPTION_RFTUNE } ,
2019-10-15 02:04:19 +02:00
# endif
# if defined(ESKY_NRF24L01_INO)
{ PROTO_ESKY , STR_ESKY , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(MT99XX_NRF24L01_INO)
{ PROTO_MT99XX , STR_MT99XX , 5 , STR_SUBTYPE_MT99 , OPTION_NONE } ,
# endif
# if defined(MJXQ_NRF24L01_INO)
{ PROTO_MJXQ , STR_MJXQ , 7 , STR_SUBTYPE_MJXQ , OPTION_RFTUNE } ,
# endif
# if defined(SHENQI_NRF24L01_INO)
{ PROTO_SHENQI , STR_SHENQI , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(FY326_NRF24L01_INO)
{ PROTO_FY326 , STR_FY326 , 2 , STR_SUBTYPE_FY326 , OPTION_NONE } ,
# endif
# if defined(SFHSS_CC2500_INO)
{ PROTO_SFHSS , STR_SFHSS , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
# endif
# if defined(J6PRO_CYRF6936_INO)
{ PROTO_J6PRO , STR_J6PRO , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(FQ777_NRF24L01_INO)
{ PROTO_FQ777 , STR_FQ777 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(ASSAN_NRF24L01_INO)
{ PROTO_ASSAN , STR_ASSAN , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(FRSKYV_CC2500_INO)
2019-10-17 11:38:23 +02:00
{ PROTO_FRSKYV , STR_FRSKYV , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
2019-10-15 02:04:19 +02:00
# endif
# if defined(HONTAI_NRF24L01_INO)
{ PROTO_HONTAI , STR_HONTAI , 4 , STR_SUBTYPE_HONTAI , OPTION_NONE } ,
# endif
# if defined(AFHDS2A_A7105_INO)
{ PROTO_AFHDS2A , STR_AFHDS2A , 4 , STR_SUBTYPE_AFHDS2A , OPTION_SRVFREQ } ,
# endif
# if defined(CX10_NRF24L01_INO)
{ PROTO_Q2X2 , STR_Q2X2 , 3 , STR_SUBTYPE_Q2X2 , OPTION_NONE } ,
# endif
# if defined(WK2x01_CYRF6936_INO)
2019-10-15 08:54:02 +02:00
{ PROTO_WK2x01 , STR_WK2x01 , 6 , STR_SUBTYPE_WK2x01 , OPTION_NONE } ,
2019-10-15 02:04:19 +02:00
# endif
# if defined(Q303_NRF24L01_INO)
{ PROTO_Q303 , STR_Q303 , 4 , STR_SUBTYPE_Q303 , OPTION_NONE } ,
# endif
# if defined(GW008_NRF24L01_INO)
{ PROTO_GW008 , STR_GW008 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(DM002_NRF24L01_INO)
{ PROTO_DM002 , STR_DM002 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(CABELL_NRF24L01_INO)
{ PROTO_CABELL , STR_CABELL , 8 , STR_SUBTYPE_CABELL , OPTION_OPTION } ,
# endif
# if defined(ESKY150_NRF24L01_INO)
{ PROTO_ESKY150 , STR_ESKY150 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(H8_3D_NRF24L01_INO)
{ PROTO_H8_3D , STR_H8_3D , 4 , STR_SUBTYPE_H83D , OPTION_NONE } ,
# endif
# if defined(CORONA_CC2500_INO)
{ PROTO_CORONA , STR_CORONA , 3 , STR_SUBTYPE_CORONA , OPTION_RFTUNE } ,
# endif
# if defined(CFLIE_NRF24L01_INO)
{ PROTO_CFLIE , STR_CFLIE , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(HITEC_CC2500_INO)
{ PROTO_HITEC , STR_HITEC , 3 , STR_SUBTYPE_HITEC , OPTION_RFTUNE } ,
# endif
# if defined(WFLY_CYRF6936_INO)
{ PROTO_WFLY , STR_WFLY , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(BUGS_A7105_INO)
{ PROTO_BUGS , STR_BUGS , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(BUGSMINI_NRF24L01_INO)
{ PROTO_BUGSMINI , STR_BUGSMINI , 2 , STR_SUBTYPE_BUGS_MINI , OPTION_NONE } ,
# endif
# if defined(TRAXXAS_CYRF6936_INO)
{ PROTO_TRAXXAS , STR_TRAXXAS , 1 , STR_SUBTYPE_TRAXXAS , OPTION_NONE } ,
# endif
# if defined(NCC1701_NRF24L01_INO)
{ PROTO_NCC1701 , STR_NCC1701 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(E01X_NRF24L01_INO)
{ PROTO_E01X , STR_E01X , 3 , STR_SUBTYPE_E01X , OPTION_OPTION } ,
# endif
# if defined(V911S_NRF24L01_INO)
2019-10-15 20:00:41 +02:00
{ PROTO_V911S , STR_V911S , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
2019-10-15 02:04:19 +02:00
# endif
# if defined(GD00X_NRF24L01_INO)
{ PROTO_GD00X , STR_GD00X , 2 , STR_SUBTYPE_GD00X , OPTION_RFTUNE } ,
# endif
# if defined(V761_NRF24L01_INO)
{ PROTO_V761 , STR_V761 , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(KF606_NRF24L01_INO)
2019-10-15 20:00:41 +02:00
{ PROTO_KF606 , STR_KF606 , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
2019-10-15 02:04:19 +02:00
# endif
# if defined(REDPINE_CC2500_INO)
{ PROTO_REDPINE , STR_REDPINE , 2 , STR_SUBTYPE_REDPINE , OPTION_RFTUNE } ,
# endif
# if defined(POTENSIC_NRF24L01_INO)
{ PROTO_POTENSIC , STR_POTENSIC , 1 , STR_SUBTYPE_POTENSIC , OPTION_NONE } ,
# endif
# if defined(ZSX_NRF24L01_INO)
{ PROTO_ZSX , STR_ZSX , 1 , STR_SUBTYPE_ZSX , OPTION_NONE } ,
# endif
# if defined(FLYZONE_A7105_INO)
{ PROTO_FLYZONE , STR_FLYZONE , 1 , STR_SUBTYPE_FLYZONE , OPTION_NONE } ,
# endif
# if defined(SCANNER_CC2500_INO)
{ PROTO_SCANNER , STR_SCANNER , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(FRSKY_RX_CC2500_INO)
{ PROTO_FRSKY_RX , STR_FRSKY_RX , 0 , NO_SUBTYPE , OPTION_RFTUNE } ,
# endif
# if defined(AFHDS2A_RX_A7105_INO)
{ PROTO_AFHDS2A_RX , STR_AFHDS2A_RX , 0 , NO_SUBTYPE , OPTION_NONE } ,
# endif
# if defined(XN297DUMP_NRF24L01_INO)
{ PROTO_XN297DUMP , STR_XN297DUMP , 3 , STR_SUBTYPE_XN297DUMP , OPTION_NONE } ,
# endif
{ 0x00 , nullptr , 0 , nullptr , 0 }
} ;
# endif