Je souhaite communiquer avec le port COM 1 de mon PC et une alvéole de réception grâce à AutoIt pour contrôler l'état de mes appareils mais sans succès
Par contre, je vois les commandes fonctionnelles envoyées avec "Source.exe" grâce à PORTMON donc déjà un bon début
Les étapes de 1° à 5° permettent d'initialiser mon alvéole, démarrer, RAZer, éteindre et libérer l'alvéole avec le logiciel "Source.exe" mais buggué
Mon but est de reproduire la même chose avec AutoIt car certains plantages font planter mon PC avec "Source.exe"...
Merci d'avance
Les includes (*.au3)
► Afficher le texte
MsgBoxConstants.au3- (4.02 Kio) Téléchargé 127 fois
CommUtilities.au3- (11.48 Kio) Téléchargé 133 fois
CommInterface.au3- (16.57 Kio) Téléchargé 143 fois
CommAPIHelper.au3- (22.04 Kio) Téléchargé 114 fois
CommAPIConstants.au3- (6.22 Kio) Téléchargé 128 fois
CommAPI.au3- (32.33 Kio) Téléchargé 128 fois
► Afficher le texte
Code : Tout sélectionner
#cs ----------------------------------------------------------------------------
AutoIt Version: 3.3.8.1
Author: myName
Script Function:
Contrôleur de port COM.
#ce ----------------------------------------------------------------------------
#include <Array.au3>
#include <CommInterface.au3>
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <MsgBoxConstants.au3>
#include <Process.au3>
#include <String.au3>
Local $COMPort = "", $COM_Open, $hFile = 0, $szDrive, $szDir, $szFName, $szExt
Local $PathArray = _PathSplit(@ScriptFullPath, $szDrive, $szDir, $szFName, $szExt)
Local $PathFull = $PathArray[0] ; E:\Path\Test.au3
Local $PathDrive = $PathArray[1] ; E:
Local $PathDir = $PathArray[2] ; \Path\
Local $PathName = $PathArray[3] ; Test
Local $PathExt = $PathArray[4] ; .au3
Local $PosW = 800
Local $PosH = 600
Local $ParentTitle = "Contrôleur de port COM"
Local $ParentHandle = GUICreate($ParentTitle, $PosW, $PosH, (@DesktopWidth - $PosW) / 2, (@DesktopHeight - $PosH) / 2)
Local $iPort = IniRead (@ScriptDir & "\" & $PathName & ".ini", "Configuration de "&$ParentTitle, "Port de communication COM", "Introuvable")
Local $iBaud = IniRead (@ScriptDir & "\" & $PathName & ".ini", "Configuration de "&$ParentTitle, "Vitesse de transmission", "Introuvable")
;~ Local Const $iPort = $IniRead_Port
;~ Local Const $iBaud = $IniRead_iBaud ; 9600 baud rate 600, 1200, 2400, 4800, 9600, 14400, 19200, 38400, 56000, 57600, 115200, 128000, 256000
;~ Local Const $iPort = 3
;~ Local Const $iBaud = 9600
Local Const $iParity = 1 ; 1
Local Const $iByteSize = 8 ; 8
Local Const $iStopBits = 2 ; 2
Local $iTimer = 1 ; en secondes
Local $Binary_Or_String = "B" ; B=Binary S=String
If $Binary_Or_String = "B" Then $Binary_Or_String = "Binary"
If $Binary_Or_String = "S" Then $Binary_Or_String = "String"
Local $button_ON = GUICtrlCreateButton("Allumer l'appareil", 85, 60, 150, 30)
Local $button_RAZ = GUICtrlCreateButton("Réinitialiser l'appareil", 85, 100, 150, 30)
Local $button_OFF = GUICtrlCreateButton("Eteindre l'appareil", 85, 140, 150, 30)
Local $COMPorts = StringReplace(_CommAPI_GetCOMPorts(), @CRLF, "|")
Local $numreplacements = @extended
$COMPorts = StringSplit($COMPorts, "|")
For $i = 1 To $numreplacements
$StringInStrStart = StringInStr($COMPorts[$i], "(COM")
$StringInStrEnd = StringInStr($COMPorts[$i], ")")
$StringMidStart = StringMid($COMPorts[$i], 1, $StringInStrStart-2)
$StringMidEnd = StringMid($COMPorts[$i], $StringInStrStart, $StringInStrEnd)
$COMPort = $COMPort & $StringMidEnd & " " & $StringMidStart & "|"
Next
$COMPort = StringTrimRight($COMPort, 1)
Local $avArray = _StringExplode($COMPort, "|", 0)
_ArraySort($avArray)
$ArrayToString = _ArrayToString($avArray, "|")
$COMPorts = StringSplit($ArrayToString, "|")
$X = 10
$Y = 10
GUICtrlCreateGroup("Port de communication COM", $X ,$Y ,300+10 ,20+27)
Local $Combo_Port = GUICtrlCreateCombo("",$X+5 ,$Y+20 ,300 ,20)
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
For $i = 1 To $numreplacements
ConsoleWrite("Port " & $COMPorts[$i] & " trouvé" & @CRLF)
If StringInStr($COMPorts[$i], "COM"&$iPort) Then
GUICtrlSetData($Combo_Port, $ArrayToString, $COMPorts[$i])
ElseIf $iPort = "Introuvable" Then
GUICtrlSetData($Combo_Port, $COMPorts[$i], "")
EndIf
Next
Open_COM_Port()
GUICtrlCreateGroup("Vitesse de transmission", $X+320 ,$Y ,120+10 ,20+27)
Local $Combo_Baud_Rate = GUICtrlCreateCombo("",$X+325 ,$Y+20 ,120 ,20)
GUICtrlSetData($Combo_Baud_Rate, "600 bauds|1200 bauds|2400 bauds|4800 bauds|9600 bauds|14400 bauds|19200 bauds|28800 bauds|38400 bauds|56000 bauds|57600 bauds|115200 bauds|128000 bauds|256000 bauds", $iBaud&" bauds")
GUICtrlCreateGroup("", -99, -99, 1, 1) ;close group
;~ GUICtrlSetData($Combo_Port, $ArrayToString, )
;~ GUICtrlSetData($idComboBox, "Item 2|Item 3", "Item 2")
GUISetState()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
Close_Port()
Exit
Case $msg = $Combo_Port
$iPort = GUICtrlRead($Combo_Port)
$StringInStrStart = StringInStr($iPort, "(COM")
$StringInStrEnd = StringInStr($iPort, ")")
$iPort = StringMid($iPort, $StringInStrStart+4, $StringInStrEnd-$StringInStrStart-4)
IniWrite(@ScriptDir & "\" & $PathName & ".ini", "Configuration de "&$ParentTitle, "Port de communication COM", $iPort)
Open_COM_Port()
Case $msg = $Combo_Baud_Rate
$iBaud = GUICtrlRead($Combo_Baud_Rate)
$StringInStrEnd = StringInStr($iBaud, " bauds")
$iBaud = StringMid($iBaud, 1, $StringInStrEnd)
IniWrite(@ScriptDir & "\" & $PathName & ".ini", "Configuration de "&$ParentTitle, "Vitesse de transmission", $iBaud)
Open_COM_Port()
Case $msg = $button_ON
Local $sCommand = "........"
Main()
Local $sCommand = "........"
Main()
Local $sCommand = "......)"
Main()
Local $sCommand = "...OFu2"
Main()
Local $sCommand = ".......EZ.."
Main()
Local $sCommand = "......3+"
Main()
;~ Local $sCommand = "EZ"
Case $msg = $button_RAZ
;~ Local $sCommand = ".......RZ.."
Local $sCommand = "RZ"
Main()
Case $msg = $button_OFF
;~ Local $sCommand = ".......OF.."
Local $sCommand = "OF"
Main()
EndSelect
WEnd
Func Main()
Local $iErrorLine = COMHandling()
If @extended Then
ConsoleWrite("Status: " & _WinAPI_GetLastErrorMessage() & @CRLF)
ElseIf @error Then
ConsoleWrite("Erreur à la ligne: " & $iErrorLine & @CRLF)
EndIf
EndFunc
Func COMHandling()
Local $hFile = 0
Local $sResult = ""
;~ $hFile = _CommAPI_OpenCOMPort($iPort, $iBaud, $iParity, $iByteSize, $iStopBits)
;~ If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
;~ _CommAPI_ClearCommError($hFile)
;~ If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
For $i = 1 To 10
_CommAPI_TransmitString($hFile, $sCommand)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
Sleep($iTimer*1000)
$sResult = _CommAPI_ReceiveString($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
If $sResult Then
ToolTip($sResult, Default, Default, "Received data", 1)
Else
ToolTip("Loop " & $i, Default, Default, "No received data", 3)
ConsoleWrite("Loop " & $i, Default, Default, "No received data", 3 & @CRLF)
EndIf
Next
_CommAPI_CLosePort($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
Sleep($iTimer*1000)
EndFunc
Func Open_COM_Port()
ConsoleWrite("Ouverture du port COM " & $iPort & @CRLF)
;~ Local $hFile =_CommAPI_OpenCOMPort($iPort, $iBaud, $iParity, $iByteSize, $iStopBits)
;~ _CommAPI_ClearCommError($hFile)
;~ _CommAPI_PurgeComm($hFile)
$hFile = _CommAPI_OpenCOMPort($iPort, $iBaud, $iParity, $iByteSize, $iStopBits)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
_CommAPI_ClearCommError($hFile)
If @error Then Return SetError(@error, @extended, @ScriptLineNumber)
ConsoleWrite("Port COM prêt " & $iPort & @CRLF)
$COM_Open = "1"
EndFunc
Func Close_Port()
ConsoleWrite("Fermeture du port COM " & $iPort & @CRLF)
Local $hFile = 0
Local $sResult = ""
$zz = _CommAPI_ClosePort($hFile)
ConsoleWrite($zz & " " & $hFile & @CRLF)
ConsoleWrite("Port COM libre " & $iPort & @CRLF)
$COM_Open = ""
EndFunc► Afficher le texte
Code : Tout sélectionner
0 0.00004637 Source.exe IRP_MJ_CREATE Serial1 SUCCESS Options: Open
1 0.00000140 Source.exe IOCTL_SERIAL_SET_QUEUE_SIZE Serial1 SUCCESS InSize: 4096 OutSize: 4096
2 0.00000168 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
3 0.00000084 Source.exe IOCTL_SERIAL_SET_TIMEOUTS Serial1 SUCCESS RI:0 RM:0 RC:550 WM:0 WC:550
4 0.00000084 Source.exe IOCTL_SERIAL_GET_BAUD_RATE Serial1 SUCCESS
5 0.00000084 Source.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial1 SUCCESS
6 0.00000084 Source.exe IOCTL_SERIAL_GET_CHARS Serial1 SUCCESS
7 0.00000084 Source.exe IOCTL_SERIAL_GET_HANDFLOW Serial1 SUCCESS
8 0.00000056 Source.exe IOCTL_SERIAL_GET_BAUD_RATE Serial1 SUCCESS
9 0.00000084 Source.exe IOCTL_SERIAL_GET_LINE_CONTROL Serial1 SUCCESS
10 0.00000084 Source.exe IOCTL_SERIAL_GET_CHARS Serial1 SUCCESS
11 0.00000056 Source.exe IOCTL_SERIAL_GET_HANDFLOW Serial1 SUCCESS
12 0.00000810 Source.exe IOCTL_SERIAL_SET_BAUD_RATE Serial1 SUCCESS Rate: 9600
13 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
14 0.00000223 Source.exe IOCTL_SERIAL_SET_LINE_CONTROL Serial1 SUCCESS StopBits: 1 Parity: NONE WordLength: 8
15 0.00000084 Source.exe IOCTL_SERIAL_SET_CHAR Serial1 SUCCESS EOF:0 ERR:0 BRK:0 EVT:0 XON:11 XOFF:13
16 0.00000251 Source.exe IOCTL_SERIAL_SET_HANDFLOW Serial1 SUCCESS Shake:2 Replace:0 XonLimit:2048 XoffLimit:512
17 0.00000307 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEARCapture du résultat du démarrage d'un appareil avec PORTMON

2° Démarrage de mon appareil grace au logiciel "Source.exe" (Log PORTMON)
► Afficher le texte
Code : Tout sélectionner
0 0.00000587 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
1 0.00000168 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
2 0.00002850 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
3 0.00000223 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
4 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
5 0.00000168 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
6 0.55000677 Source.exe IRP_MJ_READ Serial1 TIMEOUT Length 0:
7 0.00000335 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
8 0.00000391 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
9 0.00000559 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
10 0.00003269 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
11 0.00000196 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
12 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
13 0.00000559 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
14 0.02843434 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 11: ...SG2002Z.
15 0.00000419 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
16 0.00000447 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
17 0.00000140 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
18 0.00002766 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: .......)
19 0.00000223 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
20 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
21 0.00000587 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
22 0.02410139 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 7: ...OFu2
23 0.00000335 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
24 0.00000391 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
25 0.00000615 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
26 0.00003771 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 11: .......EZ..
27 0.00000140 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
28 0.00000391 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
29 0.00000559 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
30 0.02426286 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 8: ......3+
31 0.00000391 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR► Afficher le texte
Code : Tout sélectionner
0 0.00000698 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
1 0.00000251 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
2 0.00002905 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
3 0.00001313 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
4 0.00000419 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
5 0.00000447 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
6 0.55015121 Source.exe IRP_MJ_READ Serial1 TIMEOUT Length 0:
7 0.00000307 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
8 0.00000391 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
9 0.00000615 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
10 0.00002598 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
11 0.00000168 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
12 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
13 0.00000419 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
14 0.02841981 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 11: ...SG2002Z.
15 0.00000363 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
16 0.00000419 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
17 0.00000503 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
18 0.00003129 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 11: .......RZ..
19 0.00000223 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
20 0.00000391 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
21 0.00000419 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
22 0.06635648 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 8: ......b.
23 0.00000419 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR► Afficher le texte
Code : Tout sélectionner
0 0.00000643 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
1 0.00000223 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
2 0.00003073 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
3 0.00000168 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
4 0.00000363 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
5 0.00000587 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
6 0.55017607 Source.exe IRP_MJ_READ Serial1 TIMEOUT Length 0:
7 0.00000363 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
8 0.00000391 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
9 0.00000419 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
10 0.00002626 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: ........
11 0.00000168 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
12 0.00000391 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
13 0.00000363 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
14 0.02842764 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 11: ...SG2002Z.
15 0.00000335 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
16 0.00000419 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
17 0.00000447 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
18 0.00003185 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 8: .......)
19 0.00000223 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
20 0.00000419 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
21 0.00000363 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
22 0.02410390 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 7: ...EZr[
23 0.00000335 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
24 0.00000391 Source.exe IOCTL_SERIAL_SET_RTS Serial1 SUCCESS
25 0.00000782 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask: TXEMPTY
26 0.00003157 Source.exe IRP_MJ_WRITE Serial1 SUCCESS Length 11: .......OF..
27 0.00000196 Source.exe IOCTL_SERIAL_WAIT_ON_MASK Serial1 SUCCESS
28 0.00000391 Source.exe IOCTL_SERIAL_CLR_RTS Serial1 SUCCESS
29 0.00000587 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
30 0.02424889 Source.exe IRP_MJ_READ Serial1 SUCCESS Length 8: ......3+
31 0.00000307 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR► Afficher le texte
Code : Tout sélectionner
0 0.00000363 Source.exe IOCTL_SERIAL_SET_WAIT_MASK Serial1 SUCCESS Mask:
1 0.00000140 Source.exe IOCTL_SERIAL_PURGE Serial1 SUCCESS Purge: TXABORT RXABORT TXCLEAR RXCLEAR
2 0.00000140 Source.exe IRP_MJ_CLEANUP Serial1 SUCCESS
3 0.01044043 Source.exe IRP_MJ_CLOSE Serial1 SUCCESS


