git-svn-id: svn://db.shs.com.ru/pip@787 12ceb7fc-bf1f-11e4-8940-5bc7170c53b5

This commit is contained in:
2019-04-29 15:27:38 +00:00
parent f9d6b82969
commit 493d51c20c
2 changed files with 15 additions and 2 deletions

View File

@@ -496,6 +496,19 @@ PIByteArray PISerial::readData(int size, double timeout_ms) {
}
bool PISerial::send(const void * data, int size) {
int ret = 0;
int wsz = 0;
do {
ret = write(&(((uchar*)data)[wsz]), size - wsz);
if (ret > 0) wsz += ret;
piCout << ret << wsz;
else return false;
} while (wsz < size);
return (wsz == size);
}
bool PISerial::openDevice() {
//piCout << "ser open" << path();
if (path().isEmpty()) return false;

View File

@@ -164,11 +164,11 @@ public:
//! \brief Write to device data "data" with maximum size "size" and wait for data written if "wait" is \b true.
//! \returns \b true if sended bytes count = "size"
bool send(const void * data, int size) {return (write(data, size) == size);}
bool send(const void * data, int size);
//! \brief Write to device byte array "data" and wait for data written if "wait" is \b true.
//! \returns \b true if sended bytes count = size of string
bool send(const PIByteArray & data) {return (write(data.data(), data.size_s()) == data.size_s());}
bool send(const PIByteArray & data) {return send(data.data(), data.size_s());}
//! \brief Returns all available speeds for serial devices
static PIVector<int> availableSpeeds();