PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 3
stari40k Отправлено: 20 Октября, 2010 - 09:48:42 • Тема: Работа с Com портом. • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 12492
Забыл отписаться.
Используя dio данная задача легко реализуется.
Привожу простой пример.
CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. function mt(){
  3.         list($usec,$sec)=explode(' ',microtime());
  4.         return ((float)$usec+(float)$sec);
  5. }
  6. $now = $this->mt();
  7. $end = $now + .1;
  8. $result = '';
  9.      while ($now < $end) {
  10.         $result .= dio_read($tty,1);
  11.         $now = time();
  12.    }
  13.  

Дальше можно делать все вообще иначе. Например ожидать ответа 1-2мс если нет -повторить запрос, если ответ пришел считывать по одному байту и и проверять контрольную сумму. Что собственно сейчас уже и реализовано.
Пример привел для наглядности, и последующих кодеров на PHP. Еще раз всем спасибо за написаные ответы, удачного кодинга.
stari40k Отправлено: 18 Октября, 2010 - 13:00:51 • Тема: Работа с Com портом. • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 12492
Ch_chov спасибо за ответ, а как насчет dio ?
stari40k Отправлено: 18 Октября, 2010 - 09:13:58 • Тема: Работа с Com портом. • Форум: Операционная система и системные вызовы

Ответов: 8
Просмотров: 12492
Добрый день Уважаемый All.
В связи с нестандартной задачей, столкнулся с проблемой чтения из ком порта.
Задача состоит в следующем - организовать работу Сом порта в асинхронном режиме, т.е. написал в него - послушал, если тихо еще раз написал, если ответили отработал и т.д.. Проблема возникает при чтении из порта, в момент когда от него ничего не приходит, fread($tty,1) просто ждет, ждет и ждет. Можно как-то ограничить не по количеству считанных символов, а по времени считывания например в 10мс?
Да и вообще может кто-то пробовал делать, что-то подобное на PHP?

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB