Время подключения: Создание клиентов и серверов TCP
Хотя RAiV был разработан как автономное устройство, вы можете захотеть подключить его к другим устройствам. В этом посте мы опишем, как вы можете создавать как клиентские, так и серверные приложения TCP, используя Модуль qCU_Net Python из нашего пакета SDK для Python.
Во время реализации модуля qCU_Net, мы использовали собственный модуль сокета python. Таким образом, вы также можете реализовать свой собственный пользовательский коммуникационный модуль без использования нашего Python SDK.
Введение
Модуль qCU_Net Python был разработан для простоты и гибкости. Он использует прототип сообщения с 4-байтовым заголовком и полезной нагрузкой JSON:
Для ваших пользовательских приложений вы можете преобразовать ваши структуры данных Python (например, списки и словари) в строку json и установить для нее значение Полезная нагрузка JSON
В наших примерах кода на Python мы использовали следующие конфигурации проводной сети RAiV и сетевого интерфейса ПК:
| IP | 192.168.10.55 |
| Netmask | 255.255.255.0 |
| Gateway | 192.168.10.1 |
| IP | 192.168.10.2 |
| Netmask | 255.255.255.0 |
| Gateway | 192.168.10.1 |
RAiV как TCP-клиент
Подготовьте и загрузите свой код на Python
Используя модуль qCU_Net, вы можете отправить TCP-сообщение со следующими строками кода:
import qCU_Net
def main():
print("**** TCP Client ****")
# Define Payload of the TCP message
payload = {
"text": "Hello Net Comm"
}
# Send the Payload (the message header is computed inside the function)
qCU_Net.send_data_to_server("192.168.10.2", 12345, payload)
if __name__ == "__main__":
main()
Скопируйте приведенный выше код и сохраните его в файле user_main.py. Затем загрузите файл в RAiV, как описано в нашем предыдущем посте.
Для серверного приложения на python мы использовали пример реализации TCP-сервера из наш репозиторий на Github и запустите его на ПК.
В режиме реального времени
Как только после проверки user_main.py файл завершен, файл python запущен. Вы можете проверить вывод с консоли и/или с сервера образцов на стороне ПК.
Предупреждение: Если нет TCP-сервера или сетевого подключения к серверу, на выходе консоли отображается сообщение об ошибке интерпретатора python
RAiV как TCP-сервер
Подготовьте и загрузите свой код на Python
Создание TCP-сервера в RAiV также просто с помощью модуля qCU_Net. Единственное дополнение - это ваш пользовательский json_handler. Поскольку в сообщениях qCU_Net используется полезная нагрузка json, сервер должен иметь функцию Python для анализа входящей полезной нагрузки.
Если на TCP-сервер не передается обработчик json, по умолчанию модуль qCU_Net печатает входящую строку json.
Полный код TCP-сервера пример обработчика json приведен ниже:
# Module for TCP communication
import qCU_Net
# Sample implementation of a json payload handler
def sample_json_handler(client_socket, json_payload, client_address):
print(f"Custom handler called for client {client_address}")
print(f"Received payload: {json_payload}")
def main():
print("**** TCP Server ****")
# Start the TCP server with sample json handler
qCU_Net.start_tcp_server(host='192.168.10.55', port=12345, json_handler=sample_json_handler)
if __name__ == "__main__":
main()
Скопируйте приведенный выше код и сохраните его в user_main.py файл. Затем загрузите файл в RAiV, как описано в нашем предыдущее сообщение
Для клиентского приложения на python мы использовали пример реализации TCP-клиента из нашего репозитория на Github и запустите его на ПК.
Оперативное действие
Как только проверка файла user_main.py была завершена, запускается файл python. Вы можете проверить вывод на консоль на наличие входящих сообщений.
Что дальше?
Чтобы сделать снимок вашего первого стереоизображения
Сделайте снимок: Сделайте снимок вашего первого стереоизображенияПроверьте наш пакет SDK для Python
RAiV Python SDKПроверьте наш Репозиторий На Github Для Получения Примеров Кодов:
Наш Репозиторий на Github