@@ -13882,6 +13882,50 @@ def PLDNoParameters(self):
13882
13882
self.set_parameter('SIM_PLD_ENABLE', 1)
13883
13883
self.wait_statustext('Set SIM_PLD_LAT, SIM_PLD_LAT and SIM_PLD_ALT')
13884
13884
13885
+ def LuaParamSet(self):
13886
+ '''test param-set.lua applet'''
13887
+ self.install_applet_script_context("param-set.lua")
13888
+ self.set_parameters({
13889
+ 'SCR_ENABLE': 1,
13890
+ })
13891
+ self.reboot_sitl()
13892
+
13893
+ self.wait_ready_to_arm() # scripts will be ready by now!
13894
+ self.start_subtest("set RTL_ALT freely")
13895
+ self.set_parameter("RTL_ALT", 23)
13896
+ self.set_parameter("RTL_ALT", 28)
13897
+
13898
+ self.start_subtest("Unable to set DISARM_DELAY freely")
13899
+ self.context_push()
13900
+ self.context_collect('STATUSTEXT')
13901
+ old_disarm_delay_value = self.get_parameter('DISARM_DELAY')
13902
+ self.send_set_parameter_direct('DISARM_DELAY', 78)
13903
+ self.wait_statustext('param-set: param set denied (DISARM_DELAY)', check_context=True)
13904
+ self.assert_parameter_value('DISARM_DELAY', old_disarm_delay_value)
13905
+ self.context_pop()
13906
+
13907
+ self.start_subtest("Disabling applet via parameter should allow freely setting DISARM_DELAY")
13908
+ self.set_parameter("PARAM_SET_ENABLE", 0)
13909
+ self.set_parameter("DISARM_DELAY", 56)
13910
+
13911
+ self.start_subtest("Re-enabling applet via parameter should stop freely setting DISARM_DELAY")
13912
+ self.context_push()
13913
+ self.context_collect('STATUSTEXT')
13914
+ self.set_parameter("PARAM_SET_ENABLE", 1)
13915
+ old_disarm_delay_value = self.get_parameter('DISARM_DELAY')
13916
+ self.send_set_parameter_direct('DISARM_DELAY', 78)
13917
+ self.wait_statustext('param-set: param set denied (DISARM_DELAY)', check_context=True)
13918
+ self.assert_parameter_value('DISARM_DELAY', old_disarm_delay_value)
13919
+ self.context_pop()
13920
+
13921
+ self.start_subtest("Ensure that parameter values are persistent")
13922
+ self.set_parameter('DISARM_DELAY', 111)
13923
+ self.reboot_sitl()
13924
+ self.assert_parameter_value('DISARM_DELAY', 111)
13925
+
13926
+ # very bad things happen if we don't turn things off at the end..
13927
+ self.set_parameter("PARAM_SET_ENABLE", 0)
13928
+
13885
13929
def do_land(self):
13886
13930
self.change_mode('LAND')
13887
13931
self.wait_disarmed()
@@ -13896,6 +13940,7 @@ def tests2b(self): # this block currently around 9.5mins here
13896
13940
self.DynamicRpmNotchesRateThread,
13897
13941
self.PIDNotches,
13898
13942
self.StaticNotches,
13943
+ self.LuaParamSet,
13899
13944
self.RefindGPS,
13900
13945
Test(self.GyroFFT, attempts=1, speedup=8),
13901
13946
Test(self.GyroFFTHarmonic, attempts=4, speedup=8),
0 commit comments