Skip to content

Commit

Permalink
Changes to allow 2D tables to be selected and displayed by name, rath…
Browse files Browse the repository at this point in the history
…er than just by integer locationID
  • Loading branch information
malcom2073 committed Jan 25, 2014
1 parent 9f0f013 commit a33ee51
Show file tree
Hide file tree
Showing 12 changed files with 95 additions and 5 deletions.
2 changes: 1 addition & 1 deletion core/src/flagview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ void FlagView::passData(QVariantMap data)
}
else
{
QLOG_TRACE() << "unknown value type:" << i.value().typeName();
//QLOG_TRACE() << "unknown value type:" << i.value().typeName();
}
i++;
}
Expand Down
26 changes: 26 additions & 0 deletions core/src/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,7 @@ MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent)
emsMdiWindow->setWindowTitle(emsInfo->windowTitle());

parameterView = new ParameterView();
connect(parameterView,SIGNAL(showTable(QString)),this,SLOT(showTable(QString)));
parameterMdiWindow = ui.mdiArea->addSubWindow(parameterView);
parameterMdiWindow->setGeometry(parameterView->geometry());
parameterMdiWindow->hide();
Expand Down Expand Up @@ -749,6 +750,31 @@ void MainWindow::menu_windows_PacketStatusClicked()
QApplication::postEvent(packetStatusMdiWindow, new QEvent(QEvent::Show));
QApplication::postEvent(packetStatusMdiWindow, new QEvent(QEvent::WindowActivate));
}
void MainWindow::showTable(QString table)
{
Table2DData *data = emsComms->get2DTableData(table);
TableView2D *view = new TableView2D();
connect(view,SIGNAL(destroyed(QObject*)),this,SLOT(rawDataViewDestroyed(QObject*)));
QString title;
//Table2DMetaData metadata = m_memoryMetaData->get2DMetaData(locid);
//view->setMetaData(metadata);
DataBlock *block = dynamic_cast<DataBlock*>(data);
if (!view->setData(table,block))
{
return;
}
//title = metadata.tableTitle;
connect(view,SIGNAL(destroyed(QObject*)),this,SLOT(rawDataViewDestroyed(QObject*)));

QMdiSubWindow *win = ui.mdiArea->addSubWindow(view);
//win->setWindowTitle("Ram Location 0x" + QString::number(locid,16).toUpper() + " " + title);
win->setWindowTitle("Ram Location " + table);
win->setGeometry(0,0,((view->width() < this->width()-160) ? view->width() : this->width()-160),((view->height() < this->height()-100) ? view->height() : this->height()-100));
//m_rawDataView[locid] = view;
win->show();
QApplication::postEvent(win, new QEvent(QEvent::Show));
QApplication::postEvent(win, new QEvent(QEvent::WindowActivate));
}

void MainWindow::createView(unsigned short locid,DataType type)
{
Expand Down
1 change: 1 addition & 0 deletions core/src/mainwindow.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,7 @@ class MainWindow : public QMainWindow
QMap<QMdiSubWindow*,QAction*> m_mdiSubWindowToActionMap;
bool m_EcuResetPopup;
private slots:
void showTable(QString table);
void windowHidden(QMdiSubWindow* window);
void bringToFrontAndShow();
void windowDestroyed(QObject *window);
Expand Down
1 change: 1 addition & 0 deletions core/src/parameterview.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ void ParameterView::currentItemChanged(QTreeWidgetItem *current,QTreeWidgetItem
if (!m_metaMenu.menulist[i].subMenuList[j].is_seperator)
{
QLOG_DEBUG() << "Variable:" << m_metaMenu.menulist[i].subMenuList[j].variable;
emit showTable(m_metaMenu.menulist[i].subMenuList[j].variable);
for (int k=0;k<m_metaMenu.dialoglist.size();k++)
{
if (m_metaMenu.dialoglist[k].variable == m_metaMenu.menulist[i].subMenuList[j].variable)
Expand Down
1 change: 1 addition & 0 deletions core/src/parameterview.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ class ParameterView : public QWidget
signals:
void saveSingleData(unsigned short locationid,QByteArray data, unsigned short offset, unsigned short size);
void windowHiding(QMdiSubWindow *parent);
void showTable(QString table);
public slots:
void currentItemChanged(QTreeWidgetItem *current,QTreeWidgetItem *prev);
void itemSelectionChanged();
Expand Down
26 changes: 24 additions & 2 deletions core/src/tableview2d.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ TableView2D::TableView2D(QWidget *parent)
grid->setPen(QPen(QColor::fromRgb(100,100,100)));
grid->attach(ui.plot);


//curve->setData()
//QwtSeriesData<QwtIntervalSample> series;
/*if (!isram)
Expand Down Expand Up @@ -750,6 +751,24 @@ bool TableView2D::setData(unsigned short locationid,DataBlock *data)
m_locationid = locationid;
return updateTable();
}
bool TableView2D::setData(QString name,DataBlock *data)
{
if (!metaDataValid)
{
m_metaData = Table2DMetaData();
}
if (tableData == 0)
{
tableData = dynamic_cast<Table2DData*>(data);
connect(tableData,SIGNAL(update()),this,SLOT(updateTable()));
}
if (tableData == 0)
{
return false;
}
QLOG_DEBUG() << "TableView2D::passData" << name;
return updateTable();
}
bool TableView2D::updateTable()
{
samples.clear();
Expand Down Expand Up @@ -793,7 +812,7 @@ bool TableView2D::updateTable()
{
//Out of order table axis.
QLOG_ERROR() << "2D Table axis is out of order!";
return false;
//return false;
}
}
else if (order == 2)
Expand All @@ -802,7 +821,7 @@ bool TableView2D::updateTable()
{
//Out of order table axis.
QLOG_ERROR() << "2D Table axis is out of order!";
return false;
//return false;
}
}
first = tableData->axis()[i];
Expand Down Expand Up @@ -844,6 +863,9 @@ bool TableView2D::updateTable()
{
ui.tableWidget->item(selectedlist[i].first,selectedlist[i].second)->setSelected(true);
}
ui.plot->setAxisTitle(QwtPlot::xBottom,tableData->axisLabel());
ui.plot->setAxisTitle(QwtPlot::yLeft,tableData->valueLabel());


selectedlist.clear();
//ui.tableWidget->resizeColumnsToContents();
Expand Down
1 change: 1 addition & 0 deletions core/src/tableview2d.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ class TableView2D : public DataView
//bool setData(unsigned short locationid,QByteArray rawdata);
void setMetaData(Table2DMetaData metadata);
bool setData(unsigned short locationid,DataBlock *data);
bool setData(QString name,DataBlock *data);
//void passData(unsigned short locationid,Table2DData data);
void passDatalog(QVariantMap data);
private:
Expand Down
2 changes: 2 additions & 0 deletions lib/core/emscomms.h
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,8 @@ class EmsComms : public QThread
virtual void startInterrogation()=0;
virtual Table2DData* get2DTableData(unsigned short locationid)=0;
virtual Table3DData* get3DTableData(unsigned short locationid)=0;
virtual Table2DData* get2DTableData(QString locationname)=0;
virtual Table3DData* get3DTableData(QString locationname)=0;
virtual RawData* getRawData(unsigned short locationid)=0;
virtual ConfigData* getConfigData(QString name) = 0;
virtual QList<QString> getConfigList()=0;
Expand Down
2 changes: 2 additions & 0 deletions lib/core/table2ddata.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,8 @@ class Table2DData : public DataBlock
virtual void setWritesEnabled(bool enabled) = 0;
virtual void writeWholeLocation(bool ram) = 0;
virtual bool isRam()=0;
virtual QString axisLabel()=0;
virtual QString valueLabel()=0;
signals:
void saveSingleData(unsigned short locationid,QByteArray data, unsigned short offset, unsigned short size);
public slots:
Expand Down
6 changes: 4 additions & 2 deletions plugins/freeems/fetable2ddata.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,8 @@ class FETable2DData : public Table2DData
double maxCalcedYAxis();
double minCalcedXAxis();
double minCalcedYAxis();
QString axisLabel() { return ""; }
QString valueLabel() { return ""; }

QList<double> axis();
QList<double> values();
Expand Down Expand Up @@ -75,8 +77,8 @@ class FETable2DData : public Table2DData
unsigned short m_locationId;
QList<double> m_axis;
QList<double> m_values;
QString axisLabel;
QString valuesLabel;
QString m_axisLabel;
QString m_valuesLabel;
void reCalcAxisData();
signals:
void saveSingleDataToFlash(unsigned short locationid,unsigned short offset, unsigned short size,QByteArray data);
Expand Down
30 changes: 30 additions & 0 deletions plugins/freeems/freeemscomms.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1785,6 +1785,36 @@ Table3DData* FreeEmsComms::get3DTableData(unsigned short locationid)
}
return m_3dTableMap[locationid];
}
Table2DData* FreeEmsComms::get2DTableData(QString locationname)
{
bool ok = false;
unsigned short locid = locationname.toInt(&ok,16);
if (!ok)
{
return 0;
}
if (!m_2dTableMap.contains(locid))
{
return 0;
}
return m_2dTableMap.value(locid);
}

Table3DData* FreeEmsComms::get3DTableData(QString locationname)
{
bool ok = false;
unsigned short locid = locationname.toInt(&ok,16);
if (!ok)
{
return 0;
}
if (!m_3dTableMap.contains(locid))
{
return 0;
}
return m_3dTableMap.value(locid);
}

RawData* FreeEmsComms::getRawData(unsigned short locationid)
{
if (!m_rawDataMap.contains(locationid))
Expand Down
2 changes: 2 additions & 0 deletions plugins/freeems/freeemscomms.h
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ class FreeEmsComms : public EmsComms
int disableDatalogStream();
Table2DData* get2DTableData(unsigned short locationid);
Table3DData* get3DTableData(unsigned short locationid);
Table2DData* get2DTableData(QString locationname);
Table3DData* get3DTableData(QString locationname);
RawData* getRawData(unsigned short locationid);
ConfigData* getConfigData(QString name);
QList<QString> getConfigList();
Expand Down

0 comments on commit a33ee51

Please sign in to comment.