|
Hello,
Im stock at this problem i got an error "The I/O operation has been aborted because of either a thread exit or an application request."
i got an error on this line
mySerialPort.WriteLine("SUCCESS!" & vbCrLf )
and here is my code.
Public Sub CommPortSetup()
If mySerialPort.IsOpen Then
mySerialPort.Close()
End If
Try
With mySerialPort
.PortName = "COM1"
.BaudRate = 115200
.DataBits = 8
.Parity = Parity.None
.StopBits = StopBits.One
.Handshake = Handshake.None
.DtrEnable = True
.RtsEnable = True
.NewLine = vbCrLf
End With
mySerialPort.Open()
MessageBox.Show("Connected to COMMPORT1")
Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
mySerialPort.WriteLine("AT+CMGF=1" & vbCrLf)
System.Threading.Thread.Sleep(200)
mySerialPort.WriteLine("AT+CMGS=+6390720831187" & vbCrLf)
System.Threading.Thread.Sleep(200)
mySerialPort.WriteLine("SUCCESS!" & vbCrLf )
System.Threading.Thread.Sleep(200)
End Sub
End Module
|
|
|
|
|
What's with all the Thread.Sleep garbage?
|
|
|
|
|
I get rid of the "thread.sleep" for now,
but I got these error "An unhandled exception of type 'System.ExecutionEngineException' occured in Unknown Module.
Please help me.
|
|
|
|
|
Put the problem code inside your try block so you can capture some useful exception information.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
i only got these error
"The I/O operation has been aborted because of either a thread exit or an application request."
|
|
|
|
|
Unsurprising since you are trying to write to the port then immediately exiting from the subroutine, and possibly even the program. Put all your writing code inside the try block and check all the information that you get if an exception occurs.
One of these days I'm going to think of a really clever signature.
|
|
|
|
|
After a little reading of the .NET Framework documentation for the SerialPort Class, it looks like all you need to do is add the following line of code after your last MySerialPort.WriteLine and before the End Sub so that the transmit buffer is emptied before your program exits the Sub CommPortSetup procedure. See the underlined and bolded area in the information below.
MySerialPort.Close
According to the .NET Framework documentation:
SerialPort.Close Method
Remarks
Calling this method closes the SerialPort object and clears both the receive and transmit buffers. This method calls the Component.Dispose method, which invokes the protected SerialPort.Dispose(Boolean) method with thedisposing parameter set to true.
The best practice for any application is to wait for some amount of time after calling the Close method before attempting to call the Open method, as the port may not be closed instantly.
|
|
|
|