[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Получение COM Port
CorePHP
Добрый день формучане! Я На форму первый раз, поэтому не знаю куда верно постить данную тему, если не тот раздел перенесите.

Задача следующая, есть устройство интерфейса RS 232 подключающееся через USB ( соотв определяетс ком порт ) нужно отправлять команды устройству.
Вообщем полная задача такая :
есть флеш приложение с помощью него будем управлять устройством, но по серчу на гугле стало понятно, что для этого надо использовать сервер. Толковых скриптов по пхп для работы с RS232 я не нашел ( может плохо искал ) , с другой стороны а вообще можно ли работать с клиентскими портами, или можно ловить только подключенные на апаче? Если можно, то покажите куда копать.

Заранее спасибо за ответы.



Спустя 1 час, 37 минут, 40 секунд (10.07.2012 - 14:41) kamanch написал(а):
Клинет-серверное приложение постороено на принципе:
Клиентская часть установлена на машине пользователя.
Серверная часть на сервере.
Клиент отправляет запрос серверу, сервер принимает эти данные, производит их обработку и возвращает клиенту ответ.
Т.е. у клиентской части нет никакого доступа к ресурсам сервера, у серверной части нет никакого доступа к ресурсам компьютера, на котором установлена клиентская часть.

Зачит, твое клиентское флеш приложение читает что-то с порта и отправляет это серверу. Серверный скрипт получает это, и ему абсолютно все равно, откуда клиент взял эти данные - из порта, из веб-формы или вообще по-телефону услышал smile.gif

Не помню автора поста, да простит он мне вольную интерпретацию его трактовки:

Технологию клиент-сервер можно сравнить с телефонным разговором:
В ролях:
Вася Клиентов (клиент, живет в советской квартире)
Петя Серверов (сервер, благородный сотрудник ЖЭКа)

Вася Клиентов обнаружил у себя в квартире, что вода течет из крана.
Он звонит Пете Серверову и сообщает ему (пошла передача данных) "У меня течет вода"
Петя серверов принял входные данные и открыл толстый мануал, де нашел, что делать, если течет вода (скрипт на сервере обработал входные данные) и говорит Васе Клиентову "Закрой кран" (клиент получил ответ от сервера на отправленные им раннее данные).
Вася Клиентов пошел и закрыл кран (клиент выполнил какие-то действия, в ависимости от полученного ответа на отправленные им данные)

Спустя 57 минут, 44 секунды (10.07.2012 - 15:39) Guest написал(а):
Ну это все понятно впринципе, однако клиентское приложение должно не получать, а отправлять команды устройству, но доступа из клиента к устройству нет. - поэтому и затык

Спустя 8 минут, 6 секунд (10.07.2012 - 15:47) kamanch написал(а):
Что значит нет доступа из клиента к устройству?
А у кого есть?

Вернее так... для управления устройством А программой В, этой программе В необходим доступ к устройству А.

А если нет доступа, так и управлять не получится.

Спустя 37 секунд (10.07.2012 - 15:47) Invis1ble написал(а):
Цитата
приложение должно не получать, а отправлять команды устройству

Цитата
доступа из клиента к устройству нет. - поэтому и затык

ну так php тут не поможет
более того, если нет доступа, то ничего не поможет, Ваш КО

Спустя 2 минуты, 15 секунд (10.07.2012 - 15:50) Guest написал(а):
Поэтому и думали, что может это делается как то подругому через сервер например.
Если посерчить предлогают http://www.gotoandlearnforum.com/viewtopic.php?t=23658 например, типа http сервер, из него можно к устройству коннектится, с другой стороны чем он отличаетсяот апаче? Значит и тут можно как то думалось мне

Спустя 29 минут, 34 секунды (10.07.2012 - 16:19) kamanch написал(а):
CorePHP
Ты путаешься просто в терминологии.
В приведенном тобой примере флеш - это не серверная сторона. Флеш работает в твоем браузере, на твоей машине, и вот браузер и есть в данном случае клиент, который, используюя флеш слушает / отсылает данные в порт.

Класический пример - веб-чат.
Твой браузер с флешем - это клиент. Он получает данные с оборудования (камера / микрофон), отправляет их серверу для обработки. Ты тянешь бегунок громкости, и уровень звука в твоих колонках изменяется - клиент отправил оборудованию команду.

Как я понял, тебе вообще сервер не нужен. Тебе нужно обычное десктопное приложение для управление оборудованием. Если оборудование отправляет / принимает данные через порт, то и вперед. PHP тут вообще ни при чем.
А если у оборудования порт доступен только на чтение, то тут хоть об стену лбом, никто не поможет, пока данный девайс не перепрограммируете.

Спустя 49 минут, 55 секунд (10.07.2012 - 17:09) Guest написал(а):
Как раз нужно чтобы работало именно в сети, десктоп не катит, иначе бы и вопросов не было используя AIR.

Вот опять же вы горите *Класический пример - веб-чат. * - это все хорошо, только с RS232 интерфейсами там не работают, там все просто камера и микрофон - это все и так есть во флеше на свободном доступе, а в нашем случае устртойство уникальное имеет свои определенные команды и есть спецификация.

Спустя 36 минут, 38 секунд (10.07.2012 - 17:46) kamanch написал(а):
То, что ты хочешь - это за областью php
Тебе нужно:
1. сервер (или клентская машина, с установленной серверной частью), к которому подключен девайс.
2. серверное ПО, управляющее девайсом через RS232
3. клиентское ПО, обменивающиеся с серверным ПО данными.

Звучит, как в анекдоте:
Застряла машина в болоте. Мужики и так и сяк.
Чукча говорит: Я знаю как, нужен трактор.

Но ты изначально толком не сформулировал, что ты хочешь smile.gif Так что ссори.

А рассуждения по пунктам 1, 2, 3 выходят за рамки данного форума.
Берем какой-нидь C# и ваяем на нем.



Спустя 8 минут, 14 секунд (10.07.2012 - 17:54) I++ написал(а):
Устройство использует стандартное подключение через COM? Или требуется особый драйвер для передачи данных на низком уровне?

Я имею ввиду, если напрямую подключиться к COM порту на котором весит устройство и отправить команду hello классическим методом, устройство ответит?

Если не ответит, драйвер писать никто не будет. В остальных же случаях, php поддерживает подключение по com, а чтобы завязать с флешем, использовать мини-сервер с libevent, для хай-лоад заюзая phpdaemon у которого из коробки есть http сервер для подобных вещей.

Было бы интересно посмотреть спецификацию этого устройства.

Цитата
То, что ты хочешь - это за областью php


Плохому танцору .... мешают laugh.gif

Свернутый текст
http://phpforum.ru/index.php?showtopic=60384&hl=android


Вообще если, устройство будет использоваться не монопольно, придется ваять мультиплексирование, промежуточные буферы, синхронизацию, очереди, и костыль на подобии мультикаста. dry.gif В данном случае при большом comrate, com порт окажется узким местом.

Спустя 47 минут, 30 секунд (10.07.2012 - 18:42) kamanch написал(а):
I++
А чеб тогда не на асме замутить?

Спустя 8 минут, 39 секунд (10.07.2012 - 18:50) Guest написал(а):
Цитата
Устройство использует стандартное подключение через COM? Или требуется особый драйвер для передачи данных на низком уровне?


Требуется драйвер - драйвер есть и написан.

Цитата
Я имею ввиду, если напрямую подключиться к COM порту на котором весит устройство и отправить команду hello классическим методом, устройство ответит?


Команды типа хелло туда не уйдут, там свои особые команды описанные при работе с устройством.
Но это даже не важно допустим там вместо хелло отправить w/w435d не важно, но как проверить то ответит оно или нет, сосбтсвенно с кодом вся и запарка, на серверной части я никогда не работал с устройствами

Такой момент, предидущий программист работающий с этим, делал веб чат - с чатом понятно, но под него работало так же устройство. К сожалению товарища найти невозможно, и соурсов нет, но при декомпиле swf видно, что использовался Cirrus RFTMP соединение и каким то раком передавались команды собственно ( декомпил выходит фиговый видимо обфускаторы были), щас пробую задать вопросы на адобе по циррусу

Спустя 52 минуты, 41 секунда (10.07.2012 - 19:43) I++ написал(а):
Cirrus ?

Ну тогда, на php форуме наврятли вам помогут. Вам бы на С форумы, кто под *nix софт писать умеет, сделает Вам костыль под ваше устройство.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.