Рейтинг:
0
OriginalGriff
Хм.
Private Sub cmdSend_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdStop.Click
Dim sendArray() As Byte = New Byte() {&H01, &H0, &H0, &H0, &H0, &H0, &H0, &H0}
ComPort.Write(stopArray, 0, 8)
End Sub
Ты имел в виду, чтобы отправить
sendArray
вместо
stopArray
?:
ComPort.Write(sendArray, 0, 8)
Member 12292743
да я отредактировал вопрос
Member 12292743
субмарина cmdSend выглядит нормально?
OriginalGriff
Мы не можем сказать-у нас нет такой же аппаратной установки, как у вас.
Что происходит, когда вы его вызываете?
Вы смотрели на сайт производителей?
Member 12292743
ладно, я понимаю. Однако как я могу идти о написании функции, чтобы получить шестигранник?
OriginalGriff
Получите шестигранный проста: вы просто используете метод чтения по примеру тех последовательный порт :
https://msdn.microsoft.com/en-us/library/ms143549(v=против 110). aspx
Но ... помните, что последовательные порты работают медленно: 9600 бод - это всего лишь около 1000 байт в секунду, так что если Вы читаете слишком рано, то можете получить не все байты, которые ожидаете.
Лучше использовать событие DataReceived и "наращивать" байты, которые вы получаете, пока не получите "полное" сообщение - вы, вероятно, получите одно событие на байт, а не одно на сообщение.
Member 12292743
потрясающе, еще один вопрос. Как сделать так, чтобы данные, полученные из порта, были записаны в текстовое поле?
OriginalGriff
Это немного сложнее, так как это зависит от того, как именно вы получаете данные. Если вы используете событие DataReceived - а вы должны это сделать, - то оно не выполняется в вашем обычном потоке, а это означает, что вы не можете напрямую получить доступ к каким-либо элементам управления формами.
Найдите в Google "Thread Invoke VB", и он должен дать вам примеры того, как это сделать.
Member 12292743
Так сработает ли это??
Система Импорта.ИО.Порты
Форма Публичного Класса 1
Dim ComPort As New SerialPort ("COM1", 9600, четность.Нет, 8, 1)
Частная суб методе form1_load(как byval отправителя как системы.Объект, бывал е как система.EventArgs) Обрабатывает MyBase. Load
Вести.Открыть()
Конец Подводной Лодки
Private Sub cmdSend_Click(ByVal sender As System.Объект, бывал е как система.EventArgs) обрабатывает cmdSend.Щелчок
Дим sendArray() как байт = новый байт() {&амп;Н01, &ампер;х0, &ампер;х0, &ампер;х0, &ампер;х0, &ампер;х0, &ампер;х0, &ампер;н0}
ComPort. Write(sendArray, 0, 8)
Конец Подводной Лодки
Публичная Функция Читать (
буфер в виде байта(),
смещение как целое число,
считать как целое число
) Как Целое Число
Конец Класса
OriginalGriff
Он вообще компилируется? Потому что я так не думаю... :смеяться:
Member 12292743
да, ха-ха, я сомневаюсь в этом, не скомпилировал. Что мне нужно добавить/изменить?
OriginalGriff
Никогда не спрашивайте людей" сработает ли это? " еще до того, как вы начнете писать код! Все, что вы будете делать, это раздражать их, поскольку мы должны предположить, что вы не собираетесь делать это сами и хотите, чтобы мы сделали это для вас...и это не то, для чего мы здесь.