Данный режим переключает состояние заданного выходного контакта ST.
В режиме переключения доступны следующие команды:
Комаеда | 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.
Если вы задали 2 значения или больше, каждое значение подсчета будет использоваться по порядку. Когда количество повторений больше числа отсчетов установок, то значения счетчика снова будут использованы из первого значения счета. Например, форма сигнала установки - это 3 значения счета (T1, T2 и T3) с 4-мя повторными отсчетами (включая задержку D), которые выглядят следующим образом:
Данная команда используется, когда вы хотите синхронизировать время начала 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 переключает выходные сигналы.
$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 и сигналом переключения выхода. На схеме ниже показана форма сигнала вышеприведенного примера.
$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 секунды. Форма сигнала следующая: