Pull to refresh

Протокол WIALON IPS работа через Python (Socket)

WIALON IPS протокол передачи данных по TPC или UDP данных на сервера от GURTAM. Сам я только начинающий программист. и для себя изучаю возможности языков программирования и сегодня хотел бы описать свой опыт работы с серверами WIALON через Socket на Python.

Пример довольно простой, но понятный и на его основе уже можно делать свои проекты и строить готовые устройства (Полученный опыт я использовал на ESP32). В примере. я довольно просто буду посылать данные и обмениваться ответами с сервером. Кстати протокол текстовый. Весит не мало и по этому не самый оптимальный. Есть три вида протокола. я же рассмотрю полный без CRC.

Сначала нам нужно под грузить наши модули. которые мы будем использовать для работы:

import sys
import socket
import time
import os

Теперь нам нужно создать socket:

sock = socket.socket()

Подключиться к серверу:

sock.connect(('nl2.gpsgsm.org',20332))

Теперь готовим строчку для отправки пакета:

timestr = '#L#imei;NA\r\n'

Отправляем пакет, важно знать, что все данные должны приходить и уходить в байтовом виде, поэтому их нужно кодировать и декодировать функцией:

sock.send(timestr.encode('utf-8'))

Ждем ответ и выводим его в консоль:

data = sock.recv(1024)
print(data)

Проделываем такое еще пару раз с разными форматами пакетов:

time.sleep(5)
timestr = '#P#\r\n' sock.send(timestr.encode('utf-8'))
data = sock.recv(1024)
print(data)

time.sleep(5)
timestr = '#D#NA;NA;5544.6025;N;03739.6834;E;100;100;70;12;0.8;F;F;;NA;qwe:1:200\r\n'
sock.send(timestr.encode('utf-8'))
data = sock.recv(1024)
print(data)

После отправки и получения пакетов не забываем закрывать сокет:

sock.close()

Вот довольно просто, можно на Python сделать программку. которая снимает все параметры работы с ПК и отправляет их на сервер для сбора статистики. Так же можно настроить отправку команд и выполнять их с сервера. Это моя первая статья. надеюсь она будет полезна большому кругу начинающих программистов.

Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.