Modifying find_usb_serial_port() to return a vector

This commit is contained in:
B Horn 2020-07-31 09:46:36 +01:00 committed by Adam Honse
parent 00cc6978a2
commit 1457831840
4 changed files with 42 additions and 34 deletions

View file

@ -6,5 +6,6 @@
#include <fstream>
#include <iostream>
#include <string>
#include <vector>
std::string find_usb_serial_port(unsigned short vid, unsigned short pid);
std::vector<std::string *> find_usb_serial_port(unsigned short vid, unsigned short pid);

View file

@ -17,13 +17,14 @@
| |
\*---------------------------------------------------------------------*/
std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
std::vector<std::string *> find_usb_serial_port(unsigned short vid, unsigned short pid)
{
std::string ret_string = "";
DIR* dir;
char symlink_path[1024] = {0};
struct dirent* ent;
char vid_pid[10] = {0}; //Store VID/PID
std::vector<std::string *> ret_vector;
std::string * tmp_string;
DIR* dir;
char symlink_path[1024] = {0};
struct dirent* ent;
char vid_pid[10] = {0}; //Store VID/PID
/*-----------------------------------------------------------------*\
| Open /sys/class/tty |
@ -32,7 +33,7 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
if(dir == NULL)
{
return ret_string;
return ret_vector;
}
/*-----------------------------------------------------------------*\
@ -109,10 +110,10 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
break;
}
}
ret_string.append("/dev/");
ret_string.append(port_string);
tmp_string = new std::string("/dev/");
tmp_string->append(port_string);
return ret_string;
ret_vector.push_back(tmp_string);
}
}
}
@ -121,6 +122,6 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
ent = readdir(dir);
}
return ret_string;
return ret_vector;
} /* find_usb_serial_port() */

View file

@ -24,18 +24,19 @@
| |
\*---------------------------------------------------------------------*/
std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
std::vector<std::string *> find_usb_serial_port(unsigned short vid, unsigned short pid)
{
std::string ret_str = "";
HDEVINFO DeviceInfoSet;
DWORD DeviceIndex = 0;
SP_DEVINFO_DATA DeviceInfoData;
const char * DevEnum = "USB";
char ExpectedDeviceId[80] = {0}; //Store hardware id
char vid_pid[10] = {0}; //Store VID/PID
char szBuffer[1024] = {0};
DEVPROPTYPE ulPropertyType;
DWORD dwSize = 0;
std::vector<std::string *> ret_vector;
std::string * tmp_string;
HDEVINFO DeviceInfoSet;
DWORD DeviceIndex = 0;
SP_DEVINFO_DATA DeviceInfoData;
const char * DevEnum = "USB";
char ExpectedDeviceId[80] = {0}; //Store hardware id
char vid_pid[10] = {0}; //Store VID/PID
char szBuffer[1024] = {0};
DEVPROPTYPE ulPropertyType;
DWORD dwSize = 0;
/*-----------------------------------------------------------------*\
| Create device hardware id |
@ -55,7 +56,7 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
if (DeviceInfoSet == INVALID_HANDLE_VALUE)
{
return false;
return ret_vector;
}
/*-----------------------------------------------------------------*\
@ -102,8 +103,8 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
{
if(strncmp(pszPortName, "COM", 3) == 0)
{
ret_str.append(pszPortName);
return ret_str;
tmp_string = new std::string(pszPortName);
ret_vector.push_back(tmp_string);
}
}
@ -119,6 +120,6 @@ std::string find_usb_serial_port(unsigned short vid, unsigned short pid)
SetupDiDestroyDeviceInfoList(DeviceInfoSet);
}
return ret_str;
return ret_vector;
} /* find_usb_serial_port() */