X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=src%2Flib%2Fplatform%2Fwindows%2Fserialport.cpp;h=00ba7bb80e0ce3530182cb95542176bb75ee89be;hb=6acb9c0bfd389f1ad4d052582b27a1a395322135;hp=ad7f8711d059e7679b2f1bd00c94b9f9a95ad27c;hpb=b0a5e4fc9b66620b00f937f7e9a406bf22aaaf1d;p=deb_libcec.git diff --git a/src/lib/platform/windows/serialport.cpp b/src/lib/platform/windows/serialport.cpp index ad7f871..00ba7bb 100644 --- a/src/lib/platform/windows/serialport.cpp +++ b/src/lib/platform/windows/serialport.cpp @@ -100,7 +100,17 @@ void CSerialSocket::Shutdown(void) ssize_t CSerialSocket::Write(void* data, size_t len) { - return IsOpen() ? SerialSocketWrite(m_socket, &m_iError, data, len) : -1; + if (IsOpen()) + { + ssize_t iReturn = SerialSocketWrite(m_socket, &m_iError, data, len); + if (iReturn != (ssize_t)len) + { + m_strError = "unable to write to the serial port"; + FormatWindowsError(GetLastError(), m_strError); + } + return iReturn; + } + return -1; } ssize_t CSerialSocket::Read(void* data, size_t len, uint64_t iTimeoutMs /* = 0 */) @@ -169,6 +179,7 @@ bool CSerialSocket::Open(uint64_t iTimeoutMs /* = 0 */) return false; } + m_strError.clear(); m_bIsOpen = true; return m_bIsOpen; }