Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Пн Июл 11 2005 12:00 Заголовок сообщения: Связка с LAN (C++ Builder) |
|
|
Господа, если кто поможет буду очень благодарен.
Ситуация такая: имеем контрольный процесор некой системы управления (АСУ), он управляет например видеокамерой, задача в том что бы распечатать координаты осей координат камеры (положение), я даю запрос на камеру (тут своя програмная среда) она дает мне отбивку на процесор, с процессора я этот string сигнал швыряю на выход Ethernet`a который уходит в комп, здесь все просто.
Теперь основное, мне нужно на компе поймать этот сигнал и послать на печать на принтер, мне посоветовали реализовать это на C++, ну вот ток 1 проблема ну не шарю я в нем, скажите мне как поймать Rx сигнал от обычного Ethernet`a и записать например в буфер, для последущей обработки и отправки на печать.
Описал так полно, только потому что может кто знает другие решения ?
зы: могу вывести сигнал не на Ethernet а на RS-232 _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Пн Июл 11 2005 12:49 Заголовок сообщения: Канал передачи...(+) |
|
|
Как я понял - Вам нужна инфа по каналу связи.
Из вашей мессаги не понятно - что Вы юзаете на "железном" уровне. Если идёт речь об Ethernet - то не понятно как Вы его юзаете со стороны МК. Если на азме - то на сях либо на C++ его реализовать - Вам не составит труда (кхм. как мне икаеться). Примеров море. Если на сях - то из старой доброй среды Юниксоидов. Си плас плас отличаеться ОЧЕНЬ МАЛЫМ от сей (если Вы следовали рекомендациям альма матэр от "Ричи"). Если Вы не знаете как юзать металл со всех сторон - то тут не так всё просто. Со стороны МК Вам придёться либо самому реализовывать стэк протоколов, либо юзать готовый (например фирма "точка опоры" - предлогает чьё то решение. Вы можете зайти на её сайт и порыться в данном направлении.). Если самому - то "минимальным набором" являеться протокол ARP (служба идентификации IP адресса), протокол ICMP (служба эхо ответа. хотя в принцепе это не обязаловка), протокол IP (сборка или дробление пакетов на данном уровне), далее протокол который будете юзать. Мона UDP, мона TCP. Можно оба - на любителя.
Если идёт речь об COM связи - то тут в первую очередь необходимо учитывать совпадение синхронизации МК-PC на выбранной скорости передачи. Обычно подстраиваеться частота кварца со стороны МК. Как парвило отсюда и скорость обмена. Ну старт-стоп и прочая лабуда - это не просто а очень просто . Примеров как с одной так и с другой стороны - не проблема. Да, есть маленьчкий нюанс... как правило со стороны МК буфер приёма в один байт. И если Ваш обработчик не совсем лаконичен, то это надо учитывать при передачи со стороны PC. Иначе писюк с его буфферизацией (да даже и без неё), будет закидывать МК шквалом данных. В добавок если учесть, что на стороне МК могут быть чётко квантованные куски кода по обмену (ну например с 1Wire) с перефирией - то необходимо разруливать и эти весчи.
с уважением
(круглый)
ЗЫ
Со стороны компа - думаю просче, т.к. примеров море. На любой вкус и цвет. Под любую OS и язык программирования (очень мало ожидаемых проблем) _________________ (круглый) |
|
Вернуться к началу |
|
|
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Пн Июл 11 2005 15:24 Заголовок сообщения: |
|
|
Брр, вы обо мне слишком хорошего мнения
Так тогда попробую выразиьтся по другому. Со стороны процессора управления, програмирование осуществляется за счет отдельно купленного языка програмирования (SIMPL+) это далеко не асма и не Си, что то среднее между этим + дельфи В общем пишется драйвер, протокол, заливается в процессор, там же присутствует связующий код с веб интерфейсом управления... (ну эт отдельная тема). При посылке команды в процеесор, девайс дает ответ, а я могу поймать его в буфер и отправить на любой порт (опять же с помощью SIMPL+) на процессоре у меня есть тока RS-232, IRDA, Ethernet, в идеале надо послать его именно на Ethernet (специфика удаленного управления) далее, я подал сигнал на выход из процессора, он пришел в комп, больше комп ничего по этому проводу не принимает, только "отбивку" от девайса, мне надо связаться с портом компа взять эту "отбивку" и запихать в буфер ) вот собственно и все ) _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Пн Июл 11 2005 17:40 Заголовок сообщения: Ethernet..(+) |
|
|
Возможно, если где то не так понял - поправите...
Я так понял, что в Вашей задаче катит именно сетевое решение. Необходимо послать ответ на комп. Есть встроенный язык на МК и его Вы юзаете.
Мне так каеться, что нужно определиться с возможностями реализации на МК и что нужно в идеале на PC. По реализации на МК - необходимо понять какой уровень связи есть возможность заюзать.
Возможны следующие варианты (тут я немного гадаю - лучше почитать доку на Вашу систему. Гадание строяться на "магическом" понимании Ethernet. Хотя на уровне железа, Ethernet как правило не есть стэк Ethernet-IP-TCP-HTTP-WEB)...
1) UDP
2) TCP/IP
3) HTTP
я так понимаю, что первые два - потребуют реализации на стороне писюка доп. программулины. А вот HTTP - это интересней. Но, Вы будете должны ожидать(либо запрашивать) на PC данную инфу - из самого броузера.
думаю если у Вас есть "связующий код с веб интерфейсом управления" то возможно там есть нечто скрывающееся под названием код ответа ? Либо сам ответ. Ну и переделать клиента под приём этих данных. Вариантов связи на данном уровне - не мало. Язык думаю HTTP (если идёт речь о вэбе).
Интерфейсы ниже HTTP думаю мало интересны - т.к. это потребует использования программулины лежащей рядом с Вашим вэб проводником. Что на мой взгляд - есть кривизна. Скорее всего разработчики вэб интерфейса закладывали возможность формирования ответа по HTTP. Вполне возможно, что Вам достаточно изменить только код клиента работающего в броузере.
с уважением
(круглый)
ЗЫ
Простите, если закидал инфой по началу. Сам щаз занимаюсь нечто похожим - учу пром. установку полноценному вэб сервису под новое, более скоростное железо. Зациклен на своих траблах |
|
Вернуться к началу |
|
|
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Вт Июл 12 2005 09:53 Заголовок сообщения: |
|
|
Такс, все именно так как Вы сказали.
Мне нужно послать ответ на комп в любом случае. Да я должен извиниться не описав возможностей "коробочки" протокол там используется исключительно TCP/IP как работает веб интерфейс я понятия не имею, к сожелению средство его разработки, позваляет исключительно работать с объектами (рисовать кнопочки) в результате при компиляции получается что то вроде флэша, тока работающего исключительно на TCP/IP. Собственно этот интерфейс воспринимает ответный код девайса, так как Фидбэк (обратная связь) работает очень не плохо Ну вот мне именно этот сигнал и нужно поймать
Собственно из всего этого следует, что мне нужно создать клиентскую програмулину на машине к которой подключен процессор, которая будет обрабатывать TCP/IP протокол и выуживать от туда, то, что мне нужно.
Вопрос как ? _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Вт Июл 12 2005 11:27 Заголовок сообщения: TCP/IP |
|
|
Если нужно написать программу, отдельно стоящую на писюке (ещё раз повторюсь) - то нужно задействовать TCP/IP и запрос HTTP в виде текстовой последовательности. Выглядет приблизительно следующим образом.
1) Открываете TCP/IP соединение. Порт стандарт - адресс из настроек.
2) Посылаете стандартный броузеровский запрос типа GET (уровень HTTP).
3) Получаете стандартный ответ - типа 200 OK. И далее данные в зависимости от запроса (в запросе указываеться путь к загружаемому ресурсу).
Где почитать. Ищите, что то навроде "реализация интернет броузера". Там всё будет. Единственное придёться подстроиться под ваш конкретный "сервер". Возможны точки и нюансы настроек. Путь к ресурсам, строка запроса, тайм ауты, коды и форматы ответов. Всё это придёться либо из доки узнавать, либо потрошить клиентский код при запросе со стандартного броузера (правая клавиша мышильды, подменю просмотр скрипта). Да, постарайтесь сначала один в один содрать пачку запроса и добиться такого же ответа. Ну далее дело техники.
где то так.
с уважением
(круглый)
ЗЫ
Только ресурсы обычно встречал на си плас плас. Практически в любой книге. Возможно и на других языках покатит. В принцепе ничего такого нет. Если язык обеспечивает работу в TCP/IP соединении и обрабатывать строки - то справиться. Начните с книг по си плас плас, далее ищите на интересующий Вас язык с уклоном в реализацию вэб броузера.
ЗЫ ЗЫ
протоколы найдёте здесь
http://www.helloworld.ru/show.php?curraz=49
различные книги в электронном виде тут
http://ftp.anyhost.ru/books/www.krf.bsu.by/ _________________ (круглый) |
|
Вернуться к началу |
|
|
Zuravlov
Зарегистрирован: 12.07.2005 Сообщения: 1
|
Добавлено: Вт Июл 12 2005 11:50 Заголовок сообщения: COM или Ethernet |
|
|
Привет. Присоединюс к вашей дискусии. У меня была подобная задача, только работал я с весовыми системами LP15. Если есть и такой и такой интерфейс, значит скорее всего Ethernet реализован по средством сетевого блока с соединением с СОМ (т.е. через СОМ в сеть и далее сеть пользуется).
Если есть желание, и задача не реализована могу дать примерчик работы на Delphi, используя для связи стандартные компоненты. Интересует? |
|
Вернуться к началу |
|
|
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Вт Июл 12 2005 13:26 Заголовок сообщения: |
|
|
2 kolobok0:
Я согласен это вариант, но вот отлько ну не вижу я тут HTTP "серверу" эти запросы до лампочки, веб интерфейс хоть и грузиться но как и по каким протаколам он реализован совершенно не ясно, точно не HTTP
зы: спасибо за ссылки, я погрузился
2 Zuravlov:
Конечно интересует !
был бы жутко благодарен за пример исходников, либо ссылки на модули )
почта: smurov@rta.ru
Кстати а весы управлялись сами по себе или к ним процессор управления был подключен? _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
BLiN
Зарегистрирован: 23.05.2005 Сообщения: 23 Откуда: Донецк
|
Добавлено: Вт Июл 12 2005 15:25 Заголовок сообщения: |
|
|
Зравствуйте, очень интересная тема, если можно и мне вышлите пожалуйста исходники на Delphi? было бы интересно посмотреть как это вообще делается. И еще я наверное немного не в тему спрошу вобщем я где то слышал что еще можно такие задачи решать через звуковую карту... Может знаете? |
|
Вернуться к началу |
|
|
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Вт Июл 12 2005 16:06 Заголовок сообщения: |
|
|
2 BLiN
Если честно не вижу свзяи ) _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Вт Июл 12 2005 16:35 Заголовок сообщения: |
|
|
Смуров Алексей писал(а): | 2 kolobok0:
Я согласен это вариант, но вот отлько ну не вижу я тут HTTP "серверу" эти запросы до лампочки, веб интерфейс хоть и грузиться но как и по каким протаколам он реализован совершенно не ясно, точно не HTTP
|
1) По поводу LP15. Не плохие весы на 400 наименований. оперативно 30 или штук 40 - не помню. Грузяться и имеют возможность управления по ком порту. Выдают на печать штрих код. Код мона запрограммировать. В общем удачная штуковина в розничной торговле, возле прилавка с фруктами (Вы их там и найдёте во многих супермакетах Мсквы). Единственный минус - надо грузить изменение в ассортименте, вес тары, цену и прочую муть. Что ставит вопрос об оперативной передачи инфы. Тут либо топ-лап. Либо кабелюка (может не протащить по длине). Либо вот, как сказано выше - решение при помощи стандартных примочек COM-Ethernet. Один из первых поставщиков на наш рынок - это фирма СервисПлюс.
2) По поводу HTTP. Вопросы следующие...
а) Вы можете загрузить в интернет эксплорер странички с вашего девайса ? Как выглядет адресс девайса в IE ? Как происходит коннект писюка с ним ?
б) Вы рисуете "кнопочки" - далее какие манипуляции с ними происходят и каков конечный результат (имееться ввиду - нарисовали, а дальше что ? её передали. загрузили. отртранслировали ? или как ) ?
с уважением
(круглый) _________________ (круглый) |
|
Вернуться к началу |
|
|
Смуров Алексей
Зарегистрирован: 24.06.2005 Сообщения: 7 Откуда: Москва
|
Добавлено: Вт Июл 12 2005 17:18 Заголовок сообщения: |
|
|
2 kolobok0:
1) Спасиб, про весы понял, нашел в сети
2)
а)Да. Я гружу страницу управления в браузер. Гружу по http протоколу (эт до меня ток ща дошло ) адрес, это заранее прошитый в процесор IP, соединенние с процессором по обычной витой паре.
б) Интерфейс рисуется в отдельной программе, форма компилируется, потом загружается в процессор, как только она загрузилась, я набрав IP процессора могу получить к ней доступ. _________________ Волков бояться в лес не ходить ) |
|
Вернуться к началу |
|
|
kolobok0
Зарегистрирован: 22.04.2005 Сообщения: 253 Откуда: Мсква
|
Добавлено: Вт Июл 12 2005 18:57 Заголовок сообщения: |
|
|
ВОТ !
теперь когда она грузиться - посмотрите исходники (как минимум клиента) под самим броузером. Ну тут придёться немного ознакомиться с HTTP. Далее Вам нужно организовать TCP/IP соединение по указанному IP адрессу, на порт 80 (по умолчанию). Далее послать запрос типа GET и получить ответ.
Во !
Ышо совет. Хорошим подспорьем будет (на уровне контроля шапочки HTTP) любой вьювер сетевых пакетов. Вы их найдёте в сетке. на любой хакинг ру зайдите там они живут у меня кажеться Ethereal (что ли). Скачал, юзаю - проверяю свои и оригинальные пачки протоколов. Помогает. Правда то ближе к нижнему уровню.
ну где код пошукать я говорил уже.
точно встречал в тоооолстых книгах по C++ (что то типа "Visual C++ 6").
с уважением
(круглый) _________________ (круглый) |
|
Вернуться к началу |
|
|
TYLLlKAH
Зарегистрирован: 12.07.2005 Сообщения: 27 Откуда: Vidnoe
|
Добавлено: Ср Июл 13 2005 16:02 Заголовок сообщения: |
|
|
уважаемые зачем излбретать велосипед, Алексей качай Indy там реализовано много протоколов на основе TCP и UDP так что просто кидаешь два компонента на форму и наслаждаешься.
Конечно если организация обладает тока MSVS6 тогда напряжно, я так думаю, хорошо Indy сочетпется с Delphi7 - сам проверял и не раз. Есть реализации под Java. Так что рекомендую _________________ Чуваки языком молотить, не мешки ворочить |
|
Вернуться к началу |
|
|
|