@@ -638,18 +638,35 @@ MspHelper.prototype.process_data = function (dataHandler) {
638
638
FC . SENSOR_ALIGNMENT . align_acc = data . readU8 ( ) ;
639
639
FC . SENSOR_ALIGNMENT . align_mag = data . readU8 ( ) ;
640
640
FC . SENSOR_ALIGNMENT . gyro_detection_flags = data . readU8 ( ) ;
641
- FC . SENSOR_ALIGNMENT . gyro_to_use = data . readU8 ( ) ;
642
- FC . SENSOR_ALIGNMENT . gyro_1_align = data . readU8 ( ) ;
643
- FC . SENSOR_ALIGNMENT . gyro_2_align = data . readU8 ( ) ;
641
+
644
642
if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_47 ) ) {
645
- FC . SENSOR_ALIGNMENT . gyro_align_roll = data . read16 ( ) / 10 ;
646
- FC . SENSOR_ALIGNMENT . gyro_align_pitch = data . read16 ( ) / 10 ;
647
- FC . SENSOR_ALIGNMENT . gyro_align_yaw = data . read16 ( ) / 10 ;
643
+ FC . SENSOR_ALIGNMENT . gyro_enable_mask = data . readU8 ( ) ; // replacing gyro_to_use
644
+
645
+ // Initialize arrays for gyro alignment
646
+ FC . SENSOR_ALIGNMENT . gyro_align = [ ] ;
647
+ FC . SENSOR_ALIGNMENT . gyro_align_roll = [ ] ;
648
+ FC . SENSOR_ALIGNMENT . gyro_align_pitch = [ ] ;
649
+ FC . SENSOR_ALIGNMENT . gyro_align_yaw = [ ] ;
650
+
651
+ for ( let i = 0 ; i < 8 ; i ++ ) {
652
+ FC . SENSOR_ALIGNMENT . gyro_align [ i ] = data . readU8 ( ) ;
653
+ }
654
+
655
+ for ( let i = 0 ; i < 8 ; i ++ ) {
656
+ FC . SENSOR_ALIGNMENT . gyro_align_roll [ i ] = data . read16 ( ) / 10 ;
657
+ FC . SENSOR_ALIGNMENT . gyro_align_pitch [ i ] = data . read16 ( ) / 10 ;
658
+ FC . SENSOR_ALIGNMENT . gyro_align_yaw [ i ] = data . read16 ( ) / 10 ;
659
+ }
648
660
649
661
FC . SENSOR_ALIGNMENT . mag_align_roll = data . read16 ( ) / 10 ;
650
662
FC . SENSOR_ALIGNMENT . mag_align_pitch = data . read16 ( ) / 10 ;
651
663
FC . SENSOR_ALIGNMENT . mag_align_yaw = data . read16 ( ) / 10 ;
664
+ } else {
665
+ FC . SENSOR_ALIGNMENT . gyro_to_use = data . readU8 ( ) ;
666
+ FC . SENSOR_ALIGNMENT . gyro_1_align = data . readU8 ( ) ;
667
+ FC . SENSOR_ALIGNMENT . gyro_2_align = data . readU8 ( ) ;
652
668
}
669
+
653
670
break ;
654
671
case MSPCodes . MSP_DISPLAYPORT :
655
672
break ;
@@ -2079,19 +2096,33 @@ MspHelper.prototype.crunch = function (code, modifierCode = undefined) {
2079
2096
buffer
2080
2097
. push8 ( FC . SENSOR_ALIGNMENT . align_gyro )
2081
2098
. push8 ( FC . SENSOR_ALIGNMENT . align_acc )
2082
- . push8 ( FC . SENSOR_ALIGNMENT . align_mag )
2083
- . push8 ( FC . SENSOR_ALIGNMENT . gyro_to_use )
2084
- . push8 ( FC . SENSOR_ALIGNMENT . gyro_1_align )
2085
- . push8 ( FC . SENSOR_ALIGNMENT . gyro_2_align ) ;
2099
+ . push8 ( FC . SENSOR_ALIGNMENT . align_mag ) ;
2100
+
2086
2101
if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_47 ) ) {
2087
- buffer . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_roll * 10 ) ;
2088
- buffer . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_pitch * 10 ) ;
2089
- buffer . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_yaw * 10 ) ;
2102
+ buffer . push8 ( FC . SENSOR_ALIGNMENT . gyro_enable_mask ) ; // replacing gyro_to_use
2090
2103
2091
- buffer . push16 ( FC . SENSOR_ALIGNMENT . mag_align_roll * 10 ) ;
2092
- buffer . push16 ( FC . SENSOR_ALIGNMENT . mag_align_pitch * 10 ) ;
2093
- buffer . push16 ( FC . SENSOR_ALIGNMENT . mag_align_yaw * 10 ) ;
2104
+ for ( let i = 0 ; i < 8 ; i ++ ) {
2105
+ buffer . push8 ( FC . SENSOR_ALIGNMENT . gyro_align [ i ] ) ;
2106
+ }
2107
+
2108
+ for ( let i = 0 ; i < 8 ; i ++ ) {
2109
+ buffer
2110
+ . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_roll [ i ] * 10 )
2111
+ . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_pitch [ i ] * 10 )
2112
+ . push16 ( FC . SENSOR_ALIGNMENT . gyro_align_yaw [ i ] * 10 ) ;
2113
+ }
2114
+
2115
+ buffer
2116
+ . push16 ( FC . SENSOR_ALIGNMENT . mag_align_roll * 10 )
2117
+ . push16 ( FC . SENSOR_ALIGNMENT . mag_align_pitch * 10 )
2118
+ . push16 ( FC . SENSOR_ALIGNMENT . mag_align_yaw * 10 ) ;
2119
+ } else {
2120
+ buffer
2121
+ . push8 ( FC . SENSOR_ALIGNMENT . gyro_to_use )
2122
+ . push8 ( FC . SENSOR_ALIGNMENT . gyro_1_align )
2123
+ . push8 ( FC . SENSOR_ALIGNMENT . gyro_2_align ) ;
2094
2124
}
2125
+
2095
2126
break ;
2096
2127
case MSPCodes . MSP_SET_ADVANCED_CONFIG :
2097
2128
buffer
0 commit comments