Режим переключения (Toggle Mode)


Данный режим переключает состояние заданного выходного контакта ST.

st_set_toggle 01

В режиме переключения доступны следующие команды:

Комаеда Sub-команда Описание
set mode output toggle set mode: toggle
div sec set unit: second
ms set unit: millisecond
us set unit: microsecond
output od open-drain
pp push-pull
low output LOW
high output HIGH
dev uio0 #pin set output device and pin
invert 0 not invert output
1 invert output
count [T1] ... [T8] set output timing parameters
delay [D] set delay before output signal
repc [N] set repeat count
trigger from st# set trigger target: st0 ~ st7
php set trigger target: none
reset - reset
get state get current state
repc get remaining repeat count
start - start
stop - stop

Установка выхода

Sub-команды (подкоманды) "set output" в режиме подключения следующие:

Sub-команда Синтаксис
set output pin pid_ioctl($pid, "set output dev uio0 0"); // pin 0 of uio0
open-drain pid_ioctl($pid, "set output od");
push-pull pid_ioctl($pid, "set output pp");
output HIGH pid_ioctl($pid, "set output high");
output LOW pid_ioctl($pid, "set output low");
invert output pid_ioctl($pid, "set output invert 1"); // inverted output
pid_ioctl($pid, "set output invert 0"); // normal output

Все выходные подкоманды выполняются сразу после выполнения каждой командной строки.

Настройка задержки

Данная команда предназначена для задержки перед тем, как PHPoC выведет сигнал. Еденица задержки зависит от устройства, которое устанавливается командой "set div".

Команда Синтаксис
set delay pid_ioctl($pid, "set delay D");

Установить счетчик повторов

Данная команда предназначена для установки количества повторений на выходе. Вы можете установить любые зачения от нуля до 1 миллиарда для счетчика повторений N. Если вы не укажите N, то по умолчанию N будет равен нулю. Установка этого значения на ноль означает максимальное количество повторений (1 миллиард).

Команда Синтаксис
set repc pid_ioctl($pid, "set repc N");

Установка значения счетчика

Данная команда предназначена для определения времени выходного сигнала. В режиме переключения (toggle mode) действительное число значений счета колеблется от 1 до 8-ми. Как использовать данную команду:

Команда Синтаксис
set count pid_ioctl($pid, "set count T1 T2 … T8");

Доступные для счетчиков значения в режиме переключения следующие:

Юнит Доступные значения для счета (10㎲ ~ полчаса)
Микросекунда 10 ~ 1,800,000,000
Миллисекунда 1 ~ 1,800,000
Секунда 1 ~ 1,800

На приведенной ниже схеме показана форма сигнала в случае установки только одного значения T1 с задержкой D.

st_set_toggle 02

st_set_toggle 03

Если вы задали 2 значения или больше, каждое значение подсчета будет использоваться по порядку. Когда количество повторений больше числа отсчетов установок, то значения счетчика снова будут использованы из первого значения счета. Например, форма сигнала установки - это 3 значения счета (T1, T2 и T3) с 4-мя повторными отсчетами (включая задержку D), которые выглядят следующим образом:

st_set_toggle 04

Установка триггера (Trigger)

Данная команда используется, когда вы хотите синхронизировать время начала ST с другим ST. Целью триггера должно быть одно из устройств ST.

Цель Синтаксис
ST(st0/1…) pid_ioctl($pid, "set trigger from st0");
php pid_ioctl($pid, "set trigger from php");

Значением по умолчанию для цели триггера является "php"(без цели).

Получение счетчика повторов

Команда "get repc" предназначена для чтения оставшегося количества повторов, которые будут выполнены.

Команда Синтаксис
get repc pid_ioctl($pid, "get repc");

Пример режима переключения (Toggle Mode)

Режим Toggle переключает выходные сигналы.

Пример режима переключения

$pid = pid_open("/mmap/st0");               // open ST 0
pid_ioctl($pid, "set div sec");             // set unit: second
pid_ioctl($pid, "set mode output toggle");  // set mode: toggle
pid_ioctl($pid, "set output dev uio0 0");   // set output device / pin: uio0 / 0
pid_ioctl($pid, "set repc 1");              // set repeat count: 1
pid_ioctl($pid, "set count 1");             // set count: T1 only
pid_ioctl($pid, "start");                   // start ST
while(pid_ioctl($pid, "get state"));
pid_close($pid);

Значение "set count" - это количество времени между стартом ST и сигналом переключения выхода. На схеме ниже показана форма сигнала вышеприведенного примера.

st_set_toggle 05

Пример повторяющего режима переключения

$pid = pid_open("/mmap/st0");               // open ST 0
pid_ioctl($pid, "set div sec");             // set unit: second
pid_ioctl($pid, "set mode output toggle");  // set mode: toggle
pid_ioctl($pid, "set output dev uio0 0");   // set output device / pin: uio0 / 0
pid_ioctl($pid, "set repc 3");              // set repeat count: 3
pid_ioctl($pid, "set count 1 2 1");         // set count values: 1, 2 and 1
pid_ioctl($pid, "start");                   // start ST
while(pid_ioctl($pid, "get state"));
pid_close($pid);

В приведенном выше примере заданы 3 значения счетчика (T1, T2 и T3), а это 1, 2 и 1 секунды. Форма сигнала следующая:

st_set_toggle 06