Получение состояний


Команда get предназначена дял получения состояний шагового двигателя.

Получение состояний работы

Команда state - это состояние работы шагового двигателя.

"get state"

Возвращаемые значения данной команды выглядят следубщий образом:

значение состояние
0 stopped
1 control locked
otherwise running
<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(115200);

$sid = 1;
spc_request_dev($sid, "set mode 4");
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set speed 400");
spc_request_dev($sid, "set accel 800");
spc_request_dev($sid, "set rsnc 120 250");

$state = 0;
spc_request_dev($sid, "move 400");
while($state = (int)spc_request_dev($sid, "get state"))
{
  echo "state: $state\r\n";
  usleep(200000);
}
echo "state: $state\r\n";
?>
state: 2
state: 2
state: 2
state: 2
state: 2
state: 2
state: 2
state: 0

Получение позиций счетчика

Команда pos предназначена для получния текущей позиции счетчика шагового двигателя.

"get pos"

<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(115200);

$pos = -400;
$sid = 1;
spc_request_dev($sid, "set mode 4");
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set speed 400");
spc_request_dev($sid, "set accel 800");
spc_request_dev($sid, "set rsnc 120 250");
spc_request_dev($sid, "set pos $pos");

spc_request_dev($sid, "goto 400");
while((int)spc_request_dev($sid, "get state"))
{
    $pos = (int)spc_request_dev($sid, "get pos");
  echo "position: $pos\r\n";
  usleep(200000);
}
?>
position: -400
position: -376
position: -317
position: -235
position: -153
position: -70
position: 12
position: 94
position: 175
position: 258
position: 336
position: 391

Получение состояния цифровых входных портов

Команда eio get предназначена для получения состояния цифровых входных портов.

"eio get (p) input"

Аргумент p означает ID(0 ~ 3) цифровых входных портов. Возвращаемые значения этой команды следующие:

значение состояние
0 LOW
1 HIGH (по умолчанию)
<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(115200);

$sid = 1;
while(1)
{
    echo spc_request_dev($sid, "eio get 0 input");
    echo spc_request_dev($sid, "eio get 1 input");
    echo spc_request_dev($sid, "eio get 2 input");
    echo spc_request_dev($sid, "eio get 3 input");

    echo "\r\n";
    sleep(1);
}
?>
1111  
0110  
...omitted...