update
This commit is contained in:
parent
cfd6706fa5
commit
2d0724098b
@ -1,6 +1,6 @@
|
|||||||
cmake_minimum_required(VERSION 3.21)
|
cmake_minimum_required(VERSION 3.21)
|
||||||
project(com)
|
project(com)
|
||||||
set(CMAKE_PREFIX_PATH "C:\\Programs\\Qt\\6.2.4\\msvc2019_64")
|
#set(CMAKE_PREFIX_PATH "C:\\Programs\\Qt\\6.2.4\\msvc2019_64")
|
||||||
set(CMAKE_CXX_STANDARD 14)
|
set(CMAKE_CXX_STANDARD 14)
|
||||||
set(CMAKE_AUTOMOC ON)
|
set(CMAKE_AUTOMOC ON)
|
||||||
set(CMAKE_AUTORCC ON)
|
set(CMAKE_AUTORCC ON)
|
||||||
|
119
main_window.cpp
119
main_window.cpp
@ -157,75 +157,84 @@ static int cnt = 0;
|
|||||||
QByteArray first_frame;
|
QByteArray first_frame;
|
||||||
bool first = true;
|
bool first = true;
|
||||||
|
|
||||||
|
#define MAX_BUF_LENGTH 1e4
|
||||||
void main_window::read_data() {
|
void main_window::read_data() {
|
||||||
static int receive_num_cnt = -2;
|
static int receive_num_cnt = -2;
|
||||||
static int receive_byte_cnt = 0;
|
static int receive_byte_cnt = 0;
|
||||||
static int val = 0;
|
static int val = 0;
|
||||||
auto data = port.readAll();
|
auto data = port.readAll();
|
||||||
if (first) {
|
auto pre_cursor =hexTextEdit->textCursor();
|
||||||
if (data.length() < 10) {
|
|
||||||
first_frame += data;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (first_frame[0] != 0) {
|
|
||||||
first_frame.remove(0, 1);
|
|
||||||
}
|
|
||||||
int zero_cnt = 0;
|
|
||||||
do {
|
|
||||||
zero_cnt = 0;
|
|
||||||
while (first_frame[0] != 0) {
|
|
||||||
first_frame.remove(0, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
for (int i = 0; i < 4; i++) {
|
|
||||||
zero_cnt += first_frame[i] == 0 ? 1 : 0;
|
|
||||||
}
|
|
||||||
first_frame.remove(0, 1);
|
|
||||||
} while (zero_cnt != 0);
|
|
||||||
data = first_frame;
|
|
||||||
first = false;
|
|
||||||
}
|
|
||||||
// TODO: BUG int data overflow
|
|
||||||
rawDataFile.write(data);
|
|
||||||
for (int i = 0; i < data.size(); i++) {
|
|
||||||
if (receive_byte_cnt % 4 == 0) {
|
|
||||||
if (data[i] != 0) {
|
|
||||||
msgBox.setText("Error occurred, please restart transmission.");
|
|
||||||
msgBox.exec();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
receive_num_cnt++;
|
|
||||||
if (receive_num_cnt == -1)
|
|
||||||
continue;
|
|
||||||
int real_number = val;
|
|
||||||
if (real_number & 0x800000) {
|
|
||||||
// negative number
|
|
||||||
real_number = -(~real_number & 0x7fffff + 1);
|
|
||||||
}
|
|
||||||
receivefileStream << real_number << " ";
|
|
||||||
double scaled = (double) real_number / (double) (0x7fffff) * 2.5;
|
|
||||||
plotChartView->append ((double) receive_num_cnt / 1000.0, scaled);
|
|
||||||
val = 0;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
val <<= 8;
|
|
||||||
val |= data[i];
|
|
||||||
}
|
|
||||||
QString new_text = QString(data.toHex(' ').toUpper()) + " ";
|
QString new_text = QString(data.toHex(' ').toUpper()) + " ";
|
||||||
hexTextEdit->moveCursor(QTextCursor::End);
|
hexTextEdit->moveCursor(QTextCursor::End);
|
||||||
|
bool move_to_end = pre_cursor == hexTextEdit->textCursor();
|
||||||
hexTextEdit->insertPlainText(new_text);
|
hexTextEdit->insertPlainText(new_text);
|
||||||
auto tmp = hexTextEdit->toPlainText();
|
if (!move_to_end) hexTextEdit->setTextCursor(pre_cursor);
|
||||||
|
pre_cursor = asciiTextEdit->textCursor();
|
||||||
asciiTextEdit->moveCursor(QTextCursor::End);
|
asciiTextEdit->moveCursor(QTextCursor::End);
|
||||||
asciiTextEdit->insertPlainText(QString(data));
|
asciiTextEdit->insertPlainText(QString(data));
|
||||||
if (tmp.length() > 1e3) {
|
if (!move_to_end) asciiTextEdit->setTextCursor(pre_cursor);
|
||||||
hexTextEdit->setPlainText(tmp.last((int) 1e3));
|
|
||||||
|
auto tmp = hexTextEdit->toPlainText();
|
||||||
|
if (tmp.length() > MAX_BUF_LENGTH) {
|
||||||
|
hexTextEdit->setPlainText(tmp.last((int) MAX_BUF_LENGTH));
|
||||||
hexTextEdit->moveCursor(QTextCursor::End);
|
hexTextEdit->moveCursor(QTextCursor::End);
|
||||||
}
|
}
|
||||||
tmp = asciiTextEdit->toPlainText();
|
tmp = asciiTextEdit->toPlainText();
|
||||||
if (tmp.length() > 1e3) {
|
if (tmp.length() > MAX_BUF_LENGTH) {
|
||||||
asciiTextEdit->setPlainText(tmp.last(int(1e3)));
|
asciiTextEdit->setPlainText(tmp.last(int(MAX_BUF_LENGTH)));
|
||||||
asciiTextEdit->moveCursor(QTextCursor::End);
|
asciiTextEdit->moveCursor(QTextCursor::End);
|
||||||
}
|
}
|
||||||
|
// data processing
|
||||||
|
// if (first) {
|
||||||
|
// if (data.length() < 10) {
|
||||||
|
// first_frame += data;
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// while (first_frame.size() > 0 && first_frame[0] != 0) {
|
||||||
|
// first_frame.remove(0, 1);
|
||||||
|
// }
|
||||||
|
// int zero_cnt = 0;
|
||||||
|
// do {
|
||||||
|
// zero_cnt = 0;
|
||||||
|
// while (first_frame.size() > 0 && first_frame[0] != 0) {
|
||||||
|
// first_frame.remove(0, 1);
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// for (int i = 0; i < 4 && i < first_frame.size(); i++) {
|
||||||
|
// zero_cnt += first_frame[i] == 0 ? 1 : 0;
|
||||||
|
// }
|
||||||
|
// first_frame.remove(0, 1);
|
||||||
|
// } while (zero_cnt != 0);
|
||||||
|
// data = first_frame;
|
||||||
|
// first = false;
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // TODO: BUG int data overflow
|
||||||
|
// rawDataFile.write(data);
|
||||||
|
// for (int i = 0; i < data.size(); i++) {
|
||||||
|
// if (receive_byte_cnt % 4 == 0) {
|
||||||
|
// if (data[i] != 0) {
|
||||||
|
// msgBox.setText("Error occurred, please restart transmission.");
|
||||||
|
// msgBox.exec();
|
||||||
|
// this->open_port();
|
||||||
|
// return;
|
||||||
|
// }
|
||||||
|
// receive_num_cnt++;
|
||||||
|
// if (receive_num_cnt == -1)
|
||||||
|
// continue;
|
||||||
|
// int real_number = val;
|
||||||
|
// if (real_number & 0x800000) {
|
||||||
|
// // negative number
|
||||||
|
// real_number = -(~real_number & 0x7fffff + 1);
|
||||||
|
// }
|
||||||
|
// receivefileStream << real_number << " ";
|
||||||
|
// double scaled = (double) real_number / (double) (0x7fffff) * 2.5;
|
||||||
|
// plotChartView->append ((double) receive_num_cnt / 1000.0, scaled);
|
||||||
|
// val = 0;
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
// val <<= 8;
|
||||||
|
// val |= data[i];
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user