Помогите разобраться пожалуйста, ситуация следующая. Купил для пробы себе вот такой термостат с интерфейсом RS485\modbus http://ru.aliexpress.com/item/BHT-1000- ... dVersion=1. Прислали описание (см вложение). Вроде как все понятно.
Купил USB переходник на RS485. Скачал для теста программу ModBusPoll установил на Windows 7. Проверил - все работает: отправляю команду A0 10 00 00 00 00 00 15 получаю в ответ 50 10 00 12 10 00 16 0A 28 24 24 B7. Вроде бы все хорошо, ну думаю запущу все на Raspberry Pi.
Взял за основу скрипт на php с вашего сайта.
Код ниже
Код: Выделить всё
<?php
exec('stty -F /dev/ttyUSB0 cs8 2400 ignbrk -brkint -icrnl -imaxbel -opost -onlcr -isig -icanon -iexten -echo -echoe -echok -echoctl -echoke noflsh -ixon -crtscts');
// $fd = dio_open('/dev/ttyUSB0', O_RDWR | O_NOCTTY | O_NDELAY);
$fd = dio_open('/dev/ttyUSB0', O_RDWR );
// dio_fcntl($fd, F_SETFL, O_SYNC);
// dio_tcsetattr($fd, array(
// 'baud' => 2400,
// 'bits' => 8,
// 'stop' => 1,
// 'parity' => 0
// ));
dio_write($fd, "\xA0\x10\x00\x00\x00\x00\x00\x15");
// dio_write($fd, "\xA4\x10\x00\x00\x00\x00\x00\x11", 8); #turn off
// dio_write($fd, "\xA4\x10\x00\x10\x00\x00\x00\x11", 8); #turn on
print "writing ";
print "";
// usleep(4 * 1000);
$result = dio_read($fd);
print $result;
print "";
// var_dump($result);
?>
Код: Выделить всё
pi@raspberrypi /var/www $ php php.php
writing P
($$?pi@raspberrypi /var/www $
Куда дальше копать идеи кончались