Minor changes for YModemReceive with timers and signals
This commit is contained in:
@@ -73,9 +73,9 @@ void TimeoutSerial::setTimeout(const boost::posix_time::time_duration& t)
|
||||
timeout=t;
|
||||
}
|
||||
|
||||
void TimeoutSerial::write(const char *data, size_t size)
|
||||
size_t TimeoutSerial::write(const char *data, size_t size)
|
||||
{
|
||||
asio::write(port,asio::buffer(data,size));
|
||||
return asio::write(port,asio::buffer(data,size));
|
||||
}
|
||||
|
||||
void TimeoutSerial::write(const std::vector<char>& data)
|
||||
@@ -88,7 +88,7 @@ void TimeoutSerial::writeString(const std::string& s)
|
||||
asio::write(port,asio::buffer(s.c_str(),s.size()));
|
||||
}
|
||||
|
||||
void TimeoutSerial::read(char *data, size_t size)
|
||||
size_t TimeoutSerial::read(char *data, size_t size)
|
||||
{
|
||||
if(readData.size()>0)//If there is some data from a previous read
|
||||
{
|
||||
@@ -97,7 +97,7 @@ void TimeoutSerial::read(char *data, size_t size)
|
||||
is.read(data,toRead);
|
||||
data+=toRead;
|
||||
size-=toRead;
|
||||
if(size==0) return;//If read data was enough, just return
|
||||
if(size==0) return 0;//If read data was enough, just return
|
||||
}
|
||||
|
||||
setupParameters=ReadSetupParameters(data,size);
|
||||
@@ -120,7 +120,7 @@ void TimeoutSerial::read(char *data, size_t size)
|
||||
{
|
||||
case resultSuccess:
|
||||
timer.cancel();
|
||||
return;
|
||||
return this->bytesTransferred;
|
||||
case resultTimeoutExpired:
|
||||
port.cancel();
|
||||
throw(timeout_exception("Timeout expired"));
|
||||
|
||||
Reference in New Issue
Block a user