Создание Последовательного порта в коде в VB.net

Добавьте эти строки непосредственно под вторым входом:

if (1 >= a <= 7): 
    gebruikt[a-1] += 1
else:
    print ("Invalid Index Number")
6
задан dsolimano 2 October 2012 в 04:07
поделиться

4 ответа

Если Вы хотите использовать события, удостоверяются, что Вы объявляете свой объект последовательного порта использование 'withevents'. Ниже примера позволит Вам соединяться с последовательным портом и сгенерирует событие с полученной строкой.

Imports System.Threading

Imports System.IO

Imports System.Text

Imports System.IO.Ports


Public Class clsBarcodeScanner

Public Event ScanDataRecieved(ByVal data As String)
WithEvents comPort As SerialPort

Public Sub Connect()
    Try
        comPort = My.Computer.Ports.OpenSerialPort("COM5", 9600)
    Catch
    End Try
End Sub

Public Sub Disconnect()

    If comPort IsNot Nothing AndAlso comPort.IsOpen Then
        comPort.Close()
    End If

End Sub

Private Sub comPort_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles comPort.DataReceived
    Dim str As String = ""
    If e.EventType = SerialData.Chars Then
        Do
            Dim bytecount As Integer = comPort.BytesToRead

            If bytecount = 0 Then
                Exit Do
            End If
            Dim byteBuffer(bytecount) As Byte


            comPort.Read(byteBuffer, 0, bytecount)
            str = str & System.Text.Encoding.ASCII.GetString(byteBuffer, 0, 1)

        Loop
    End If

    RaiseEvent ScanDataRecieved(str)

End Sub
End Class
7
ответ дан 10 December 2019 в 00:46
поделиться

Я нашел, что эта статья была довольно хороша.

Код, который я написал от него:

port = new System.IO.Ports.SerialPort(name, 4800, System.IO.Ports.Parity.None, 8, System.IO.Ports.StopBits.One);
port.DataReceived += new System.IO.Ports.SerialDataReceivedEventHandler(port_DataReceived);
port.Open();

void port_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)
{
    buffer = port.ReadLine();
    // process line
}

Извините это - C#, но...

Единственная проблема, которую я имею с ним, - то, если порт отбрасывается, в то время как это открыто, приложение, кажется, перестало работать на выходе.

2
ответ дан 10 December 2019 в 00:46
поделиться

Спасибо всем за Вашу справку, особенно ответ об инстанцировании класса с помощью ключевого слова WithEvents.

Я нашел действительно большую статью, которая объясняет, как создать класс менеджера для последовательного порта. Это также обсуждает передающие Двоичные, а также Шестнадцатеричные данные к последовательному порту. Это было довольно полезно.

http://www.dreamincode.net/forums/showtopic37361.htm

1
ответ дан 10 December 2019 в 00:46
поделиться

Я использовал класс SerialPort.Net в прошлом проекте, и я хорошо работал. Вам действительно не нужно ничто больше. Проверьте аппаратную установку в панель управления и удостоверьтесь, что Вы инстанцируете класса с теми же параметрами.

0
ответ дан 10 December 2019 в 00:46
поделиться
Другие вопросы по тегам:

Похожие вопросы: