1
0
mirror of https://github.com/wjwwood/serial.git synced 2026-01-22 19:54:57 +08:00

Merge 9d20d1a07fa10623f4ed1655806cb57075443ae7 into 7e04501d99465a5fdeb3d5922ae617b4e27553db

This commit is contained in:
William Woodall 2013-07-30 11:07:27 -07:00
commit b518cbf1e6
2 changed files with 10 additions and 6 deletions

View File

@ -44,6 +44,7 @@
namespace serial {
using std::string;
using std::wstring;
using std::invalid_argument;
using serial::SerialException;
@ -172,7 +173,7 @@ protected:
void reconfigurePort ();
private:
string port_; // Path to the file descriptor
wstring port_; // Path to the file descriptor
HANDLE fd_;
bool is_open_;

View File

@ -3,6 +3,7 @@
#include "serial/impl/win.h"
using std::string;
using std::wstring;
using std::stringstream;
using std::invalid_argument;
using serial::Serial;
@ -20,7 +21,7 @@ Serial::SerialImpl::SerialImpl (const string &port, unsigned long baudrate,
bytesize_t bytesize,
parity_t parity, stopbits_t stopbits,
flowcontrol_t flowcontrol)
: port_ (port), fd_ (INVALID_HANDLE_VALUE), is_open_ (false),
: port_ (port.begin(), port.end()), fd_ (INVALID_HANDLE_VALUE), is_open_ (false),
baudrate_ (baudrate), parity_ (parity),
bytesize_ (bytesize), stopbits_ (stopbits), flowcontrol_ (flowcontrol)
{
@ -47,7 +48,8 @@ Serial::SerialImpl::open ()
throw SerialException ("Serial port already open.");
}
fd_ = CreateFile(port_.c_str(),
LPCWSTR lp_port = port_.c_str();
fd_ = CreateFile(lp_port,
GENERIC_READ | GENERIC_WRITE,
0,
0,
@ -60,7 +62,8 @@ Serial::SerialImpl::open ()
stringstream ss;
switch (errno_) {
case ERROR_FILE_NOT_FOUND:
ss << "Specified port, " << port_ << ", does not exist.";
// Use this->getPort to convert to a std::string
ss << "Specified port, " << this->getPort() << ", does not exist.";
THROW (IOException, ss.str().c_str());
default:
ss << "Unknown error opening the serial port: " << errno;
@ -296,13 +299,13 @@ Serial::SerialImpl::write (const uint8_t *data, size_t length)
void
Serial::SerialImpl::setPort (const string &port)
{
port_ = port;
port_ = wstring(port.begin(), port.end());
}
string
Serial::SerialImpl::getPort () const
{
return port_;
return string(port_.begin(), port_.end());
}
void