среда, 26 сентября 2018 г.

Шлюз UDP<->COM и UDP-терминалка

Шлюз:
https://yadi.sk/d/5IIu5YigTVr6aQ

Терминалка (client.exe):
https://yadi.sk/d/ihZWrln1KGOYbA




Шлюз встает на прослушку портов 501 и 502. В порт 501 посылаем пакет:

const CMD_OPEN = 11;

      CMD_CLOSE = 12;
type
  PCommandPkt = ^TCommandPkt;
  TCommandPkt = packed record
    pktid:   word;
    command: word;
    port:    word;
    speed:   Cardinal;

  end;

command = CMD_OPEN - открыть COM-порт с номером port и скоростью speed;
command = CMD_CLOSE - закрыть COM-порт.

В порт 502 шлем данные. Ответку из COM-порта также выпихивает в порт 502.

Терминлка.
Ест команды из консоли. Первая команда help.
Три режима работы: ascii, hex, bin.
В ascii передает строку как есть. В hex парсит строку как байтовые hex-ы.
В режиме bin парсит строку как набор чисел. При этом различает:
b - Byte;
w - WORD;
i - Cardinal.
Чтобы послать в шлюз пакет на открытие COM7 @ 115200:
w1 w11 w7 i115200