@@ -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 : [ ] ,
@@ -1536,6 +1537,24 @@ OSD.loadDisplayFields = function() {
1536
1537
positionable : true ,
1537
1538
preview : '1:23.456' ,
1538
1539
} ,
1540
+ CAM_ANGLE_REFERENCE : {
1541
+ name : 'CAM_ANGLE_REFERENCE' ,
1542
+ text : 'osdTextElementCameraAngleReference' ,
1543
+ desc : 'osdDescElementCameraAngleReference' ,
1544
+ defaultPosition : - 1 ,
1545
+ draw_order : 555 ,
1546
+ positionable : true ,
1547
+ preview : '***CAR***' ,
1548
+ } ,
1549
+ CAM_ANGLE_REFERENCE_SBAR : {
1550
+ name : 'CAM_ANGLE_REFERENCE_SBAR' ,
1551
+ text : 'osdTextElementCameraAngleReferenceSidebar' ,
1552
+ desc : 'osdDescElementCameraAngleReferenceSidebar' ,
1553
+ defaultPosition : - 1 ,
1554
+ draw_order : 560 ,
1555
+ positionable : true ,
1556
+ preview : '***SBR***||' ,
1557
+ } ,
1539
1558
} ;
1540
1559
} ;
1541
1560
@@ -1970,6 +1989,8 @@ OSD.chooseFields = function() {
1970
1989
F . GPS_LAP_TIME_CURRENT ,
1971
1990
F . GPS_LAP_TIME_PREVIOUS ,
1972
1991
F . GPS_LAP_TIME_BEST3 ,
1992
+ F . CAM_ANGLE_REFERENCE ,
1993
+ F . CAM_ANGLE_REFERENCE_SBAR ,
1973
1994
] ) ;
1974
1995
}
1975
1996
@@ -2188,6 +2209,7 @@ OSD.msp = {
2188
2209
result . push16 ( OSD . data . alarms . cap . value ) ;
2189
2210
result . push16 ( 0 ) ; // This value is unused by the firmware with configurable timers
2190
2211
result . push16 ( OSD . data . alarms . alt . value ) ;
2212
+
2191
2213
2192
2214
let warningFlags = 0 ;
2193
2215
for ( let i = 0 ; i < OSD . data . warnings . length ; i ++ ) {
@@ -2212,6 +2234,19 @@ OSD.msp = {
2212
2234
result . push8 ( OSD . data . parameters . cameraFrameWidth ) ;
2213
2235
result . push8 ( OSD . data . parameters . cameraFrameHeight ) ;
2214
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
+ }
2215
2250
}
2216
2251
return result ;
2217
2252
} ,
@@ -2304,7 +2339,7 @@ OSD.msp = {
2304
2339
d . alarms [ 'alt' ] = { display_name : i18n . getMessage ( 'osdTimerAlarmOptionAltitude' ) , value : view . readU16 ( ) } ;
2305
2340
}
2306
2341
}
2307
-
2342
+
2308
2343
d . state = { } ;
2309
2344
d . state . haveSomeOsd = ( d . flags !== 0 ) ;
2310
2345
d . state . haveMax7456Configured = bit_check ( d . flags , 4 ) ;
@@ -2424,6 +2459,22 @@ OSD.msp = {
2424
2459
d . parameters . cameraFrameHeight = view . readU8 ( ) ;
2425
2460
}
2426
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
+
2427
2478
this . processOsdElements ( d , itemsPositionsRead ) ;
2428
2479
2429
2480
OSD . updateDisplaySize ( ) ;
@@ -2684,6 +2735,7 @@ osd.initialize = function(callback) {
2684
2735
$ ( '.units-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpUnits' ) ) ;
2685
2736
$ ( '.timers-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpTimers' ) ) ;
2686
2737
$ ( '.alarms-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpAlarms' ) ) ;
2738
+ $ ( '.car-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpCar' ) ) ;
2687
2739
$ ( '.stats-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpStats' ) ) ;
2688
2740
$ ( '.warnings-container div.cf_tip' ) . attr ( 'title' , i18n . getMessage ( 'osdSectionHelpWarnings' ) ) ;
2689
2741
@@ -2802,6 +2854,22 @@ osd.initialize = function(callback) {
2802
2854
$alarms . append ( $input ) ;
2803
2855
}
2804
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
+
2805
2873
// Timers
2806
2874
$ ( '.timers-container' ) . show ( ) ;
2807
2875
const $timers = $ ( '#timer-fields' ) . empty ( ) ;
0 commit comments