mirror of
https://github.com/eworm-de/routeros-scripts.git
synced 2026-07-17 23:01:35 +00:00
mode-button{,-scheduler}: store to and get count from scheduler's comment
This commit is contained in:
parent
0e5a30d946
commit
198b088faa
2 changed files with 14 additions and 9 deletions
|
|
@ -35,12 +35,18 @@
|
||||||
/system/leds/set type=[ $IfThenElse ([ get $LED type ] = "on") "off" "on" ] $LED;
|
/system/leds/set type=[ $IfThenElse ([ get $LED type ] = "on") "off" "on" ] $LED;
|
||||||
}
|
}
|
||||||
|
|
||||||
:local Count ($ModeButton->"count");
|
:local Scheduler [ /system/scheduler/find where name="mode-button-scheduler" ];
|
||||||
|
|
||||||
|
:if ([ :len $Scheduler ] = 0) do={
|
||||||
|
$LogPrint error $ScriptName ("Scheduler does not exist.");
|
||||||
|
:set ExitOK true;
|
||||||
|
:error false;
|
||||||
|
}
|
||||||
|
|
||||||
|
:local Count ([ :deserialize from=json [ /system/scheduler/get $Scheduler comment ] ]->"count");
|
||||||
:local Code ($ModeButton->[ :tostr $Count ]);
|
:local Code ($ModeButton->[ :tostr $Count ]);
|
||||||
|
|
||||||
:set ($ModeButton->"count") 0;
|
/system/scheduler/remove $Scheduler;
|
||||||
:set ModeButtonScheduler;
|
|
||||||
/system/scheduler/remove [ find where name="mode-button-scheduler" ];
|
|
||||||
|
|
||||||
:if ([ :len $Code ] = 0) do={
|
:if ([ :len $Code ] = 0) do={
|
||||||
$LogPrint info $ScriptName ("No action defined for " . $Count . " mode-button presses.");
|
$LogPrint info $ScriptName ("No action defined for " . $Count . " mode-button presses.");
|
||||||
|
|
|
||||||
|
|
@ -15,21 +15,20 @@
|
||||||
do={ :error ("Global config and/or functions not ready."); }; } delay=500ms max=50;
|
do={ :error ("Global config and/or functions not ready."); }; } delay=500ms max=50;
|
||||||
:local ScriptName [ :jobname ];
|
:local ScriptName [ :jobname ];
|
||||||
|
|
||||||
:global ModeButton;
|
|
||||||
|
|
||||||
:global LogPrint;
|
:global LogPrint;
|
||||||
|
|
||||||
:set ($ModeButton->"count") ($ModeButton->"count" + 1);
|
|
||||||
|
|
||||||
:local Scheduler [ /system/scheduler/find where name="mode-button-scheduler" ];
|
:local Scheduler [ /system/scheduler/find where name="mode-button-scheduler" ];
|
||||||
|
|
||||||
:if ([ :len $Scheduler ] = 0) do={
|
:if ([ :len $Scheduler ] = 0) do={
|
||||||
$LogPrint info $ScriptName ("Creating scheduler mode-button-scheduler, counting presses...");
|
$LogPrint info $ScriptName ("Creating scheduler mode-button-scheduler, counting presses...");
|
||||||
/system/scheduler/add name="mode-button-scheduler" interval=3s \
|
/system/scheduler/add name="mode-button-scheduler" interval=3s \
|
||||||
|
comment=[ :serialize to=json ({ count=1 }) ] \
|
||||||
on-event="/system/script/run mode-button-scheduler;";
|
on-event="/system/script/run mode-button-scheduler;";
|
||||||
} else={
|
} else={
|
||||||
$LogPrint debug $ScriptName ("Updating scheduler mode-button-scheduler...");
|
$LogPrint debug $ScriptName ("Updating scheduler mode-button-scheduler...");
|
||||||
/system/scheduler/set $Scheduler start-time=[ /system/clock/get time ];
|
:local Presses (([ :deserialize from=json [ /system/scheduler/get $Scheduler comment ] ]->"count") + 1);
|
||||||
|
/system/scheduler/set $Scheduler start-time=[ /system/clock/get time ] \
|
||||||
|
comment=[ :serialize to=json ({ count=$Presses }) ];
|
||||||
}
|
}
|
||||||
} do={
|
} do={
|
||||||
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
:global ExitOnError; $ExitOnError [ :jobname ] $Err;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue