PIBinaryLog support for uint ID

This commit is contained in:
2023-05-03 22:12:56 +03:00
parent f5392f8b63
commit dea29429bf

View File

@@ -366,7 +366,7 @@ PIByteArray PIBinaryLog::readBinLog(int id, PISystemTime * time, int * readed_id
fileEnd();
return PIByteArray();
}
if (id == 0 && br.id > 0) {
if ((id == 0) && (br.id != 0) && (br.id != -1)) {
if (time) *time = br.timestamp;
if (readed_id) *readed_id = br.id;
return br.data;
@@ -434,7 +434,7 @@ ssize_t PIBinaryLog::readDevice(void * read_to, ssize_t max_size) {
piCoutObj << "End of BinLog file";
return 0;
}
if (br.id <= 0) {
if (br.id == 0) {
piCoutObj << "Read record error";
return -1;
}
@@ -516,7 +516,7 @@ bool PIBinaryLog::checkFileHeader() {
PIBinaryLog::BinLogRecord PIBinaryLog::readRecord() {
// piCoutObj << "readRecord";
// piCoutObj << "readRecord pos =" << file.pos();
logmutex.lock();
PIByteArray ba;
BinLogRecord br;
@@ -529,10 +529,10 @@ PIBinaryLog::BinLogRecord PIBinaryLog::readRecord() {
} else {
br.id = -1;
logmutex.unlock();
// piCoutObj << "readRecord done";
// piCoutObj << "readRecord done" << br.id;
return br;
}
if (br.id > 0 && br.size > 0) {
if ((br.id != 0) && (br.id != -1) && (br.size > 0)) {
ba.resize(br.size);
if (file.read(ba.data(), ba.size_s()) > 0)
br.data = ba;
@@ -750,7 +750,7 @@ bool PIBinaryLog::joinBinLogsSerial(const PIStringList & src,
PISystemTime st;
while (!slog.isEnd()) {
br = slog.readRecord();
if (br.data.isEmpty() || br.id < 1) continue;
if (br.data.isEmpty() || br.id == 0 || br.id == -1) continue;
st = br.timestamp;
lt = dtime + br.timestamp;
if (dlog.writeBinLog_raw(br.id, lt, br.data) <= 0) {