Сокеты. PHP и микроконтроллер

Статус
Закрыто для дальнейших ответов.

zjiodeu

Active Member
Регистрация
24.07.2011
Сообщения
25
Здравствуйте, товарищи программисты) Пишу диплом в институте, практическая задача стоит таким образом:

Есть микроконтроллер Siemens , порты которого нужно периодически опрашивать для сбора статистических данных. Опрашивать думаю php-скриптом через сокеты.
К этому микроконтроллеру есть его родное ПО, которое это всё умеет. В результате реверса мы узнали протокол , по которому они общаются.

В сокетах пока не силён, поэтому хочу проконсультироваться:

Вообще реально ли такую задачу реализовать через php? Что нужно знать для её решения?
Буду признателен за полезные ссылки про сокеты, гугл пока не радует.
 

AngelGabriel

И имя мне - легион
Регистрация
23.11.2008
Сообщения
778
Вобще то я в таких делах не силен, но в голову приходят такие мысли.
Нафига сокеты если "нужно периодически опрашивать", а не держать коннект постоянно? Или вам нужно что-то вроди сервиса посредника между контроллером и веб-интерфейсом. Какой то запущенный сервис постоянно взаимодействует с контроллером и при каких то изменениям маякует клиенту.
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Есть микроконтроллер Siemens , порты которого нужно периодически опрашивать...
А че за порты то?

В общем случае делается как-то так:
Код:
$fp = fopen("com3", "r");
$data = fread($fp, 256); 
flose($fp);
Гуглить по словам "php serial port communication" и т.д.
 

zjiodeu

Active Member
Регистрация
24.07.2011
Сообщения
25
Какой то запущенный сервис постоянно взаимодействует с контроллером и при каких то изменениям маякует клиенту.
В точку.

[member=brevis],
Под портами я подразумеваю физические интерфейсы на контроллере.

Допустим я создаю рядовое подключение как-то так:
PHP:
$fp = @pfsockopen ($host, $port, &$errno, &$errstr);
В переменной $host я должен указать адрес устройства и протокол передачи. Загвоздка в том, как внедрить левый протокол)
Как я понял , для передачи данных по отличным от http протоколам, на сервере должны быть расположены(установлены) соответствующие библиотеки .dll, типа OpenSSL и т.д. И они куда-то инклудятся, посмею предположить - в php.ini.
Верно ли я рассуждаю?
 

brevis

Well-Known Member
Регистрация
10.08.2010
Сообщения
452
Я чего-то сразу подумал, что микроконтроллер подключается к COM-порту там, USB...

Ну тогда, раз говоришь, что узнали протокол -- ищи спецификацию и реализовывай на php. Может даже удастся найти реализацию на других языках и останется только перевести на php.

Как я понял , для передачи данных по отличным от http протоколам, на сервере должны быть расположены(установлены) соответствующие библиотеки .dll, типа OpenSSL и т.д. И они куда-то инклудятся, посмею предположить - в php.ini.
Верно ли я рассуждаю?
Вроде бы можно и без dll'ок. Просто в случае с ssl dll'ка делает за тебя всю черную работу -- ты пишешь обычный http-запрос, а dll'ка его шифрует.
 
Статус
Закрыто для дальнейших ответов.
Верх Низ