mirror of
https://github.com/CalcProgrammer1/OpenRGB.git
synced 2026-05-24 06:25:01 -04:00
Bugfix: Use correct path when opening serial devices on Windows
This commit is contained in:
@@ -53,7 +53,12 @@ bool serial_port::serial_open()
|
||||
| Windows-specific code path for serial port opening |
|
||||
\*-----------------------------------------------------*/
|
||||
#ifdef _WIN32
|
||||
file_descriptor = CreateFile(port_name, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
|
||||
// On Windows, ports above 9 need to have "\\.\" prepended to their path. For ports below 9, this is optional.
|
||||
// https://support.microsoft.com/en-us/topic/howto-specify-serial-ports-larger-than-com9-db9078a5-b7b6-bf00-240f-f749ebfd913e
|
||||
char full_path[100];
|
||||
snprintf(full_path, sizeof(full_path), "\\\\.\\%s", port_name);
|
||||
|
||||
file_descriptor = CreateFile(full_path, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, NULL);
|
||||
|
||||
if((int)file_descriptor < 0)
|
||||
{
|
||||
@@ -195,7 +200,7 @@ bool serial_port::serial_open(const char * name)
|
||||
\*---------------------------------------------------------*/
|
||||
bool serial_port::serial_open(const char* name, unsigned int baud)
|
||||
{
|
||||
strcpy(port_name, name);
|
||||
snprintf(port_name,sizeof(port_name),"%s",name);
|
||||
baud_rate = baud;
|
||||
return serial_open();
|
||||
}
|
||||
@@ -210,7 +215,7 @@ void serial_port::serial_close()
|
||||
| Windows-specific code path for serial close |
|
||||
\*-----------------------------------------------------*/
|
||||
#ifdef _WIN32
|
||||
|
||||
CloseHandle(file_descriptor);
|
||||
#endif
|
||||
|
||||
/*-----------------------------------------------------*\
|
||||
|
||||
Reference in New Issue
Block a user