SLT sub protocol Q100

CH9 FMODE
CH10 FLIP
CH13 Gyro calib
This commit is contained in:
Pascal Langer 2018-09-10 08:11:56 +02:00
parent 03f417546e
commit 27dc02fdec
4 changed files with 17 additions and 14 deletions

View File

@ -8,7 +8,7 @@
8,YD717,YD717,SKYWLKR,SYMAX4,XINXUN,NIHUI 8,YD717,YD717,SKYWLKR,SYMAX4,XINXUN,NIHUI
9,KN,WLTOYS,FEILUN 9,KN,WLTOYS,FEILUN
10,SymaX,SYMAX,SYMAX5C 10,SymaX,SYMAX,SYMAX5C
11,SLT,SLT_V1,SLT_V2,Q200,MR100 11,SLT,SLT_V1,SLT_V2,Q100,Q200,MR100
12,CX10,GREEN,BLUE,DM007,---,J3015_1,J3015_2,MK33041 12,CX10,GREEN,BLUE,DM007,---,J3015_1,J3015_2,MK33041
13,CG023,CG023,YD829 13,CG023,CG023,YD829
14,Bayang,Bayang,H8S3D,X16_AH,IRDRONE 14,Bayang,Bayang,H8S3D,X16_AH,IRDRONE

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 44 #define VERSION_PATCH_LEVEL 45
//****************** //******************
// Protocols // Protocols
@ -126,8 +126,9 @@ enum SLT
{ {
SLT_V1 = 0, SLT_V1 = 0,
SLT_V2 = 1, SLT_V2 = 1,
Q200 = 2, Q100 = 2,
MR100 = 3, Q200 = 3,
MR100 = 4,
}; };
enum CX10 enum CX10
{ {
@ -703,8 +704,9 @@ Serial: 100000 Baud 8e2 _ xxxx xxxx p --
sub_protocol==SLT sub_protocol==SLT
SLT_V1 0 SLT_V1 0
SLT_V2 1 SLT_V2 1
Q200 2 Q100 2
MR100 3 Q200 3
MR100 4
Power value => 0x80 0=High/1=Low Power value => 0x80 0=High/1=Low
Stream[3] = option_protocol; Stream[3] = option_protocol;

View File

@ -35,7 +35,7 @@ enum{
}; };
enum{ enum{
// flags going to packet[6] (MR100) // flags going to packet[6] (MR100 & Q100)
FLAG_MR100_FMODE = 0x20, FLAG_MR100_FMODE = 0x20,
FLAG_MR100_FLIP = 0x04, FLAG_MR100_FLIP = 0x04,
FLAG_MR100_VIDEO = 0x02, FLAG_MR100_VIDEO = 0x02,
@ -156,19 +156,19 @@ static void __attribute__((unused)) SLT_build_packet()
|GET_FLAG(CH10_SW, FLAG_Q200_FLIP) |GET_FLAG(CH10_SW, FLAG_Q200_FLIP)
|GET_FLAG(CH11_SW, FLAG_Q200_VIDON) |GET_FLAG(CH11_SW, FLAG_Q200_VIDON)
|GET_FLAG(CH12_SW, FLAG_Q200_VIDOFF); |GET_FLAG(CH12_SW, FLAG_Q200_VIDOFF);
if(sub_protocol==MR100) else if(sub_protocol==MR100 || sub_protocol==Q100)
packet[6] = GET_FLAG(CH9_SW , FLAG_MR100_FMODE) packet[6] = GET_FLAG(CH9_SW , FLAG_MR100_FMODE)
|GET_FLAG(CH10_SW, FLAG_MR100_FLIP) |GET_FLAG(CH10_SW, FLAG_MR100_FLIP)
|GET_FLAG(CH11_SW, FLAG_MR100_VIDEO) |GET_FLAG(CH11_SW, FLAG_MR100_VIDEO) // Does not exist on the Q100 but...
|GET_FLAG(CH12_SW, FLAG_MR100_PICTURE); |GET_FLAG(CH12_SW, FLAG_MR100_PICTURE); // Does not exist on the Q100 but...
packet[7]=convert_channel_8b(CH7); packet[7]=convert_channel_8b(CH7);
packet[8]=convert_channel_8b(CH8); packet[8]=convert_channel_8b(CH8);
packet[9]=0xAA; //normal mode for Q200, unknown for V2 packet[9]=0xAA; //normal mode for Q100/Q200, unknown for V2/MR100
packet[10]=0x00; //normal mode for Q200, unknown for V2 packet[10]=0x00; //normal mode for Q100/Q200, unknown for V2/MR100
if(sub_protocol==Q200 && CH13_SW) if((sub_protocol==Q100 || sub_protocol==Q200) && CH13_SW)
{//Calibrate {//Calibrate
packet[9]=0x77; //enter calibration packet[9]=0x77; //enter calibration
if(calib_counter>=20 && calib_counter<=23) // 3 packets if(calib_counter>=20 && calib_counter<=25) // 7 packets for Q100 / 3 packets for Q200
packet[10]=0x20; //launch calibration packet[10]=0x20; //launch calibration
calib_counter++; calib_counter++;
if(calib_counter>250) calib_counter=250; if(calib_counter>250) calib_counter=250;

View File

@ -565,6 +565,7 @@ const PPM_Parameters PPM_prot[14*NBR_BANKS]= {
PROTO_SLT PROTO_SLT
SLT_V1 SLT_V1
SLT_V2 SLT_V2
Q100
Q200 Q200
MR100 MR100
*/ */