Problem with Windows 10: The scripts do not work with Windows 10 - _CommAPI_OpenCOMPort fails. I found however that a Sleep(100) after _CommAPI_BuildCommDCB in the function _CommAPI_OpenPort in script CommInterface.au3 fixes the problem! Rainer Func _CommAPI_OpenPort(Const $sMode)
Local $sFileName = "\\.\" & StringLeft($sMode, StringInStr($sMode, ":") - 1)
; Local $sFileName = ".\" & StringLeft($sMode, StringInStr($sMode, ":") - 1)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $sFileName = ' & $sFileName & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
Local $hFile = _WinAPI_CreateFile($sFileName, 3, 6)
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $hFile = ' & $hFile & @crlf & '>Error code: ' & @error & @crlf) ;### Debug Console
If @error Then Return SetError(@error, @ScriptLineNumber, 0)
If $hFile <= 0 Then Return SetError(-1, @ScriptLineNumber, 0)
Local $tDCB = DllStructCreate($tagDCB)
Local $tCommTimeouts = DllStructCreate($tagCOMMTIMEOUTS)
_CommAPI_BuildCommDCB($sMode, $tDCB)
Sleep(100);
If @error Then Return SetError(@error, @extended, 0)
_CommAPI_SetCommTimeoutsElement($tCommTimeouts, "ReadTotalTimeoutMultiplier", 1)
If @error Then Return SetError(@error, @extended, 0)
_CommAPI_SetCommTimeoutsElement($tCommTimeouts, "WriteTotalTimeoutMultiplier", 1)
If @error Then Return SetError(@error, @extended, 0)
If Not _CommAPI_SetCommState($hFile, $tDCB) Then Return SetError(@error, @extended, 0)
If Not _CommAPI_SetCommTimeouts($hFile, $tCommTimeouts) Then Return SetError(@error, @extended, 0)
Return $hFile
EndFunc ;==>_CommAPI_OpenPort