PHP к серийному со странными скоростями в бодах - PullRequest
4 голосов
/ 08 июня 2010

Я пытаюсь использовать PHP для отправки текста на светодиодную табличку, чтобы можно было отправлять на него номера заявок в службу поддержки.Сам знак является частью работы;это прибыло из eBay и плохо сделано почти без документации.Немного поигравшись с этим, я смог выяснить, каким образом он ожидает, что материал будет отправлен на него, и что скорость передачи составляет 28800. Я уже знаю, как общаться с такими вещами, используя PHP, но я незнать, как изменить скорость передачи данных на что-то нестандартное.Я пробовал другие скорости в бодах и не смог заставить его работать.

Ответы [ 3 ]

2 голосов
/ 09 июня 2010

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

Вы сможете выполнить его, если запустите setserial следующим образом перед подключением для инициализации порта (либо в сценариях инициализации сервера, либо в вашем PHP ... хотя и не уверены, что это будет хорошей идеей):

/bin/setserial /dev/ttyS1 spd_cust baud_base 115200 divisor 4

Вот что происходит в команде:

  • Опция spd_cust указывает ОС устанавливать скорость на собственный делитель, когда приложение запрашивает 38400.
  • / dev / ttyS1 - последовательный порт. Вы измените это на что угодно.
  • baud_base - это число, которое будет использоваться делителем 4

115200/4 = 28800 ... скорость, которая вам нужна: -)

В вашем PHP-коде вы подключитесь на 38400, что кажется странным, но из-за setserial указанный вами порт будет работать на 28800

1 голос
/ 08 июня 2010

Для окон попробуйте

"mode " . $device . " BAUD=" . $baud

Для Linux попробуйте

"stty -F " . $device . " " . $baud

Я думаю, что это правильные команды для отправки

0 голосов
/ 08 июня 2010

Проверьте эти две ссылки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...