diff --git a/Multiprotocol/Multi_Names.ino b/Multiprotocol/Multi_Names.ino index c799fe2..fbb730a 100644 --- a/Multiprotocol/Multi_Names.ino +++ b/Multiprotocol/Multi_Names.ino @@ -145,203 +145,405 @@ enum const mm_protocol_definition multi_protocols[] = { // Protocol number, Protocol String, Number of sub_protocols, Sub_protocol strings, 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, 2, STR_SUBTYPE_FRSKYD, 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_MAXTHR }, -#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_RFTUNE }, -#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) - {PROTO_FRSKYX, STR_FRSKYX, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, - {PROTO_FRSKYX2, STR_FRSKYX2, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, -#endif -#if defined(ESKY_NRF24L01_INO) - {PROTO_ESKY, STR_ESKY, 2, STR_SUBTYPE_ESKY, 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) - {PROTO_FRSKYV, STR_FRSKYV, 0, NO_SUBTYPE, OPTION_RFTUNE }, -#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) - {PROTO_WK2x01, STR_WK2x01, 6, STR_SUBTYPE_WK2x01, OPTION_NONE }, -#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, 2, STR_SUBTYPE_ESKY150, 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) - {PROTO_V911S, STR_V911S, 2, STR_SUBTYPE_V911S, OPTION_RFTUNE }, -#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) - {PROTO_KF606, STR_KF606, 0, NO_SUBTYPE, OPTION_RFTUNE }, -#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, 2, STR_SUBTYPE_FRSKY_RX, OPTION_RFTUNE }, -#endif -#if defined(AFHDS2A_RX_A7105_INO) - {PROTO_AFHDS2A_RX, STR_AFHDS2A_RX,0, NO_SUBTYPE, OPTION_NONE }, -#endif -#if defined(HOTT_CC2500_INO) - {PROTO_HOTT, STR_HOTT, 0, NO_SUBTYPE, OPTION_RFTUNE }, -#endif -#if defined(FX816_NRF24L01_INO) - {PROTO_FX816, STR_FX816, 1, STR_SUBTYPE_FX816, OPTION_NONE }, -#endif -#if defined(BAYANG_RX_NRF24L01_INO) - {PROTO_BAYANG_RX, STR_BAYANG_RX, 0, NO_SUBTYPE, OPTION_NONE }, -#endif -#if defined(PELIKAN_A7105_INO) - {PROTO_PELIKAN, STR_PELIKAN , 0, NO_SUBTYPE, OPTION_NONE }, -#endif -#if defined(TIGER_NRF24L01_INO) - {PROTO_TIGER, STR_TIGER , 0, NO_SUBTYPE, OPTION_NONE }, -#endif -#if defined(XK_NRF24L01_INO) - {PROTO_XK, STR_XK , 2, STR_SUBTYPE_XK, OPTION_RFTUNE }, -#endif -#if defined(XN297DUMP_NRF24L01_INO) - {PROTO_XN297DUMP, STR_XN297DUMP, 4, STR_SUBTYPE_XN297DUMP, OPTION_RFCHAN }, -#endif -#if defined(FRSKYR9_SX1276_INO) - {PROTO_FRSKY_R9, STR_FRSKYR9, 4, STR_SUBTYPE_FRSKYR9, OPTION_NONE }, -#endif -#if defined(PROPEL_NRF24L01_INO) - {PROTO_PROPEL, STR_PROPEL, 4, STR_SUBTYPE_PROPEL, OPTION_NONE }, -#endif -#if defined(FRSKYL_CC2500_INO) - {PROTO_FRSKYL, STR_FRSKYL, 2, STR_SUBTYPE_FRSKYL, OPTION_RFTUNE }, +#if 1 //1=numerical, 0 alpha + #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, 2, STR_SUBTYPE_FRSKYD, 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_MAXTHR }, + #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_RFTUNE }, + #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) + {PROTO_FRSKYX, STR_FRSKYX, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, + {PROTO_FRSKYX2, STR_FRSKYX2, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, + #endif + #if defined(ESKY_NRF24L01_INO) + {PROTO_ESKY, STR_ESKY, 2, STR_SUBTYPE_ESKY, 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) + {PROTO_FRSKYV, STR_FRSKYV, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #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) + {PROTO_WK2x01, STR_WK2x01, 6, STR_SUBTYPE_WK2x01, OPTION_NONE }, + #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, 2, STR_SUBTYPE_ESKY150, 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) + {PROTO_V911S, STR_V911S, 2, STR_SUBTYPE_V911S, OPTION_RFTUNE }, + #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) + {PROTO_KF606, STR_KF606, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #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, 2, STR_SUBTYPE_FRSKY_RX, OPTION_RFTUNE }, + #endif + #if defined(AFHDS2A_RX_A7105_INO) + {PROTO_AFHDS2A_RX, STR_AFHDS2A_RX,0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(HOTT_CC2500_INO) + {PROTO_HOTT, STR_HOTT, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #endif + #if defined(FX816_NRF24L01_INO) + {PROTO_FX816, STR_FX816, 1, STR_SUBTYPE_FX816, OPTION_NONE }, + #endif + #if defined(BAYANG_RX_NRF24L01_INO) + {PROTO_BAYANG_RX, STR_BAYANG_RX, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(PELIKAN_A7105_INO) + {PROTO_PELIKAN, STR_PELIKAN , 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(TIGER_NRF24L01_INO) + {PROTO_TIGER, STR_TIGER , 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(XK_NRF24L01_INO) + {PROTO_XK, STR_XK , 2, STR_SUBTYPE_XK, OPTION_RFTUNE }, + #endif + #if defined(XN297DUMP_NRF24L01_INO) + {PROTO_XN297DUMP, STR_XN297DUMP, 4, STR_SUBTYPE_XN297DUMP, OPTION_RFCHAN }, + #endif + #if defined(FRSKYR9_SX1276_INO) + {PROTO_FRSKY_R9, STR_FRSKYR9, 4, STR_SUBTYPE_FRSKYR9, OPTION_NONE }, + #endif + #if defined(PROPEL_NRF24L01_INO) + {PROTO_PROPEL, STR_PROPEL, 4, STR_SUBTYPE_PROPEL, OPTION_NONE }, + #endif + #if defined(FRSKYL_CC2500_INO) + {PROTO_FRSKYL, STR_FRSKYL, 2, STR_SUBTYPE_FRSKYL, OPTION_RFTUNE }, + #endif +#else + #if defined(AFHDS2A_A7105_INO) + {PROTO_AFHDS2A, STR_AFHDS2A, 4, STR_SUBTYPE_AFHDS2A, OPTION_SRVFREQ }, + #endif + #if defined(AFHDS2A_RX_A7105_INO) + {PROTO_AFHDS2A_RX, STR_AFHDS2A_RX,0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(ASSAN_NRF24L01_INO) + {PROTO_ASSAN, STR_ASSAN, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(BAYANG_NRF24L01_INO) + {PROTO_BAYANG, STR_BAYANG, 5, STR_SUBTYPE_BAYANG, OPTION_TELEM }, + #endif + #if defined(BAYANG_RX_NRF24L01_INO) + {PROTO_BAYANG_RX, STR_BAYANG_RX, 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(CABELL_NRF24L01_INO) + {PROTO_CABELL, STR_CABELL, 8, STR_SUBTYPE_CABELL, OPTION_OPTION }, + #endif + #if defined(CFLIE_NRF24L01_INO) + {PROTO_CFLIE, STR_CFLIE, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(E01X_NRF24L01_INO) + {PROTO_E01X, STR_E01X, 3, STR_SUBTYPE_E01X, OPTION_OPTION }, + #endif + #if defined(CG023_NRF24L01_INO) + {PROTO_CG023, STR_CG023, 2, STR_SUBTYPE_CG023, OPTION_NONE }, + #endif + #if defined(CORONA_CC2500_INO) + {PROTO_CORONA, STR_CORONA, 3, STR_SUBTYPE_CORONA, OPTION_RFTUNE }, + #endif + #if defined(CX10_NRF24L01_INO) + {PROTO_CX10, STR_CX10, 7, STR_SUBTYPE_CX10, OPTION_NONE }, + #endif + #if defined(DEVO_CYRF6936_INO) + {PROTO_DEVO, STR_DEVO, 5, STR_SUBTYPE_DEVO, OPTION_FIXEDID }, + #endif + #if defined(DM002_NRF24L01_INO) + {PROTO_DM002, STR_DM002, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(DSM_CYRF6936_INO) + {PROTO_DSM, STR_DSM, 4, STR_SUBTYPE_DSM, OPTION_MAXTHR }, + #endif + #if defined(ESKY_NRF24L01_INO) + {PROTO_ESKY, STR_ESKY, 2, STR_SUBTYPE_ESKY, OPTION_NONE }, + #endif + #if defined(ESKY150_NRF24L01_INO) + {PROTO_ESKY150, STR_ESKY150, 2, STR_SUBTYPE_ESKY150, OPTION_NONE }, + #endif + #if defined(FLYSKY_A7105_INO) + {PROTO_FLYSKY, STR_FLYSKY, 5, STR_SUBTYPE_FLYSKY, OPTION_NONE }, + #endif + #if defined(FLYZONE_A7105_INO) + {PROTO_FLYZONE, STR_FLYZONE, 1, STR_SUBTYPE_FLYZONE, OPTION_NONE }, + #endif + #if defined(FQ777_NRF24L01_INO) + {PROTO_FQ777, STR_FQ777, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(FRSKYD_CC2500_INO) + {PROTO_FRSKYD, STR_FRSKYD, 2, STR_SUBTYPE_FRSKYD, OPTION_RFTUNE }, + #endif + #if defined(FRSKYL_CC2500_INO) + {PROTO_FRSKYL, STR_FRSKYL, 2, STR_SUBTYPE_FRSKYL, OPTION_RFTUNE }, + #endif + #if defined(FRSKYR9_SX1276_INO) + {PROTO_FRSKY_R9, STR_FRSKYR9, 4, STR_SUBTYPE_FRSKYR9, OPTION_NONE }, + #endif + #if defined(FRSKYV_CC2500_INO) + {PROTO_FRSKYV, STR_FRSKYV, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #endif + #if defined(FRSKYX_CC2500_INO) + {PROTO_FRSKYX, STR_FRSKYX, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, + {PROTO_FRSKYX2, STR_FRSKYX2, 5, STR_SUBTYPE_FRSKYX, OPTION_RFTUNE }, + #endif + #if defined(FRSKY_RX_CC2500_INO) + {PROTO_FRSKY_RX, STR_FRSKY_RX, 2, STR_SUBTYPE_FRSKY_RX, OPTION_RFTUNE }, + #endif + #if defined(FX816_NRF24L01_INO) + {PROTO_FX816, STR_FX816, 1, STR_SUBTYPE_FX816, OPTION_NONE }, + #endif + #if defined(FY326_NRF24L01_INO) + {PROTO_FY326, STR_FY326, 2, STR_SUBTYPE_FY326, OPTION_NONE }, + #endif + #if defined(GD00X_NRF24L01_INO) + {PROTO_GD00X, STR_GD00X, 2, STR_SUBTYPE_GD00X, OPTION_RFTUNE }, + #endif + #if defined(GW008_NRF24L01_INO) + {PROTO_GW008, STR_GW008, 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(HISKY_NRF24L01_INO) + {PROTO_HISKY, STR_HISKY, 2, STR_SUBTYPE_HISKY, OPTION_NONE }, + #endif + #if defined(HITEC_CC2500_INO) + {PROTO_HITEC, STR_HITEC, 3, STR_SUBTYPE_HITEC, OPTION_RFTUNE }, + #endif + #if defined(HONTAI_NRF24L01_INO) + {PROTO_HONTAI, STR_HONTAI, 4, STR_SUBTYPE_HONTAI, OPTION_NONE }, + #endif + #if defined(HOTT_CC2500_INO) + {PROTO_HOTT, STR_HOTT, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #endif + #if defined(HUBSAN_A7105_INO) + {PROTO_HUBSAN, STR_HUBSAN, 3, STR_SUBTYPE_HUBSAN, OPTION_VIDFREQ }, + #endif + #if defined(J6PRO_CYRF6936_INO) + {PROTO_J6PRO, STR_J6PRO, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(KF606_NRF24L01_INO) + {PROTO_KF606, STR_KF606, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #endif + #if defined(KN_NRF24L01_INO) + {PROTO_KN, STR_KN, 2, STR_SUBTYPE_KN, OPTION_NONE }, + #endif + #if defined(MJXQ_NRF24L01_INO) + {PROTO_MJXQ, STR_MJXQ, 7, STR_SUBTYPE_MJXQ, OPTION_RFTUNE }, + #endif + #if defined(MT99XX_NRF24L01_INO) + {PROTO_MT99XX, STR_MT99XX, 5, STR_SUBTYPE_MT99, OPTION_NONE }, + #endif + #if defined(NCC1701_NRF24L01_INO) + {PROTO_NCC1701, STR_NCC1701, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(PELIKAN_A7105_INO) + {PROTO_PELIKAN, STR_PELIKAN , 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(POTENSIC_NRF24L01_INO) + {PROTO_POTENSIC, STR_POTENSIC, 1, STR_SUBTYPE_POTENSIC, OPTION_NONE }, + #endif + #if defined(PROPEL_NRF24L01_INO) + {PROTO_PROPEL, STR_PROPEL, 4, STR_SUBTYPE_PROPEL, OPTION_NONE }, + #endif + #if defined(CX10_NRF24L01_INO) + {PROTO_Q2X2, STR_Q2X2, 3, STR_SUBTYPE_Q2X2, OPTION_NONE }, + #endif + #if defined(Q303_NRF24L01_INO) + {PROTO_Q303, STR_Q303, 4, STR_SUBTYPE_Q303, OPTION_NONE }, + #endif + #if defined(REDPINE_CC2500_INO) + {PROTO_REDPINE, STR_REDPINE, 2, STR_SUBTYPE_REDPINE, OPTION_RFTUNE }, + #endif + #if defined(SCANNER_CC2500_INO) + {PROTO_SCANNER, STR_SCANNER, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(SFHSS_CC2500_INO) + {PROTO_SFHSS, STR_SFHSS, 0, NO_SUBTYPE, OPTION_RFTUNE }, + #endif + #if defined(SHENQI_NRF24L01_INO) + {PROTO_SHENQI, STR_SHENQI, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(SLT_NRF24L01_INO) + {PROTO_SLT, STR_SLT, 5, STR_SUBTYPE_SLT, OPTION_RFTUNE }, + #endif + #if defined(SYMAX_NRF24L01_INO) + {PROTO_SYMAX, STR_SYMAX, 2, STR_SUBTYPE_SYMAX, OPTION_NONE }, + #endif + #if defined(TIGER_NRF24L01_INO) + {PROTO_TIGER, STR_TIGER , 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(TRAXXAS_CYRF6936_INO) + {PROTO_TRAXXAS, STR_TRAXXAS, 1, STR_SUBTYPE_TRAXXAS, OPTION_NONE }, + #endif + #if defined(V2X2_NRF24L01_INO) + {PROTO_V2X2, STR_V2X2, 2, STR_SUBTYPE_V2X2, OPTION_NONE }, + #endif + #if defined(V761_NRF24L01_INO) + {PROTO_V761, STR_V761, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(V911S_NRF24L01_INO) + {PROTO_V911S, STR_V911S, 2, STR_SUBTYPE_V911S, OPTION_RFTUNE }, + #endif + #if defined(WFLY_CYRF6936_INO) + {PROTO_WFLY, STR_WFLY, 0, NO_SUBTYPE, OPTION_NONE }, + #endif + #if defined(WK2x01_CYRF6936_INO) + {PROTO_WK2x01, STR_WK2x01, 6, STR_SUBTYPE_WK2x01, OPTION_NONE }, + #endif + #if defined(XK_NRF24L01_INO) + {PROTO_XK, STR_XK , 2, STR_SUBTYPE_XK, OPTION_RFTUNE }, + #endif + #if defined(XN297DUMP_NRF24L01_INO) + {PROTO_XN297DUMP, STR_XN297DUMP, 4, STR_SUBTYPE_XN297DUMP, OPTION_RFCHAN }, + #endif + #if defined(YD717_NRF24L01_INO) + {PROTO_YD717, STR_YD717, 5, STR_SUBTYPE_YD717, OPTION_NONE }, + #endif + #if defined(ZSX_NRF24L01_INO) + {PROTO_ZSX, STR_ZSX, 1, STR_SUBTYPE_ZSX, OPTION_NONE }, + #endif #endif {0x00, nullptr, 0, nullptr, 0 } }; + + + #endif \ No newline at end of file diff --git a/Multiprotocol/Multiprotocol.h b/Multiprotocol/Multiprotocol.h index bd28934..4fab8ff 100644 --- a/Multiprotocol/Multiprotocol.h +++ b/Multiprotocol/Multiprotocol.h @@ -19,7 +19,7 @@ #define VERSION_MAJOR 1 #define VERSION_MINOR 3 #define VERSION_REVISION 0 -#define VERSION_PATCH_LEVEL 87 +#define VERSION_PATCH_LEVEL 88 //****************** // Protocols diff --git a/Multiprotocol/Telemetry.ino b/Multiprotocol/Telemetry.ino index 3fa4b86..facc905 100644 --- a/Multiprotocol/Telemetry.ino +++ b/Multiprotocol/Telemetry.ino @@ -120,15 +120,14 @@ static void telemetry_set_input_sync(uint16_t refreshRate) static void multi_send_status() { - #ifdef MULTI_NAMES - if(multi_protocols_index != 0xFF) - multi_send_header(MULTI_TELEMETRY_STATUS, 24); - else - #endif #ifdef MULTI_TELEMETRY - multi_send_header(MULTI_TELEMETRY_STATUS, 6); + #ifdef MULTI_NAMES + multi_send_header(MULTI_TELEMETRY_STATUS, 24); + #else + multi_send_header(MULTI_TELEMETRY_STATUS, 5); + #endif #else - multi_send_header(MULTI_TELEMETRY_STATUS, 6); + multi_send_header(MULTI_TELEMETRY_STATUS, 5); #endif // Build flags @@ -141,13 +140,18 @@ static void multi_send_status() { flags |= 0x04; #ifdef MULTI_NAMES - if((sub_protocol&0x07) && multi_protocols_index != 0xFF) - { - uint8_t nbr=multi_protocols[multi_protocols_index].nbrSubProto; - if(protocol==PROTO_DSM) nbr++; //Auto sub_protocol - if((sub_protocol&0x07)>=nbr) - flags &= ~0x04; //Invalid sub protocol - } + if(multi_protocols_index == 0xFF||remote_callback==0) + flags &= ~0x04; //Invalid protocol + else if(sub_protocol&0x07) + { + uint8_t nbr=multi_protocols[multi_protocols_index].nbrSubProto; + if(protocol==PROTO_DSM) nbr++; //Auto sub_protocol + if((sub_protocol&0x07)>=nbr) + flags &= ~0x04; //Invalid sub protocol + } + #else + if(remote_callback==0) + flags &= ~0x04; //Invalid protocol #endif if (IS_WAIT_BIND_on) flags |= 0x10; @@ -177,36 +181,35 @@ static void multi_send_status() #endif #ifdef MULTI_NAMES - if(multi_protocols_index != 0xFF) + if(multi_protocols_index == 0xFF) // selection out of list... send first available protocol + multi_protocols_index=0; + // Protocol next/prev + if(multi_protocols[multi_protocols_index+1].protocol != 0) + Serial_write(multi_protocols[multi_protocols_index+1].protocol); // next protocol number + else + Serial_write(multi_protocols[multi_protocols_index].protocol); // end of list + if(multi_protocols_index>0) + Serial_write(multi_protocols[multi_protocols_index-1].protocol); // prev protocol number + else + Serial_write(multi_protocols[multi_protocols_index].protocol); // begining of list + // Protocol + for(uint8_t i=0;i<7;i++) + Serial_write(multi_protocols[multi_protocols_index].ProtoString[i]); // protocol name + // Sub-protocol + uint8_t nbr=multi_protocols[multi_protocols_index].nbrSubProto; + Serial_write(nbr | (multi_protocols[multi_protocols_index].optionType<<4)); // number of sub protocols && option type + uint8_t j=0; + if(nbr && (sub_protocol&0x07)0) - Serial_write(multi_protocols[multi_protocols_index-1].protocol); // prev protocol number - else - Serial_write(protocol); // begining of list - // Protocol - for(uint8_t i=0;i<7;i++) - Serial_write(multi_protocols[multi_protocols_index].ProtoString[i]); // protocol name - // Sub-protocol - uint8_t nbr=multi_protocols[multi_protocols_index].nbrSubProto; - Serial_write(nbr | (multi_protocols[multi_protocols_index].optionType<<4)); // number of sub protocols && option type - uint8_t j=0; - if(nbr && (sub_protocol&0x07)