Управление контроллером TXT через веб страницу
Управление контроллером TXT через веб страницу
Можно ли отправить в ТХТ контроллер с веб страницы из формы команды на включения моторчиков или получить данные с енкодера?
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Управление контроллером TXT через веб страницу
Я перенёс вопрос в отдельную ветку
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Управление контроллером TXT через веб страницу
Добрый день!
Такую задачу можно решить разными способами:
1. На борту TXT уже имеется веб-сервер - civetweb. Он использует порт 80. Можно запустить еще один экземпляр на другом свободном порту и реализовать взаимодействие между браузером и входами/выходами TXT через CGI (C/C++/Python) .
2. Собрать приложение на C/C++, которое реализует все необходимые функции. В качестве встраиваемого веб-сервера можно использовать упомянутый ранее civetweb. Пример решения.
3. Написать приложение на языке Python, которое использует модуль http.server для взаимодействия с браузером и модуль ftrobopy для управления входами/выходами контроллера
4. Аналогично пункту 3, но с использованием языка программирования JavaScript и среды исполнения NodeJS
5. Аналогично пункту 3, но с использованием языка программирования Go.
Вам нужно готовое решение или вы хотите разобраться в технологии?
Re: Управление контроллером TXT через веб страницу
для управления входами/выходами, из закладки Тест контроллера, какой формат команды отправляет программа RoboPro?
Можно ли такие команды подать из формы веб страницы?
Я хотел самому разобраться, но все ссылки на английском.
Можно ли такие команды подать из формы веб страницы?
Я хотел самому разобраться, но все ссылки на английском.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Управление контроллером TXT через веб страницу
ROBO Pro в режиме "Тест контроллера" открывает TCP-соединение с сервером TxtControlMain, который выполняется на контроллере TXT, через порт 65000 и затем обменивается командами, описание которых можно найти в официальном репозитарии txt_demo_c_online fischertechnik.для управления входами/выходами, из закладки Тест контроллера, какой формат команды отправляет программа RoboPro?
Нет, такие команды нельзя отправить из формы веб страницы т.к. данные из формы отправляются на веб-сервер по протоколу HTTP, который отличается от указанного выше. Вам понадобится промежуточный узел на стороне TXT, который будет принимать команды по протоколу HTTP и переводить его в протокол, который понимает сервер TxtControlMain. Это решение можно сделать на языке Python, который есть в контроллере TXT.Можно ли такие команды подать из формы веб страницы?
Отлично! Буду рад помочь вам. Задавайте вопросы.Я хотел самому разобраться, но все ссылки на английском.
Re: Управление контроллером TXT через веб страницу
Добрый день!
UDP или сокеты можно использовать.(у меня практика на Делфи)
С уважением, Муаед.
UDP или сокеты можно использовать.(у меня практика на Делфи)
С уважением, Муаед.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Управление контроллером TXT через веб страницу
Добрый день!
Произвольный UDP пакет отправить из браузера в TXT не получится т.к. это не допускается браузером для обеспечения безопасности. Из браузера можно отправлять команды на TXT без перезагрузки страницы с помощью технологии AJAX в виде HTTP запросов к серверу.
- Mr.Kubikus
- Сотрудник ПАКПАК
- Сообщения: 1020
- Зарегистрирован: 22 окт 2010, 23:57
Re: Управление контроллером TXT через веб страницу
Я думаю, что платформа Делфи сейчас уже не актуальна для построения приложений с web-интерфейсом. Рекомендую рассмотреть Python как язык для разработки ПО для вашей задачи. Этот язык сейчас крайне популярен обучения основам программирования и подходит для быстрой сборки прототипов приложений и поддерживается контроллером TXT - у него на борту установлен Python 3.8. Вот пример на Питоне, который реализует примитивный веб-серевер:
Код: Выделить всё
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
Код: Выделить всё
python web-server.py
Код: Выделить всё
$ python web-server.py
serving at port 8008
192.168.7.1 - - [16/Dec/2021 12:14:28] "GET / HTTP/1.1" 200 -
192.168.7.1 - - [16/Dec/2021 12:14:35] "GET / HTTP/1.1" 200 -
Re: Управление контроллером TXT через веб страницу
Как из этой формы
передать данные на сервер
для управление роботом?
Код: Выделить всё
<form action="/cgi_bin/ssss.py" >
<input type="text" name="left"><br />
<input type="text" name="right"><br />
<p><input type="submit"></p>
</form>
Код: Выделить всё
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
Re: Управление контроллером TXT через веб страницу
обработчик
Html файл нормально запускается.
При отправке данных из формы возвращается текст исходника обработчика.
Где я допускаю ошибку?
Веб сервер не запускает *.py файлы.
Код: Выделить всё
#!/usr/bin/env python3
import cgi
our_form=cgi.FieldStorage()
in_name=our_form.getfirst("in_name","не задано")
in_comment=our_form.getfirst("in_comment","не задано")
print("Content-type: text/html")
print()
print(in_name)
print(in_comment)
При отправке данных из формы возвращается текст исходника обработчика.
Где я допускаю ошибку?
Веб сервер не запускает *.py файлы.