I am writing a serial port communication application using Iron Python. Following is my code:
def sendMessage( self, entity, command, endstring ):
BaudRate = 9600
DataBits = 8
comPort = "COM1"
#create a serial port instance for the desired port as specified
serialPort = System.IO.Ports.SerialPort( comPort )
serialPort.BaudRate = BaudRate
serialPort.DataBits = DataBits
#open the port
serialPort.ReadTimeout = 30000
serialPort.Write( command )
returnValue = serialPort.ReadTo( endstring )
returnValue = ""
com1 = serial()
a = com1.sendMessage( "ABC", "2", "B" )
Here if i abort my application using Cntrl + C then i get ObjectDisposedException unhandled though i have provided an exception handler.
Following is the stack trace which i got:
at Microsoft.Win32.Win32Native.SetEvent(SafeWaitHandle handle) at System.Threading.EventWaitHandle.Set() at System.IO.Ports.SerialStream.AsyncFSCallback(UInt32 errorCode, UInt32 numBytes, NativeOverlapped* pOverlapped) at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32
errorCode, UInt32 numBytes, NativeOverlapped* pOVERLAP)
Also i tried to abort the application using Ctrl + C while it was waiting for some data to be read and timeout had not occured.
The application exits and I get the exception after it exits.
Please let me know if its possible to catch this exception in the current scenario.