Форум » » Уважаемые Форумчане, помогите с TCP/IP client » Ответить

Уважаемые Форумчане, помогите с TCP/IP client

Kelor: Всех приветствую! Я новичок в программировании. Поэтому сильно не пинайте. Есть задача, которую в данный момент решаю. Есть Kramer VP-729 который по Telnet команды принимает только с компьютера. Также есть Cypress CMSI-8D8DS который также по Telnet принимает команды только с компьютера. В программе сделал следующее: Добавил на порты контроллера CP3, интерфейсы TCP IP/Client двух устройств, Kramer и Cypress. Прописал им адреса и создал сигнал TX$ на входе TCP IP/Client. Скомпилировал и отправил программу. Через Simpl Debugger на сигнал TX$ хотел подать команду p0 которая говорит выключить коммутатор. И соответственно ничего не происходит. С telnet с компьютера все превосходно отправляется. Прошу Вас помогите что не так делаю. Может модуль какой то нужно сделать. Дело в том что я новичок а делать нужно по работе. Прошел первый курс обучения, но такого там не было. Приходится самому разбираться. Это только часть. Того что нужно сделать. Прошу помогите пожалуйста. Может примеры есть у Вас. Желательно без SIMPL+, потому как его я незнаю.

Ответов - 18

Игорь K.: Kelor, у вас, вероятнее всего нет символов окончания строки. При управлении с ПК (сеанс Telnet) вы видите только собственно команду, а эти символы перевода строки добавляются при нажатии Enter. Полностью строка, в итоге, будет условно выглядеть так: <command><перевод строки> В вашем случае нужно подавать и команду и перевод строки, т.к. у Crestron нет кнопки Enter. Вот так: p0\x0D\x0A Есть еще вариант: p0\x0D Надеюсь, это поможет решить текущую и предстоящие головоломки.

Kelor: Спасибо Игорь Вам. Буду пробовать завтра. Я кстати пробовал подавать команды на Biamp без ихнего модуля через Дебаггер. У меня также ничего не вышло. Пример команды в телнете вводил Device RecallPresetid 1001. C компьютера получалось отправить команду. А вот с крестрона нет. В дебагере я вводил Device\x20RecallPresetid\x201001\x0d\x0a и ничего не выходило. также пробовал Device RecallPresetid 1001\x0d\x0a и Device RecallPresetid 1001\x0a. И только когда я взял модуль ихний biamp Tesira у меня что-то получилось отправить. Ведь я так понимаю в дебагере можно отправлять команды напрямую в устройство. Верно?

Игорь K.: Да, можно напрямую отправлять команды. Рабочая команда вызова пресета 1001 для старых аудиопроцессоров Biamp (Audia, Nexia) при управлении по LAN: RECALL 0 PRESET 1001\n \n - сокращенная форма перевода строки \x0D\x0A \x20 в качестве пробела вводить не обязательно, захламляет.


Kelor: Так вот Игорь понимаете в Biamp Tesira не получалось отправить без ихнего модуля. Я тут встретил на форуме как Вы помогали человеку с JVC и говорили про Heartbeat с каким то интервалом например 5 секунд. Как это осуществляется на символе Serial i/O ? Вот тут не могло быть тоже самое. Потому что взяв готовый модуль. Пресеты работали. А напрямую команды не воспринимал. Часть ихнего модуля на SIMPL+ написана. Что я не понимаю. А настраивать мне придется и lifesize и Bosch и Epiphan. А у меня даже не получается справиться с этими устройствами. Завтра попробую. Создам новый проект, создам TCP IP/Client пропишу адрес и создам сигнал TX$. Если получится отправить из дебагера команды, значит дело сдвинется.

Игорь K.: У Tesira для запуска обмена данными необходимо отправить целый массив данных, это делает тот самый модуль. Это отдельная история. Heartbeat тут ни при чем.

Kelor: А из Telnet почему тогда работает простой командой. Или это при помощи Wireshark смотреть нужно?

Игорь K.: О работе с Telnet пояснял выше. Wireshark не понадобится, протоколы обмена, в нашем случае, Kramer & Biamp хорошо документированы.

Kelor: Игорь, Добрый Вам вечер! Сегодня был на объекте, и смог наладить управление Kramer и другими устройствами. Спасибо за подсказку. Подскажите пожалуйста: Epiphan управляется через HTTP. Правильно ли я понимаю, что в SIMPL нужно создать TCP IP/ Client с портом 80. И отправлять также команды через Serial I/O ? Или же тут что-то другое нужно использовать?

Игорь K.: Эта канадская штука Epiphan управляется через RS232. Через переходник USB-Serial.

Kelor: А в документации говорят что можно и по HTTP отправлять команды. Был ли у Вас опыт управления Epiphan vgadvi-recorder.

Kelor: Вот такого вида можно отправить команду через Serial I/O wget --http-user=admin --http-passwd=pass123 http://192.30.23.45/admin/set_params.cgi?rec_ enabled=on Или же там другое что то нужно.

Kelor: Подсмотрел на форуме, как Вы уже говорили про авторизацию по HTTP. В LifeSize Room 220I я сегодня уже делал авторизацию правда по телнету. Приходил логин, отдавал логин, приходил пароль, пароль отдавал. И дальше авторизация пройдена. И ждет команд. А в Epiphan что-то вроде этого же нужно сделать ? Просто порт я так понимаю указать нужно 80. Верно?

Игорь K.: Управляйте как получается, как удобно именно вам.

Вячеслав: Kelor пишет: wget --http-user=admin --http-passwd=pass123 http://192.30.23.45/admin/set_params.cgi?rec_ enabled=on Это команда работает только из приложения wget и ничего общего с реальным видом команды не имеет. Посмотрите потом на неё в WireShark и почувствуйте разницу. Управление по http это гораздо более сложный вариант чем управление по 232 и требует достаточного опыта основанного на чужих реализациях такого типа управления. Если есть проблемы с пониманием делиметра, то http управление лучше пока отложить. Тем более есть вероятность что serial i/o с этой задачей не справится (например из за session id и т.п.) или справится достаточно топорно (т.е. любой новый параметр команды потребует создание уникальной последовательности сграбленной с Wireshark вместе с шифрованием и расчетом длины) Вот telnet это сетевой аналог 232 и если есть такая возможность управления, то лучше использовать её.

DmitriiP: Вы определились что вам надо от Epiphan в конечном итоге? Только управление set_params.cgi или ещё и текущие параметры/состяния get_params.cgi? Если второе, то лучше сразу забудьте идею HTTP и смотрите в сторону RS232. даже если вы разберётесь с GET /admin/channel<N>/(set/get)_params.cgi?key=value и решите вопрос с Authorization ещё и без SIMPL+, у вас получится чтото очень запутанное и огромное.

Игорь K.: Если нет времени заниматься, могу выложить свой отлаженный модуль. Управляет всеми режимами, следит за основными параметрами, остатком дискового пространства и тд.

Kelor: Вячеслав спасибо Вам за ответ. Но отложить я не имею права. Это объект, который скоро необходимо будет сдавать. Можно конечно просто оставить кнопку красную позволяющую включить запись и выключить. А все остальное кто из эксплуатации будет, сам настроит из веб интерфейса. Игорь Вам отдельное спасибо. В понедельник постараюсь решить вопрос, что требуется от этого Epiphan.

Игорь K.: Забирайте работоспособный модуль для Epiphan: Epiphan Recorder Serial Control Module Подключение по RS232, через переходник USB. Скорость на ваш выбор.



полная версия страницы