Я использую Visual Studio 2008 (С#) или Delphi CodeGear и создаю программу, которая связывается с устройством последовательного COM-порта. Устройство отправит мне данные в шестнадцатеричном формате, и я прочитал его. Пример: 40 32 00 D2 01 A6 B2 Первый байт "40" - это номер устройства. Второй байт "32" - это кнопка кнопки устройства. и т.д....
Мой вопрос в том, как смотреть байты отдельно. Когда я получаю 40 32 00 D2 01 A6 B2 я должен сказать, что это устройство "1" (например), и на нем была нажата кнопка "2" (например). Если кто-то знает, как это сделать, я был бы очень благодарен за помощь. Спасибо.
Я нашел этот код и использую его:
void comPort_DataReceived(object sender, SerialDataReceivedEventArgs e)
{
//determine the mode the user selected (binary/string)
switch (CurrentTransmissionType)
{
//user chose string
case TransmissionType.Text:
//read data waiting in the buffer
string msg = comPort.ReadExisting();
//display the data to the user
DisplayData(MessageType.Incoming, msg + "\n");
break;
//user chose binary
case TransmissionType.Hex:
//retrieve number of bytes in the buffer
int bytes = comPort.BytesToRead;
//create a byte array to hold the awaiting data
byte[] comBuffer = new byte[bytes];
//read the data and store it
comPort.Read(comBuffer, 0, bytes);
//display the data to the user
DisplayData(MessageType.Incoming, ByteToHex(comBuffer) + "\n");
break;
default:
//read data waiting in the buffer
string str = comPort.ReadExisting();
//display the data to the user
DisplayData(MessageType.Incoming, str + "\n");
break;
}
}
И я получаю это "40 32 00 D2 01 A6 B2" (формат HEX). Я хочу, чтобы этот первый байт означал, что это устройство является номером 1, второй байт означает, что нажата кнопка N номера и т.д.....
{}
над редактором или Ctrl+K