11<template >
2- <div >
3- <p > Lights Setup goes here </p >
2+ <div class =" d-flex" >
43 <v-card >
5- <v-card-title > Lights 1 </v-card-title >
4+ <v-card-title > Lights 1 (RCIN9) </v-card-title >
65 <v-card-text >
7- Here you can configure what pin outputs the signal for the first set of lights. {{ lights1_new_param }}
6+ Here you can configure what pin outputs the signal for the first set of lights.
87 <v-select
8+ v-model =" lights1_new_param"
99 :items =" recommended_params"
1010 :item-text =" friendlyName"
1111 :item-value =" 'name'"
12- v-model =" lights1_new_param"
1312 label =" Lights 1"
14- ></v-select >
13+ />
14+ </v-card-text >
15+ </v-card >
16+ <v-card >
17+ <v-card-title > Lights 2 (RCIN10) </v-card-title >
18+ <v-card-text >
19+ What pin outputs the signal for the second set of lights.
20+ <v-select
21+ v-model =" lights2_new_param"
22+ :items =" recommended_params"
23+ :item-text =" friendlyName"
24+ :item-value =" 'name'"
25+ label =" Lights 2"
26+ />
1527 </v-card-text >
1628 </v-card >
1729 <v-card >
18- <p > Lights 2 </p >
19- <span v-for =" param in servo_params" :key =" param.name" >
20- <p >{{ param.name }} {{ printParam(param) }}</p >
21- </span >
30+ <v-card-title > Joystick steps </v-card-title >
31+ <v-card-text >
32+ How many button presses it takes to go from 0% to 100% brightness.
33+ <v-text-field
34+ ref =" steps_input"
35+ v-model =" steps_new_value"
36+ label =" Joystick steps"
37+ type =" number"
38+ @input =" setSteps"
39+ />
40+ </v-card-text >
2241 </v-card >
2342 </div >
2443</template >
@@ -29,8 +48,8 @@ import autopilot_data from '@/store/autopilot'
2948import Parameter , { printParam } from ' @/types/autopilot/parameter'
3049
3150enum Lights {
32- Lights1 = 59 , // RCIN9
33- Lights2 = 60 , // RCIN10
51+ Lights1 = 59 , // RCIN9
52+ Lights2 = 60 , // RCIN10
3453 DISABLED = 0 ,
3554}
3655
@@ -40,15 +59,43 @@ export default {
4059 return {
4160 lights1_new_param: undefined as (string | undefined ), // item-value must be a primitive
4261 lights2_new_param: undefined as (string | undefined ),
62+ steps_new_value: 0 ,
4363 }
4464 },
45- methods: {
46- friendlyName(param : Parameter ): string {
47- return ` ${param .name .replace (' SERVO' , ' Servo ' ).replace (' _FUNCTION' , ' ' )} (${printParam (param )}) `
65+ computed: {
66+ light_steps(): Parameter | undefined {
67+ return autopilot_data .parameter (' JS_LIGHTS_STEPS' )
68+ },
69+ recommended_params(): Parameter [] {
70+ // return parameters in servo_params that are on channel 9 and higher
71+ return this .servo_params .filter ((param ) => {
72+ const servoNumber = parseInt (param .name .replace (' SERVO' , ' ' ).split (' _' )[0 ], 10 )
73+ return servoNumber >= 9
74+ })
75+ },
76+ servo_params(): Parameter [] {
77+ return autopilot_data .parameterRegex (' SERVO[0-9]+_FUNCTION' )
78+ },
79+ lights1_param(): Parameter | undefined {
80+ return this .servo_params .filter ((param ) => param .value === Lights .Lights1 )[0 ]
81+ },
82+ lights2_param(): Parameter | undefined {
83+ return this .servo_params .filter ((param ) => param .value === Lights .Lights2 )[0 ]
4884 },
49- printParam ,
5085 },
5186 watch: {
87+ steps_param(new_value : Parameter | undefined ) {
88+ this .steps_new_value = new_value ?.value ?? 0
89+ },
90+ steps_new_value(new_value : number | undefined ) {
91+ if (new_value ) {
92+ if (this .light_steps ?.value === new_value ) {
93+ return
94+ }
95+ mavlink2rest .setParam (' JS_LIGHTS_STEPS' , new_value , autopilot_data .system_id )
96+ }
97+ },
98+
5299 lights1_param(new_value : Parameter | undefined ) {
53100 this .lights1_new_param = new_value ?.name
54101 },
@@ -58,8 +105,8 @@ export default {
58105 // todo: refactor these two methods into one
59106 lights1_new_param(new_param_name : string | undefined ) {
60107 if (new_param_name ) {
61- // reset any other parameter using lights1 to undefined
62- for (let old_param of this .servo_params ) {
108+ // reset any other parameter using lights1 to undefined
109+ for (const old_param of this .servo_params ) {
63110 if (old_param .name === new_param_name ) {
64111 continue
65112 }
@@ -68,27 +115,41 @@ export default {
68115 mavlink2rest .setParam (old_param .name , Lights .DISABLED , autopilot_data .system_id )
69116 }
70117 }
71- mavlink2rest .setParam (new_param_name , Lights .Lights1 , autopilot_data .system_id )
118+ mavlink2rest .setParam (new_param_name , Lights .Lights1 , autopilot_data .system_id )
72119 }
73120 },
74- },
75- computed: {
76- recommended_params(): Parameter [] {
77- // return parameters in servo_params that are on channel 9 and higher
78- return this .servo_params .filter ((param ) => {
79- const servoNumber = parseInt (param .name .replace (' SERVO' , ' ' ).split (' _' )[0 ]);
80- return servoNumber >= 9 ;
81- });
82-
83- },
84- servo_params(): Parameter [] {
85- return autopilot_data .parameterRegex (' SERVO[0-9]+_FUNCTION' )
121+ lights2_new_param(new_param_name : string | undefined ) {
122+ if (new_param_name ) {
123+ // reset any other parameter using lights2 to undefined
124+ for (const old_param of this .servo_params ) {
125+ if (old_param .name === new_param_name ) {
126+ continue
127+ }
128+ if (old_param .value === Lights .Lights2 ) {
129+ // set the old parameter to DISABLED
130+ mavlink2rest .setParam (old_param .name , Lights .DISABLED , autopilot_data .system_id )
131+ }
132+ }
133+ mavlink2rest .setParam (new_param_name , Lights .Lights2 , autopilot_data .system_id )
134+ }
86135 },
87- lights1_param(): Parameter | undefined {
88- return this .servo_params .filter ((param ) => param .value === Lights .Lights1 )[0 ]
136+ },
137+ mounted() {
138+ this .lights1_new_param = this .lights1_param ?.name
139+ this .lights2_new_param = this .lights2_param ?.name
140+ this .steps_new_value = this .light_steps ?.value ?? 0
141+ },
142+ methods: {
143+ friendlyName(param : Parameter ): string {
144+ return ` ${param .name .replace (' SERVO' , ' Servo ' ).replace (' _FUNCTION' , ' ' )} (${printParam (param )}) `
89145 },
90- lights2_param(): Parameter | undefined {
91- return this .servo_params .filter ((param ) => param .value === Lights .Lights2 )[0 ]
146+ setSteps() {
147+ const new_value = Math .min (Math .max (this .steps_new_value , 1 ), 10 )
148+ this .$nextTick (() => {
149+ this .steps_new_value = new_value
150+ })
151+ console .log (' setting steps to' , new_value )
152+ mavlink2rest .setParam (' JS_LIGHTS_STEPS' , new_value , autopilot_data .system_id )
92153 },
93154 },
94155}
0 commit comments