This commit is contained in:
pascallanger 2024-02-15 18:24:58 +01:00
parent de610b53fc
commit 724abbc935
3 changed files with 26 additions and 15 deletions

View File

@ -212,4 +212,4 @@
94,0,Scorpio 94,0,Scorpio
95,0,Bluefly,HP100,0,CH5,CH6,CH7,CH8 95,0,Bluefly,HP100,0,CH5,CH6,CH7,CH8
96,0,BumbleB 96,0,BumbleB
97,0,SGF22,Std,1,MODE,FLIP,LED 97,0,SGF22,Std,1,Mode,Flip,LED,Pict

View File

@ -26,20 +26,27 @@ Multiprotocol is distributed in the hope that it will be useful,
#define SGF22_BIND_COUNT 50 #define SGF22_BIND_COUNT 50
#define SGF22_RF_NUM_CHANNELS 4 #define SGF22_RF_NUM_CHANNELS 4
#define SGF22_FLAG_LIGHT 0x04
#define SGF22_FLAG_6G 0x40
#define SGF22_FLAG_VERTICAL 0xC0
#define SGF22_FLAG_3D 0x00
#define SGF22_FLAG_ROLL 0x08
#define SGF22_FLAG_PHOTO 0x40
static void __attribute__((unused)) SGF22_send_packet() static void __attribute__((unused)) SGF22_send_packet()
{ {
if(IS_BIND_IN_PROGRESS) if(IS_BIND_IN_PROGRESS)
{ {
packet[0] = 0x5B; packet[ 0] = 0x5B;
packet[8] = 0x00; // ??? do they have to be 0 for bind to succeed ? packet[ 8] = 0x00; // ??? do they have to be 0 for bind to succeed ?
packet[9] = 0x00; // ??? do they have to be 0 for bind to succeed ? packet[ 9] = 0x00; // ??? do they have to be 0 for bind to succeed ?
packet[10] = 0xAA; packet[10] = 0xAA;
packet[11] = 0x55; packet[11] = 0x55;
} }
else else
{ {
//hop //hop
XN297_Hopping(packet_sent & 0x03); // ??? from the dumps I can't really say how hop and seq are sync, there could be an offset (0,1,2,3)... XN297_Hopping(packet_sent & 0x03); // ??? from the dumps I can't really say how hop and seq are sync, there could be an offset (0,1,2,3)...
if( (packet_sent & 0x03) == 0x02) if( (packet_sent & 0x03) == 0x02)
packet_count = packet_sent; packet_count = packet_sent;
packet_sent++; packet_sent++;
@ -47,16 +54,18 @@ static void __attribute__((unused)) SGF22_send_packet()
packet_sent = 0; packet_sent = 0;
//packet //packet
packet[0] = 0x1B; packet[0] = 0x1B;
packet[8] = 0x04 | GET_FLAG(CH6_SW, 0x08); // roll packet[8] = SGF22_FLAG_3D // default
| GET_FLAG(CH6_SW, SGF22_FLAG_ROLL) // roll
| GET_FLAG(CH7_SW, SGF22_FLAG_LIGHT); // press up throttle trim for light
if(Channel_data[CH5] > CHANNEL_MIN_COMMAND) if(Channel_data[CH5] > CHANNEL_MIN_COMMAND)
packet[8] |= 0x40; // mode 1 - 6g packet[8] |= SGF22_FLAG_6G; // mode 1 - 6g
if(Channel_data[CH5] > CHANNEL_MAX_COMMAND) if(Channel_data[CH5] > CHANNEL_MAX_COMMAND)
packet[8] |= 0x80; // mode 0 - vertical packet[8] |= SGF22_FLAG_VERTICAL; // mode 0 - vertical
packet[9] = GET_FLAG(CH7_SW, 0x40); // light GET_FLAG(CH8_SW, SGF22_FLAG_PHOTO); // press down throttle trim for photo
packet[10] = 0x42; // no fine tune packet[10] = 0x42; // no fine tune
packet[11] = 0x10; // no fine tune packet[11] = 0x10; // no fine tune
} }
packet[1] = packet_count; // sequence packet[1] = packet_count; // sequence
packet[2] = rx_tx_addr[2]; packet[2] = rx_tx_addr[2];
packet[3] = rx_tx_addr[3]; packet[3] = rx_tx_addr[3];
packet[4] = convert_channel_8b(THROTTLE); packet[4] = convert_channel_8b(THROTTLE);

View File

@ -1938,11 +1938,13 @@ A|E|T|R|FLIP|LIGHT|CALIB|HLESS|RTH|UNK
## SGF22 - *97* ## SGF22 - *97*
Autobind protocol Autobind protocol
Only 1 ID !!! Need more TX dumps.
Model: SGF22 Model: SGF22
CH1|CH2|CH3|CH4|CH5|CH6|CH7 CH1|CH2|CH3|CH4|CH5|CH6|CH7|CH8
---|---|---|---|---|---|--- ---|---|---|---|---|---|---|---
A|E|T|R|MODE|FLIP|LIGHT A|E|T|R|MODE|FLIP|LIGHT|PHOTO
## Shenqi - *19* ## Shenqi - *19*
Autobind protocol Autobind protocol