Страница 1 из 1

музыкальный пинг

Добавлено: 04 сен 2020, 19:35
Sertik
Один кусочек большого скрипта Чупакабры натолкнул меня на эту маленькую идею:

Код: Выделить всё

   :local jobid [:execute script={/ping 8.8.8.8 count=5}]
# playing music while running ping
    :while ([:len [/system script job find .id=$jobid ]] > 0) do={
 :beep frequency=300 length=494ms;
:delay 300ms;
:beep frequency=600 length=494ms;
:delay 300ms;
:beep frequency=900 length=494ms;
:delay 300ms; }
Пока выполняется пинг играет микромелодия.

А можно наоборот:

Код: Выделить всё

   :local jobid [:execute script={:beep frequency=300 length=494ms;
:delay 300ms;
:beep frequency=600 length=494ms;
:delay 300ms;
:beep frequency=900 length=494ms;
:delay 300ms;}]
# ping is performed while the melody is playing
    :while ([:len [/system script job find .id=$jobid ]] > 0) do={
/ping 8.8.8.8 
}
Мелодия играет пока выполняется пинг ... :-)

В скрипте интересна строка /system script job find .id= опять показывающая недокументированную возможность РОС, а именно наличия некоего id (внутреннего номера) у выполняющихся скриптов (в /system script job).
Точнее .id есть у всех списков, но он бесполезен, как правило, в скриптах, так как по нему ничего нельзя взять - это внутренний идентификатов, используемый РОС и, например, циклом :foreich.
Однако, проверить, что список не пустой, по идентификатору можно.

Можно использовать этот прием при создании своих скриптов - пока выполняется скрипт в фоне (или если фоновый скрипт выполняется), то делается что-нибудь ...