Автономный режим

Siril может работать как с графическим интерфейсом пользователя (GUI), так и с интерфейсом командной строки (CLI), который даже не требует наличия дисплея. Он может обрабатывать изображения для других программ на удаленных или встроенных компьютерах, используя либо сценарии, либо генерируемые в реальном времени операции, называемые командами. Возможности автономного режима Siril на самом деле такие же, как и у доступных команд. Их более сотни, что позволяет автоматически выполнять предварительную обработку и фотометрический анализ.

Команды также можно использовать в графической пользовательском интерфейсе Siril, либо из встроенной командной строки в нижней части панели управления, либо с помощью сценариев. Сценарий — это просто текстовый файл, содержащий список команд. Перед тем, как двигаться дальше, рекомендуется прочитать страницу сценарии.

В автономном режиме команды можно выполнять либо путем передачи скрипта для запуска, либо с помощью параметра командной строки ``-s -``использовать в качестве сценария стандартный ввод программы и записывать в него команды, или используя другие именованные каналы.

Вот пример кода bash, вызывающего Siril в автономном режиме, который создает мастер-кадр шума считывания и возвращает значение уровня его шума на консоль красным цветом:

#!/bin/bash
# bash commands to prepare files

initdir=$(pwd)

######## Set your own variables #############
SCRIPTS_DIRECTORY=$initdir
SIRIL_PATH=siril-cli
#############################################

# Removing process folder if exists #
rm -rf $SCRIPTS_DIRECTORY/process

echo "Running siril bash script in $initdir"
output=$($SIRIL_PATH -d $SCRIPTS_DIRECTORY -s - <<ENDSIRIL

############################################
#
# Example of script that create a master-bias
# and print in red the noise of the image
#
############################################

requires 1.0.0

# Convert Bias Frames to .fit files
cd biases
convert bias -out=../process
cd ../process

# Stack Bias Frames to bias_stacked.fit
stack bias rej 3 3 -nonorm -out=master-bias
cd ../..

close
ENDSIRIL
)

log_line=$(echo "$output" | grep -o "log: Background noise value.*")
echo -e "\e[31m$log_line\e[0m"

echo done Siril part

Поток команд (Канал/Pipe)

Этот режим был введен в Siril 0.9.10. Команды можно отправлять через именованный канал, а журналы и статус можно получать через другой. Режим активируется с помощью аргумента командной строки -p.

Протокол довольно прост: Siril получает команды и выводит некоторые обновления. Только команды, помеченные как скриптовые, могут использоваться с этой системой. Всякий раз, когда закрывается канал ввода команд или дается команда отмены, выполняемая команда останавливается, как если бы была нажата кнопка остановки в графическом интерфейсе. Каналы называются siril_command.in и siril_command.out и доступны в /tmp в системах на базе Unix. Начиная с версии 1.2.0, пути каналов можно настраивать с помощью опций -r и -w, что позволяет внешним программам создавать их перед запуском Siril, обычно с помощью команды mkfifo. Также в 1.2.0 появилась новая команда ping, которая просто возвращает статус, указывающий, готов ли siril обработать команду или ещё занят.

Выходные данные Siril на канале представляют собой поток текста в одну строку, отформатированный следующим образом:

  • ready выводится при запуске, указывая на то, что siril готов обрабатывать команды

  • log:, за которым следует сообщение журнала

  • status: verb [subject], где verb (действие) может быть либо starting (запуск), successful (успешное завершение), error (произошла ошибка) или exit (выход) (сообщение о выходе пока не реализовано). Subject — это текущее имя команды, за исключением exit, которое указывает на то, что Siril пережил фатальную ошибку и должен выйти.

  • progress: value% является эквивалентом индикатора выполнения, он периодически отправляет проценты, а иногда и 0% в конце обработки в качестве информации о простое.