scron-mini API ПродуктыНа заказГде купить? О нас
scron-mini API  
Версия 1.0
Планировщик задач
Часы и календарь, 10 задач, 4 канала вкл/выкл, 1 ШИМ канал, 1 UART   Для разработчиков

Введение

Планировщик задач scron-mini предназначен для управления внешними устройствами с периодичностью в заданное время, день, месяц и день недели.

Планировщик задач scron-mini может быть использован совместно с другими модулями управления/мониторинга. Данный документ содержит информацию для разрабочиков устройств и программ, совместимых с модулем scron-mini.

Информация представленная в данном документе относится к версии, указанной вверху этой страницы, в шапке документа.

Управление модулем scron-mini осуществляется через UART (разъем UART0). Параметры UART: 9600/8-N-1.

Управление происходит посредством передаваемых символьных команд. Максимальная длина строки - 64 символа. Строка должна завершаться управляющим символом \r (0x0D) или \n (0x0A). После получения строки, scron-mini переводит строку последовательностью управляющих символов \r\n (0x0D 0x0A), читает полученную строку и выполняет команду, после чего, если включена опция LOG ON, выводит текущие дату и время.

Во избежание переполнения буфера, рекомендуется между передачами строк выдерживать паузу.

На команды планировщик отвечает строками, заканчивающимися символами \r\n (0x0D 0x0A). Строка ответа “OK” уведомляет об успешном выполнении команды.

Команды управления планировщиком scron-mini.

? - вывести краткую информацию о командах и планировщике.

Пример выполнения команды:

?
Scron-mini. Version 1.0
Maximum jobs:10. Periferials:UART0, PWM0, OUT<0..3>
Use:HELP, ?, ADD, DEL, LIST, LOG, OFF, ON, PWM0, SET, STATUS, TIME, UART0

ADD min hour dom mon dow command - добавить задачу.

Пример выполнения команды, добавить задачу, включающую канал номер 3 на 10 секунд каждый час с 8 по 17 час в 0 минут по рабочим дням (с понедельника по пятницу):

ADD 0 8-17 * * 1-5 ON 3 T=10
Job 1: 0 8-17 * * 1-5 ON 3 T=10
OK

CALIB[RATE] TEMP [ON|OFF|<-40..85>] - Команды термокоррекции. Без параметров - просмотр установок термокоррекции.

CALIBRATE TEMP - просмотр установок термокоррекции.

CALIBRATE TEMP ON - включить термокоррекцию.

CALIBRATE TEMP OFF - выключить термокоррекцию.

CALIB[RATE] TEMP <-40..85> - калибровать термодатчик, указав текущую температуру.

Пример выполнения команды:

CALIBRATE TEMP 27.0
OK

CALIB[RATE] [TIME <ccc>] - калибровать ход часов (без параметров - просмотреть текущие настройки калибровки). Параметр <ccc> - секунд в месяц, в диапазоне -163..327.

Пример выполнения команды:

CALIBRATE TIME -9
OK

CONFIG - показать настройки.

Пример выполнения команды:

CONFIG
Maximum jobs: 10
String size: 64
PRINT LOG ON
TIME MONITOR ON
TIME CALIBRATION: 30
AUTO TIME CALIBRATION ON
CALIBRATION TEMPERATURE: 25

DATE - вывести текущую дату и день недели, год выводится в четырехзначном формате, включающим век.

Пример выполнения команды:

DATE
10.04.2016 Su 09:28:10

DEL id|ALL- удалить задачу id или ALL - удалить все задачи.

Пример выполнения команды:

DEL 1
OK

HELP [ADD | DEL | SET [TIME | DATE] | PWM | ON | TIME] - вывести синтаксис команд, если указана команда из перечисленных,  то только  об этой команде.

Пример выполнения команды:

HELP
Use:ADD m h dom mon dow command
Use:DEL <job id>|ALL
Use:SET TIME hh:mm[:ss]
Use:SET DATE dd.mm.yy[yy]
Use:CALIB[RATE] TIME <-163..327>
Use:PWM0 [SOFT] <0..255> [T=<0..65535>]
Use:ON|OFF <0..3>|ALL [T=<0..65535>]
Use:TIME [MONITOR [ON [SEC]|OFF]]

LAST SET - вывести дату и время предыдущего выполнения команды установки времени или даты. Удобно использовать при калибровке часов для расчета времени коррекции.

Пример выполнения команды:

LAST SET
Last set:18.07.2016 11:50:10

LIST - выести список задач.

Пример выполнения команды:

LIST
Job 0: 0 8-17 * * 1-5 ON 3 T=10
Job 1: 30 21 * * * PWM0 SOFT 128 T=7200
Jobs found: 2

LOG [ON | OFF] - включить/выключить вывод информации о выполнении задач (по-умолчанию включено)

Пример выполнения команды:

LOG ON
OK

RESET [DEFAULTS] - перезапуск планировщика. Параметр DEFAULTS - сброс всех настроек (действие аналогично нажатию кнопки reset при включении). Не рекомендуется производить сброс без крайней необходимости. Перед сбросом настроек рекомендуется запросить (CALIB TIME) и запомнить настройку калибровки часов. После сброса необходимо произвести калибровку термодатчика и восстановить запомненное значение калибровки часов.

SET DATE dd.mm.yy[yy] - установить текущую дату. Если год указан в двухзначном формате, то к нему прибавляется 2000.

Пример выполнения команды:

SET DATE 31.12.19
OK

Примечание: контроль корректности введенной даты отсутствует. Например, планировщик позволит ввести дату 30.02.16 или 31.04.2016, но дальнейшая работа календаря будет некорректной

SET TIME hh:mm[:ss] - установить текущее время, если секунды не указаны, то секунды устанавливаются в 0 сек.

Пример выполнения команды:

SET TIME 23:59
OK

STATUS [<0..3> | PWM0]вывести текущее состояние каналов (для включенных так же оставшееся время, если задано), если канал не указан, то состояние всех каналов.

Пример выполнения команды:

STATUS
OUT0:ON 9150 sec
OUT1:ON
OUT2:OFF
OUT3:OFF
PWM0:255

TIME - вывести текущие дату и время.

Пример выполнения команды:

TIME
10.04.16 Su 09:28:10

Если перед датой имеется символ "!", рекомендуется сверить текущие время и дату.

TIME MONITOR [ON [SEC]|OFF]] - включить/отключить опцию монитора.

TIME MONITOR ON - включить вывод текущей даты и времени каждую минуту (по-умолчанию включено).

TIME MONITOR ON SEC - включить вывод текущей даты и времени каждую секунду.

TIME MONITOR OFF - выключить вывод текущей даты каждую минуту/секунду.

После выполнения команды TIME MONITOR выводится текущее состояние опции. Возможно подключение к UART0 внешнего UART-монитора, т.о. на нем будут отображаться выполненные задачи (при LOG ON) и текущие дата и время (при TIME MONITOR ON).

Пример выполнения команды:

TIME MONITOR ON SEC
OK
TIME MONITOR ON SEC

Команды управления каналами/портами.

Команды можно выполнять как в задачах так и с консоли в интерактивном режиме.

При выполнении команды задачи в интерактивном режиме, scron-mini не выдает никакой ответ об успешном выполнении. При выполнении команды из задачи, если включена опция LOG ON, выполненная задача выводится в строке вида hh:mm id:command, где hh:mm - текущее время, id -  номер задачи, command - запущенная команда.

Пример вывода о выполнении команды из задачи:

22:30 2:ON 3 T=3600

Команды выполняются последовательно в порядке возрастания. В случае коллизий, выполняется последняя команда. Например: Если выполнить команду ON 1 T=3600, а через минуту выполнить команду ON 1 T=120, то вывод 1 отключится через 120 секунд.

OFF [<номер вывода> | ALL] - выключить вывод <номер вывода> или все выводы (если указан параметр ALL, кроме PWM0)

Пример выполнения команды:

OFF 3

ON [<номер вывода> | ALL] [T=<время в секундах>] - включить вывод <номер вывода> или все выводы (если указан параметр ALL, кроме PWM0), если указан параметр T, то по прошествии указанного времени <время в секундах> канал выключить.

Пример выполнения команды:

ON 1 T=3600

По завершении выполнения задачи, при LOG ON, выводится строка об отключении.

Пример:

23:53:41 OFF 0

PWM0 [SOFT] <заполняемость> [T=<время в секундах>] - включить канал PWM0 с указанной заполяемостью 0..255, если указан параметр T, то по прошествии указанного времени <время в секундах> канал выключить. Если указан параметр SOFT - переключение будет происходить плавно.

Пример выполнения команды:

PWM0 SOFT 255 T=30

По завершении выполнения задачи, при LOG ON, выводится строка об отключении.

Пример:

10:06:19 PWM0 0

<время в секундах> - от 0 до 65535, максимальное значение 65535 соответствует 18 часам  12 минутам и 15 секундам. Если необходимо включить на более длительный срок, рекомендуется использовать две задачи отдельно, на включение и на выключение.

STROBE <номер вывода> T=<время в миллисекундах> - включить вывод <номер вывода> на <время в миллисекундах> от 10 до 999.

Пример выполнения команды:

STROBE 2 T=200

UART0 <любая строка> - выводит строку в UART0.

Пример вывести в UART0 строку "RELAY1 ON”:

UART0 RELAY1 ON

В строке можно задавать hex-коды в формате 0xFF.

Например, передать в UART0 строку "ABC":

UART0 0x410x420x43

Например, передать в UART0 последовательность байт в шестнадцатирчном формате FF 25 01 26 EE:

UART0 0xFF0x250x010x260xEE