mirror of
https://github.com/epasveer/seer.git
synced 2026-08-30 09:00:42 +08:00
checkpoint: array visualizer.
This commit is contained in:
@@ -122,6 +122,11 @@ QString SeerArrayWidget::arrayModeString () const {
|
||||
return "???";
|
||||
}
|
||||
|
||||
const QVector<double>& SeerArrayWidget::arrayValues () const {
|
||||
|
||||
return _arrayValues;
|
||||
}
|
||||
|
||||
void SeerArrayWidget::setData(SeerArrayWidget::DataStorage* pData) {
|
||||
|
||||
if (_pdata) {
|
||||
@@ -141,12 +146,17 @@ void SeerArrayWidget::create () {
|
||||
setRowCount(0);
|
||||
setColumnCount(elementsPerLine());
|
||||
|
||||
// Clear the values.
|
||||
_arrayValues.resize(0);
|
||||
|
||||
// If there's no data, do nothing.
|
||||
if (!_pdata) {
|
||||
emit dataChanged();
|
||||
return;
|
||||
}
|
||||
|
||||
if (elementSize() < 1) {
|
||||
emit dataChanged();
|
||||
return;
|
||||
}
|
||||
|
||||
@@ -166,58 +176,82 @@ void SeerArrayWidget::create () {
|
||||
QByteArray element = _pdata->getData(i, elementSize());
|
||||
|
||||
QByteArray hex = element.toHex();
|
||||
double val = 0.0;
|
||||
|
||||
if (arrayMode() == SeerArrayWidget::Int16ArrayMode) {
|
||||
|
||||
short v = *reinterpret_cast<short*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::UInt16ArrayMode) {
|
||||
|
||||
unsigned short v = *reinterpret_cast<unsigned short*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::Int32ArrayMode) {
|
||||
|
||||
int v = *reinterpret_cast<int*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::UInt32ArrayMode) {
|
||||
|
||||
unsigned int v = *reinterpret_cast<unsigned int*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::Int64ArrayMode) {
|
||||
|
||||
long v = *reinterpret_cast<long*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::UInt64ArrayMode) {
|
||||
|
||||
unsigned long v = *reinterpret_cast<unsigned long*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::Float32ArrayMode) {
|
||||
|
||||
float v = *reinterpret_cast<float*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else if (arrayMode() == SeerArrayWidget::Float64ArrayMode) {
|
||||
|
||||
double v = *reinterpret_cast<double*>(element.data());
|
||||
|
||||
val = v;
|
||||
|
||||
item->setText(QString::number(v));
|
||||
|
||||
}else{
|
||||
qWarning() << "Unknown data type.";
|
||||
|
||||
val = 0.0;
|
||||
}
|
||||
|
||||
setItem(row, col, item);
|
||||
|
||||
_arrayValues.push_back(val);
|
||||
|
||||
col++;
|
||||
|
||||
if (col >= elementsPerLine()) {
|
||||
@@ -225,6 +259,8 @@ void SeerArrayWidget::create () {
|
||||
row++;
|
||||
}
|
||||
}
|
||||
|
||||
emit dataChanged();
|
||||
}
|
||||
|
||||
SeerArrayWidget::DataStorageArray::DataStorageArray(const QByteArray& arr) {
|
||||
|
||||
Reference in New Issue
Block a user