X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Flib%2Fplatform%2Fwindows%2Fserialport.cpp;h=9e4cc486e64138a56185f1f3d30b357cc74005bd;hb=7879fa15cd1d00d3334a258ae0fce065c92f6e39;hp=de2a9a394171f8c60367038cac90592953223afd;hpb=06a1f7ce2bb14634f1ffd73d709b91238d05e5d6;p=deb_libcec.git diff --git a/src/lib/platform/windows/serialport.cpp b/src/lib/platform/windows/serialport.cpp index de2a9a3..9e4cc48 100644 --- a/src/lib/platform/windows/serialport.cpp +++ b/src/lib/platform/windows/serialport.cpp @@ -65,8 +65,9 @@ CSerialPort::~CSerialPort(void) bool CSerialPort::Open(string name, uint32_t baudrate, uint8_t databits, uint8_t stopbits, uint8_t parity) { + CStdString strComPath = "\\\\.\\" + name; CLockObject lock(&m_mutex); - m_handle = CreateFile(name.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); + m_handle = CreateFile(strComPath.c_str(), GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0); if (m_handle == INVALID_HANDLE_VALUE) { m_error = "Unable to open COM port"; @@ -77,7 +78,7 @@ bool CSerialPort::Open(string name, uint32_t baudrate, uint8_t databits, uint8_t COMMCONFIG commConfig = {0}; DWORD dwSize = sizeof(commConfig); commConfig.dwSize = dwSize; - if (GetDefaultCommConfig(name.c_str(), &commConfig,&dwSize)) + if (GetDefaultCommConfig(strComPath.c_str(), &commConfig,&dwSize)) { if (!SetCommConfig(m_handle, &commConfig,dwSize)) { @@ -166,14 +167,14 @@ void CSerialPort::Close(void) } } -int8_t CSerialPort::Write(const cec_adapter_message &data) +int8_t CSerialPort::Write(CCECAdapterMessage *data) { CLockObject lock(&m_mutex); DWORD iBytesWritten = 0; if (!m_bIsOpen) return -1; - if (!WriteFile(m_handle, data.packet.data, data.size(), &iBytesWritten, NULL)) + if (!WriteFile(m_handle, data->packet.data, data->size(), &iBytesWritten, NULL)) { m_error = "Error while writing to COM port"; FormatWindowsError(GetLastError(), m_error);