add PIChunkStream::getData(int id)
fix some COM on Windows fix PIPacketExtractor
This commit is contained in:
@@ -770,11 +770,12 @@ void PISerial::applySettings() {
|
||||
GetCommMask(PRIVATE->hCom, &PRIVATE->mask);
|
||||
SetCommMask(PRIVATE->hCom, EV_RXCHAR);
|
||||
GetCommState(PRIVATE->hCom, &PRIVATE->sdesc);
|
||||
// piCoutObj << PRIVATE->sdesc.fBinary << PRIVATE->sdesc.fAbortOnError << PRIVATE->sdesc.fDsrSensitivity << PRIVATE->sdesc.fDtrControl
|
||||
//<< PRIVATE->sdesc.fDummy2 << PRIVATE->sdesc.fErrorChar;
|
||||
piCoutObj << PRIVATE->sdesc.fBinary << PRIVATE->sdesc.fAbortOnError << PRIVATE->sdesc.fDsrSensitivity << PRIVATE->sdesc.fDtrControl
|
||||
<< PRIVATE->sdesc.fDummy2 << PRIVATE->sdesc.fErrorChar;
|
||||
PRIVATE->desc = PRIVATE->sdesc;
|
||||
PRIVATE->desc.DCBlength = sizeof(PRIVATE->desc);
|
||||
PRIVATE->desc.BaudRate = convertSpeed(outSpeed());
|
||||
PRIVATE->desc.fDtrControl = DTR_CONTROL_ENABLE;
|
||||
if (dataBitsCount() >= 5 && dataBitsCount() <= 8)
|
||||
PRIVATE->desc.ByteSize = dataBitsCount();
|
||||
else
|
||||
|
||||
@@ -307,6 +307,7 @@ PIString PIPacketExtractor::constructFullPathDevice() const {
|
||||
bool PIPacketExtractor::openDevice() {
|
||||
if (dev) {
|
||||
if (!dev->isOpened()) return dev->open();
|
||||
return dev->isOpened();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
@@ -315,6 +316,7 @@ bool PIPacketExtractor::openDevice() {
|
||||
bool PIPacketExtractor::closeDevice() {
|
||||
if (dev) {
|
||||
if (dev->isOpened()) return dev->close();
|
||||
return !dev->isOpened();
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -144,6 +144,18 @@ public:
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Returns value of chunk with ID \"id\". You should call \a readAll() before using this function!
|
||||
//! \~russian Возвращает значение чанка с ID \"id\". Необходимо вызвать \a readAll() перед использованием этого метода!
|
||||
template<typename T>
|
||||
T getData(int id) const {
|
||||
T ret{};
|
||||
CacheEntry pos = data_map.value(id);
|
||||
if (pos.start < 0 || pos.length == 0) return ret;
|
||||
PIByteArray ba(data_->data(pos.start), pos.length);
|
||||
if (!ba.isEmpty()) ba >> ret;
|
||||
return ret;
|
||||
}
|
||||
|
||||
//! \~english Place value of last readed chunk into \"v\"
|
||||
//! \~russian Записывает значение последнего прочитанного чанка в \"v\"
|
||||
template<typename T>
|
||||
|
||||
Reference in New Issue
Block a user