Hubsan sub_protocol 501 features

sub_protocol H501
Model H122D: add flip on ch13 and OSD on ch14
Model H123D: add flight modes on ch16 -> -100% Sport mode 1,0% Sport mode 2, +100% Acro
This commit is contained in:
Pascal Langer 2018-08-29 17:29:50 +02:00
parent e6f16700e4
commit f515ba79af
2 changed files with 22 additions and 2 deletions

View File

@ -49,12 +49,19 @@ enum{
// flags going to packet[9] (H501S) // flags going to packet[9] (H501S)
FLAG_H501_VIDEO = 0x01, FLAG_H501_VIDEO = 0x01,
FLAG_H501_LED = 0x04, FLAG_H501_LED = 0x04,
FLAG_H122D_FLIP = 0x08, //H122D
FLAG_H501_RTH = 0x20, FLAG_H501_RTH = 0x20,
FLAG_H501_HEADLESS1 = 0x40, FLAG_H501_HEADLESS1 = 0x40,
FLAG_H501_GPS_HOLD = 0x80, FLAG_H501_GPS_HOLD = 0x80,
}; };
enum{ enum{
// flags going to packet[11] (H122D & H123D)
FLAG_H123D_FMODES = 0x03, //H123D 3 FMODES: Sport mode 1, Sport mode 2, Acro
FLAG_H122D_OSD = 0x20, //H122D OSD
};
enum{
// flags going to packet[13] (H501S) // flags going to packet[13] (H501S)
FLAG_H501_SNAPSHOT = 0x01, FLAG_H501_SNAPSHOT = 0x01,
FLAG_H501_HEADLESS2 = 0x02, FLAG_H501_HEADLESS2 = 0x02,
@ -203,10 +210,23 @@ static void __attribute__((unused)) hubsan_build_packet()
packet[9] = 0x02 packet[9] = 0x02
| GET_FLAG(CH6_SW, FLAG_H501_LED) | GET_FLAG(CH6_SW, FLAG_H501_LED)
| GET_FLAG(CH8_SW, FLAG_H501_VIDEO) | GET_FLAG(CH8_SW, FLAG_H501_VIDEO)
| GET_FLAG(CH13_SW, FLAG_H122D_FLIP)
| GET_FLAG(CH5_SW, FLAG_H501_RTH) | GET_FLAG(CH5_SW, FLAG_H501_RTH)
| GET_FLAG(CH11_SW, FLAG_H501_GPS_HOLD) | GET_FLAG(CH11_SW, FLAG_H501_GPS_HOLD)
| GET_FLAG(CH9_SW, FLAG_H501_HEADLESS1); | GET_FLAG(CH9_SW, FLAG_H501_HEADLESS1);
//packet[10]= 0x1A; //packet[10]= 0x1A;
//packet[11] content 0x00 is default
//H123D specific -> Flight modes => Does this needs to be a sub_protocol to work?
packet[11] = 0x41; // Sport mode 1
if(Channel_data[CH16]>CHANNEL_MIN_COMMAND)
packet[11]++; // 0x42 Sport mode 2
if(Channel_data[CH16]>CHANNEL_MAX_COMMAND)
packet[11]++; // 0x43 Acro
//H122D specific -> OSD => Does this needs to be a sub_protocol to work?
packet[11]|= 0x80
| GET_FLAG(CH14_SW,FLAG_H122D_OSD);
packet[13] = GET_FLAG(CH10_SW, FLAG_H501_HEADLESS2) packet[13] = GET_FLAG(CH10_SW, FLAG_H501_HEADLESS2)
| GET_FLAG(CH12_SW, FLAG_H501_ALT_HOLD) | GET_FLAG(CH12_SW, FLAG_H501_ALT_HOLD)
| GET_FLAG(CH7_SW, FLAG_H501_SNAPSHOT); | GET_FLAG(CH7_SW, FLAG_H501_SNAPSHOT);

View File

@ -19,7 +19,7 @@
#define VERSION_MAJOR 1 #define VERSION_MAJOR 1
#define VERSION_MINOR 2 #define VERSION_MINOR 2
#define VERSION_REVISION 0 #define VERSION_REVISION 0
#define VERSION_PATCH_LEVEL 34 #define VERSION_PATCH_LEVEL 35
//****************** //******************
// Protocols // Protocols