Member 3725115 Ответов: 2

Как отправить коммуникационный блок на последовательный/comm порт


Привет,
Я хотел работать над проектом связи устройств с использованием последовательного порта связи(RS232).Нужно отправить коммуникационный блок в формате ниже. Не уверен, что получу MACID и как отправить его часть команды.

Символ BOF ->0XC0
MACID -> ????
Команда ->0x0001
Символ EOF -> 0XC1

Что я уже пробовал:

Попробовал использовать класс SerialPort и открыл порт. Но не знаю, как получить MACID текущего ПК и отправить его вместе с коммуникационным блоком ниже:
byte[] bytestosend = { 0xC0, MACID, 0x0001, 0xC1 };
serialPort.Write(bytestosend, 0, bytestosend.Длина);

2 Ответов

Рейтинг:
19

CPallini

Я полагаю, вы имеете в виду MAC адрес.
Один MAC адрес есть 6 байты длиной, вы можете вставить такие байты в свой буфер. Смотрите, как его извлечь: Надежный способ получения MAC - адреса машины в C# - переполнение стека[^].


Рейтинг:
11

OriginalGriff

Хотя CPallini прав насчет MAC - адресов, я не уверен, что они имеют какое-либо отношение к вашему требованию-MAC-адрес имеет отношение только к локальной сети Wi-Fi-соединения и не имеет ничего общего с последовательными данными. ПК может счастливо существовать без сетевого адаптера любого типа (и, следовательно, без MAC-адреса), но общаться по последовательному каналу связи без проблем.

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