Вопрос о типе данных последовательного порта
Я написал простую программу для связи через Bluetooth с Arduino. Программа открывает последовательный порт, подключается к порту Bluetooth на Arduino и посылает одиночные символы (x,y,z)при нажатии клавиш. Поскольку Arduino выполняет функции, определенные клавишами, эта часть работает нормально.
Я хотел, чтобы плата возвращала символ клавиши, которая была нажата для доставки команды, поэтому у меня есть Arduino Serial.write back, что она, по-видимому, и делает. Я читаю данные с помощью этого кода:
Private Sub SerialPort1_DataReceived(ByVal sender As System.Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) _ Handles SerialPort1.DataReceived If SerialPort1.IsOpen Then Try readBuffer = SerialPort1.ReadLine() 'data to UI thread Me.Invoke(New EventHandler(AddressOf DoUpdate)) Catch ex As Exception MsgBox("read " & ex.Message) End Try End If End Sub ' update received string in UI Public Sub DoUpdate(ByVal sender As Object, ByVal e As System.EventArgs) ' rtbMonitor.Text = SerialPort1.BytesToRead If readBuffer.Contains("y") Then rtbMonitor.Text = "contains the letter y" 'this is the result Else rtbMonitor.Text = readBuffer End If If readBuffer.Equals("y") Then rtbMonitor2.Text = "the letter y" Else rtbMonitor2.Text = readBuffer ' y is the result End If
Что я уже пробовал:
Я хочу использовать возвращаемый символ для некоторых других функций, однако тип данных ускользает от меня. С другой стороны, я не уверен в том, что посылается обратно из Arduino. Я думал, что если я прочитаю буфер, как указано выше, то будет возвращена простая строка "y". По-видимому, буфер содержит "y", но не равен"y". Y кажется текстом (строкой); он не читается как символ. Итак, вопрос в том, что находится в буфере (readBuffer), кроме "y", и как я могу его прочитать? Данных отправляется очень мало. Просто нажатие клавиши каждые несколько секунд.
Richard Deeming
Поэтому отладьте свой код и проверьте значение переменной. Это строка длины 1
, содержащий ровно одну строчную букву "y", без пробелов или других символов?
У нас нет доступа к вашей системе, поэтому мы не можем отлаживать ваш код для вас.
Sleeper 11888211
Спасибо. Я постараюсь прочитать его байт за байтом и посмотреть, что это даст. Я решил, что есть и другие невидимые персонажи. Указатели всегда приветствуются для этого любителя.