C # Delphi ComPort Связь - PullRequest
       5

C # Delphi ComPort Связь

2 голосов
/ 26 апреля 2011

Я использую Visual Studio 2008 (C #) или Delphi CodeGear и создал программу, которая обменивается данными с устройством последовательного порта.Устройство отправляет мне данные в шестнадцатеричном формате, и я их читаю. Реальный пример - 40 32 00 D2 01 A6 B2 Первый байт «40» - это номер устройства.Второй байт «32» - это какая кнопка устройства была нажата.и т.д.«2» (например).Если кто-то знает, как это сделать, я был бы очень благодарен за помощь. Спасибо

1 Ответ

0 голосов
/ 26 апреля 2011

Я нашел этот код и использую его:

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 нажата и т. Д. ....

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