Как мне управлять встроенным программным обеспечением устройства в C #, используя HTTP? - PullRequest
4 голосов
/ 16 сентября 2010

У меня есть аппаратное обеспечение со встроенным пользовательским элементом управления, доступ к которому осуществляется путем ввода IP-адреса устройства в веб-браузере.Устройство подключено напрямую к моему компьютеру через Ethernet-кабель x-over и статические IP-адреса.Мне нужно интегрировать управление устройством в мое приложение C #.

Я думал о том, чтобы использовать анализатор пакетов для отслеживания трафика между моим компьютером и устройством, одновременно играя с элементами управления устройства в моем веб-браузере.Затем выясните, какие пакеты, отправляемые моим ПК, соответствуют элементам управления, которые я использую в то время.Затем я могу создать класс пакетов HTTP или TCP в своем приложении C # и отправить их на устройство с помощью класса Socket.

Однако у меня не так много опыта работы с сетевыми протоколами, поэтому, когда я использую Wireshark дляконтролировать трафик между моим ПК и устройством, я не уверен, с чего начать, когда выясняю, какие пакеты и что делают.У кого-нибудь есть какие-либо идеи?Я открыт для всего.Спасибо !!

РЕДАКТИРОВАТЬ: Трудно точно объяснить, что такое мое устройство, но в основном это сложный датчик, который обычно используется в промышленных приложениях, поэтому он может использовать Modbus, с которым я в меру знаком.Знаете ли вы, как я могу узнать, какой протокол используется при проверке пакетов?Я заметил (используя Wireshark), что пакеты, отправляемые с моего компьютера на устройство, выполняются в виде 1 HTTP-пакета, затем 5 TCP-пакетов и повторяют эту же последовательность, пока элемент управления открыт в моем браузере.Есть ли какие-либо ресурсы, которые могли бы дать мне лучшее понимание того, что происходит?

Ответы [ 2 ]

3 голосов
/ 16 сентября 2010

Если это управление браузером, моей первой мыслью было бы изучить веб-страницы, которые устройство отправляет в ваш браузер, и посмотреть, что браузер должен делать, когда вы манипулируете элементами управления - это кажется намного проще, чем возиться с Wireshark.

Есть ли что-то, чего мне не хватает, что делает это невозможным (например, система управления на основе Flash)? Если это делается только с помощью HTML или Javascript, а также сообщений HTML POST или чего-то более сложного, такого как Ajax, то разработать интерфейс будет относительно легко.

2 голосов
/ 16 сентября 2010

В зависимости от устройства оно будет использовать вариант протокола Modbus (http://en.wikipedia.org/wiki/Modbus) или что-то непонятное и частное.

Лучше всего продолжать посылать ту же командуустройство снова и снова, пока вы не сможете распознать сходство в пакетах.

Если оно является частным, то, вероятно, это будет что-то простое, например пара команда / данные или, возможно, большой двоичный объект XML.будет сжат или закодирован, но если вы не взломаете игру или банкомат, это маловероятно.

Часто спрашивает у производителя устройства, могут ли они дать вам спецификацию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...