@@ -309,6 +309,7 @@ OSD.initData = function() {
309
309
video_system : null ,
310
310
unit_mode : null ,
311
311
alarms : [ ] ,
312
+ car : [ ] ,
312
313
statItems : [ ] ,
313
314
warnings : [ ] ,
314
315
displayItems : [ ] ,
@@ -2208,6 +2209,7 @@ OSD.msp = {
2208
2209
result . push16 ( OSD . data . alarms . cap . value ) ;
2209
2210
result . push16 ( 0 ) ; // This value is unused by the firmware with configurable timers
2210
2211
result . push16 ( OSD . data . alarms . alt . value ) ;
2212
+
2211
2213
2212
2214
let warningFlags = 0 ;
2213
2215
for ( let i = 0 ; i < OSD . data . warnings . length ; i ++ ) {
@@ -2232,6 +2234,19 @@ OSD.msp = {
2232
2234
result . push8 ( OSD . data . parameters . cameraFrameWidth ) ;
2233
2235
result . push8 ( OSD . data . parameters . cameraFrameHeight ) ;
2234
2236
}
2237
+ if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_46 ) ) {
2238
+ result . push8 ( OSD . data . car . scale . value ) ;
2239
+ result . push8 ( OSD . data . car . width . value ) ;
2240
+ result . push8 ( OSD . data . car . channel . value ) ;
2241
+ result . push8 ( OSD . data . car . dots . value ) ;
2242
+
2243
+ result . push8 ( OSD . data . car . sbar_scale . value ) ;
2244
+ result . push8 ( OSD . data . car . sbar_low . value ) ;
2245
+ result . push8 ( OSD . data . car . sbar_mid_low . value ) ;
2246
+ result . push8 ( OSD . data . car . sbar_mid . value ) ;
2247
+ result . push8 ( OSD . data . car . sbar_mid_high . value ) ;
2248
+ result . push8 ( OSD . data . car . sbar_high . value ) ;
2249
+ }
2235
2250
}
2236
2251
return result ;
2237
2252
} ,
@@ -2324,7 +2339,7 @@ OSD.msp = {
2324
2339
d . alarms [ 'alt' ] = { display_name : i18n . getMessage ( 'osdTimerAlarmOptionAltitude' ) , value : view . readU16 ( ) } ;
2325
2340
}
2326
2341
}
2327
-
2342
+
2328
2343
d . state = { } ;
2329
2344
d . state . haveSomeOsd = ( d . flags !== 0 ) ;
2330
2345
d . state . haveMax7456Configured = bit_check ( d . flags , 4 ) ;
@@ -2444,6 +2459,22 @@ OSD.msp = {
2444
2459
d . parameters . cameraFrameHeight = view . readU8 ( ) ;
2445
2460
}
2446
2461
2462
+ if ( semver . gte ( FC . CONFIG . apiVersion , API_VERSION_1_46 ) ) {
2463
+ d . car = { } ;
2464
+ d . car [ 'scale' ] = { display_name : i18n . getMessage ( 'osdCarOptionScale' ) , value : view . readU8 ( ) } ;
2465
+ d . car [ 'width' ] = { display_name : i18n . getMessage ( 'osdCarOptionWidth' ) , value : view . readU8 ( ) } ;
2466
+ d . car [ 'channel' ] = { display_name : i18n . getMessage ( 'osdCarOptionChannel' ) , value : view . readU8 ( ) } ;
2467
+ d . car [ 'dots' ] = { display_name : i18n . getMessage ( 'osdCarOptionDots' ) , value : view . readU8 ( ) } ;
2468
+
2469
+ d . car [ 'sbar_scale' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarScale' ) , value : view . readU8 ( ) } ;
2470
+ d . car [ 'sbar_low' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarLow' ) , value : view . readU8 ( ) } ;
2471
+ d . car [ 'sbar_mid_low' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarMidLow' ) , value : view . readU8 ( ) } ;
2472
+ d . car [ 'sbar_mid' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarMid' ) , value : view . readU8 ( ) } ;
2473
+ d . car [ 'sbar_mid_high' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarMidHigh' ) , value : view . readU8 ( ) } ;
2474
+ d . car [ 'sbar_high' ] = { display_name : i18n . getMessage ( 'osdCarOptionSbarHigh' ) , value : view . readU8 ( ) } ;
2475
+
2476
+ }
2477
+
2447
2478
this . processOsdElements ( d , itemsPositionsRead ) ;
2448
2479
2449
2480
OSD . updateDisplaySize ( ) ;
@@ -2704,6 +2735,7 @@ osd.initialize = function(callback) {
2704
2735
$ ( '.units-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpUnits' ) ) ;
2705
2736
$ ( '.timers-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpTimers' ) ) ;
2706
2737
$ ( '.alarms-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpAlarms' ) ) ;
2738
+ $ ( '.car-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpCar' ) ) ;
2707
2739
$ ( '.stats-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpStats' ) ) ;
2708
2740
$ ( '.warnings-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpWarnings' ) ) ;
2709
2741
@@ -2822,6 +2854,22 @@ osd.initialize = function(callback) {
2822
2854
$alarms . append ( $input ) ;
2823
2855
}
2824
2856
2857
+ // Camera Angle Reference
2858
+ $ ( '.car-container' ) . show ( ) ;
2859
+ const $car = $ ( '.car' ) . empty ( ) ;
2860
+ for ( const k in OSD . data . car ) {
2861
+ const car = OSD . data . car [ k ] ;
2862
+ const carInput = $ ( `<input name="car" type="number" id="${ k } "/>${ car . display_name } </label>` ) ;
2863
+ carInput . val ( car . value ) ;
2864
+ carInput . focusout ( function ( ) {
2865
+ OSD . data . car [ $ ( this ) [ 0 ] . id ] . value = $ ( this ) [ 0 ] . value ;
2866
+ MSP . promise ( MSPCodes . MSP_SET_OSD_CONFIG , OSD . msp . encodeOther ( ) )
2867
+ . then ( updateOsdView ) ;
2868
+ } ) ;
2869
+ const $input = $ ( '<label/>' ) . append ( carInput ) ;
2870
+ $car . append ( $input ) ;
2871
+ }
2872
+
2825
2873
// Timers
2826
2874
$ ( '.timers-container' ) . show ( ) ;
2827
2875
const $timers = $ ( '#timer-fields' ) . empty ( ) ;
0 commit comments