@@ -309,6 +309,7 @@ OSD.initData = function() {
309309        video_system : null , 
310310        unit_mode : null , 
311311        alarms : [ ] , 
312+         car : [ ] , 
312313        statItems : [ ] , 
313314        warnings : [ ] , 
314315        displayItems : [ ] , 
@@ -2208,6 +2209,7 @@ OSD.msp = {
22082209            result . push16 ( OSD . data . alarms . cap . value ) ; 
22092210            result . push16 ( 0 ) ;  // This value is unused by the firmware with configurable timers 
22102211            result . push16 ( OSD . data . alarms . alt . value ) ; 
2212+      
22112213
22122214            let  warningFlags  =  0 ; 
22132215            for  ( let  i  =  0 ;  i  <  OSD . data . warnings . length ;  i ++ )  { 
@@ -2232,6 +2234,19 @@ OSD.msp = {
22322234                result . push8 ( OSD . data . parameters . cameraFrameWidth ) ; 
22332235                result . push8 ( OSD . data . parameters . cameraFrameHeight ) ; 
22342236            } 
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+             } 
22352250        } 
22362251        return  result ; 
22372252    } , 
@@ -2324,7 +2339,7 @@ OSD.msp = {
23242339                d . alarms [ 'alt' ]  =  {  display_name : i18n . getMessage ( 'osdTimerAlarmOptionAltitude' ) ,  value : view . readU16 ( )  } ; 
23252340            } 
23262341        } 
2327- 
2342+   
23282343        d . state  =  { } ; 
23292344        d . state . haveSomeOsd  =  ( d . flags  !==  0 ) ; 
23302345        d . state . haveMax7456Configured  =  bit_check ( d . flags ,  4 ) ; 
@@ -2444,6 +2459,22 @@ OSD.msp = {
24442459            d . parameters . cameraFrameHeight  =  view . readU8 ( ) ; 
24452460        } 
24462461
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+ 
24472478        this . processOsdElements ( d ,  itemsPositionsRead ) ; 
24482479
24492480        OSD . updateDisplaySize ( ) ; 
@@ -2704,6 +2735,7 @@ osd.initialize = function(callback) {
27042735        $ ( '.units-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpUnits' ) ) ; 
27052736        $ ( '.timers-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpTimers' ) ) ; 
27062737        $ ( '.alarms-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpAlarms' ) ) ; 
2738+         $ ( '.car-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpCar' ) ) ; 
27072739        $ ( '.stats-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpStats' ) ) ; 
27082740        $ ( '.warnings-container div.cf_tip' ) . attr ( 'title' ,  i18n . getMessage ( 'osdSectionHelpWarnings' ) ) ; 
27092741
@@ -2822,6 +2854,22 @@ osd.initialize = function(callback) {
28222854                        $alarms . append ( $input ) ; 
28232855                    } 
28242856
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 }  ) ; 
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+ 
28252873                    // Timers 
28262874                    $ ( '.timers-container' ) . show ( ) ; 
28272875                    const  $timers  =  $ ( '#timer-fields' ) . empty ( ) ; 
0 commit comments