annotate editlogdialog.cpp @ 1:0b3630a29ad8

Initial version based on previous repository. Project was ported to QT6 and in now cmake based.
author Ideenmodellierer <tiefenrauscher@web.de>
date Thu, 27 Nov 2025 18:40:28 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
1 #include "editlogdialog.h"
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
2 #include "ui_LogEditor.h"
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
3 #include "MainWindow.h" // Needed to propagare retranslate()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
4 #include "Utils/Log.h"
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
5
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
6 #include "HardwareOperations.h"
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
7
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
8 #include <QApplication>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
9 #include <QDialogButtonBox>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
10 #include <QDir>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
11 #include <QLibraryInfo>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
12 #include <QPushButton>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
13 #include <QTranslator>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
14 #include <QTableWidget>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
15
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
16
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
17 #ifdef Q_OS_WIN
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
18 # define NOMINMAX 1
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
19 # include <Windows.h>
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
20 # undef NOMINMAX
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
21 #endif
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
22 #define HEADER2OFFSET 0x400
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
23
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
24 EditLogDialog::EditLogDialog(QWidget* parent, HardwareOperations *op)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
25 : QDialog(parent),
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
26 _ui(new Ui::editLogWnd),
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
27 _op(op)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
28 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
29 uint32_t index, index2;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
30 uint32_t sizeY = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
31 _ui->setupUi(this);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
32 QTableWidget* headerView = _ui->SectorView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
33 QTableWidget* sampleView = _ui->SampleView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
34
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
35 _ui->textBrowser_2->setTabStopDistance(
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
36 QFontMetricsF(_ui->textBrowser_2->font()).horizontalAdvance(' ') * 4
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
37 );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
38 headerView->horizontalHeader()->setMinimumSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
39 headerView->verticalHeader()->setMinimumSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
40 headerView->horizontalHeader()->setDefaultSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
41 headerView->verticalHeader()->setDefaultSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
42 headerView->setColumnWidth(0,8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
43 headerView->setRowHeight(0,8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
44 headerView->horizontalHeader()->hide();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
45 headerView->verticalHeader()->hide();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
46
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
47 sampleView->horizontalHeader()->setMinimumSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
48 sampleView->verticalHeader()->setMinimumSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
49 sampleView->horizontalHeader()->setDefaultSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
50 sampleView->verticalHeader()->setDefaultSectionSize(8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
51 sampleView->setColumnWidth(0,8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
52 sampleView->setRowHeight(0,8);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
53 sampleView->horizontalHeader()->hide();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
54 sampleView->verticalHeader()->hide();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
55
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
56 headerView->setRowCount(16);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
57 headerView->setColumnCount(16);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
58
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
59 sampleView->setRowCount(12);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
60 sampleView->setColumnCount(16);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
61
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
62
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
63 HeaderBuffer = new unsigned char[0x8000*8 + 1]; // 64k Headerbuffer + lastDiveindex
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
64 SampleBuffer = new unsigned char[0xC00000 + 4]; // 12MB Samplebuffer + nextSampleAddr
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
65
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
66 headerView->resize(8*16+2,8*16+2);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
67 sampleView->resize(8*16+2,8*12+2);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
68 sizeY = (uint32_t)(headerView->geometry().width()) / 16;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
69
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
70 if(sizeY < 8)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
71 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
72 sizeY = 8;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
73 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
74
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
75 for(index = 0; index <16; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
76 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
77 headerView->setColumnWidth(index,sizeY);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
78 headerView->setRowHeight(index,sizeY);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
79 for(index2 = 0; index2 < 16; index2++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
80 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
81
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
82 item[index * 16 + index2] = new QTableWidgetItem(" ");
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
83 headerView->setItem(index, index2, item[index * 16 + index2]);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
84 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
85 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
86
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
87 for(index = 0; index <12; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
88 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
89 sampleView->setColumnWidth(index,sizeY);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
90 sampleView->setRowHeight(index,sizeY);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
91 for(index2 = 0; index2 < 16; index2++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
92 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
93
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
94 sampleitem[index * 16 + index2] = new QTableWidgetItem(" ");
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
95 sampleView->setItem(index, index2, sampleitem[index * 16 + index2]);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
96 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
97 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
98
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
99 headerView->show();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
100 headerView->setShowGrid(true);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
101
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
102 sampleView->show();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
103 sampleView->setShowGrid(true);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
104
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
105 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
106
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
107 EditLogDialog::~EditLogDialog()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
108 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
109 uint32_t index;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
110
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
111 for(index = 0; index <256; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
112 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
113 delete item[index];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
114 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
115 for(index = 0; index <192; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
116 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
117 delete sampleitem[index];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
118 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
119 delete _ui;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
120 delete HeaderBuffer;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
121 delete SampleBuffer;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
122 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
123
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
124
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
125 void EditLogDialog::on_WriteAllHeader_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
126 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
127 _op->writeAllHeader(HeaderBuffer);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
128 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
129
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
130 void EditLogDialog::on_pushButton_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
131 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
132 Q_ASSERT( _op );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
133
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
134 HeaderBuffer[0] = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
135
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
136 try {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
137 LOG_INFO(tr("Request All Headers..."));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
138 _op->getAllHeader(HeaderBuffer);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
139 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
140 catch(const std::exception& e) {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
141 LOG_INFO( QString("<bg><font color='red'>%1</font></color>: %2")
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
142 .arg(tr("Error"))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
143 .arg(e.what()) );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
144 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
145 if(HeaderBuffer[0] != 0)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
146 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
147 LOG_INFO(tr("Got something"));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
148 updateHeaderStatus();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
149 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
150 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
151
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
152
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
153
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
154 void EditLogDialog::on_HeaderUsage_valueChanged(int value)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
155 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
156
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
157 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
158
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
159 void EditLogDialog::on_ReadAllSamples_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
160 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
161 try {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
162 LOG_INFO(tr("Request All Samples..."));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
163 _op->getAllSamples(SampleBuffer);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
164 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
165 catch(const std::exception& e) {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
166 LOG_INFO( QString("<bg><font color='red'>%1</font></color>: %2")
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
167 .arg(tr("Error"))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
168 .arg(e.what()) );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
169 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
170 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
171
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
172 void EditLogDialog::on_WriteAllSamples_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
173 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
174 try {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
175 LOG_INFO(tr("Request All Samples..."));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
176 _op->writeAllSamples(SampleBuffer);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
177 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
178 catch(const std::exception& e) {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
179 LOG_INFO( QString("<bg><font color='red'>%1</font></color>: %2")
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
180 .arg(tr("Error"))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
181 .arg(e.what()) );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
182 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
183 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
184
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
185 void EditLogDialog::on_pushButton_2_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
186 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
187 qint64 length;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
188 QFile dumpFile;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
189 dumpFile.setFileName("Log_Dump.bin");
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
190 if( ! dumpFile.open(QIODevice::WriteOnly) )
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
191 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
192 LOG_THROW( "Cannot create dump file " );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
193 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
194 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
195 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
196 length = 0x8000*8 + 1;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
197 dumpFile.write((const char*)HeaderBuffer,length);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
198 length = 0xC00000 + 4;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
199 dumpFile.write((const char*)SampleBuffer,length);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
200 dumpFile.close();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
201 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
202 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
203
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
204 void EditLogDialog::on_LoadDump_clicked()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
205 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
206 qint64 length;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
207 QFile dumpFile;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
208 dumpFile.setFileName("Log_Dump.bin");
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
209 if( ! dumpFile.open(QIODevice::ReadOnly) )
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
210 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
211 LOG_THROW( "Cannot read dump file " );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
212 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
213 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
214 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
215 length = 0x8000*8 + 1;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
216 dumpFile.read((char*)HeaderBuffer,length);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
217 length = 0xC00000 + 4;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
218 dumpFile.read((char*)SampleBuffer,length);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
219 dumpFile.close();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
220
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
221 updateHeaderStatus();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
222 updateSampleStatus();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
223 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
224 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
225
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
226 void EditLogDialog::updateHeaderStatus()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
227 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
228 QProgressBar* w = _ui->HeaderUsage;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
229 QTableWidget* sv = _ui->SectorView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
230 SLogbookHeader* LogInfo;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
231 SSmallHeader* smallHeader;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
232 unsigned char HeaderInUse = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
233 uint32_t index, index2;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
234 uint32_t sampleStartAddr, sampleEndAddr, sampleLength;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
235 int row;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
236 int colum;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
237
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
238 for(index = 0; index < 16; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
239 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
240 for(index2 = 0; index2 < 16; index2++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
241 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
242 if((HeaderBuffer[(0x800 * (index * 16 + index2 )) + HEADER2OFFSET] == 0xFA)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
243 && (HeaderBuffer[(0x800 * (index * 16 + index2 )) + HEADER2OFFSET + 1] == 0xFA))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
244 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
245 HeaderInUse++;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
246 LogInfo = (SLogbookHeader*)(HeaderBuffer+(0x800 * (index*16+index2))+0x400);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
247 sampleEndAddr = (LogInfo->profileLength[2]<<16) + (LogInfo->profileLength[1]<<8) + LogInfo->profileLength[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
248 if( sampleEndAddr == 0)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
249 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
250 sv->item(index,index2)->setBackground(Qt::black);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
251 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
252 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
253 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
254 LogInfo = (SLogbookHeader*)(HeaderBuffer+(0x800 * (index*16+index2)));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
255 sampleStartAddr = (LogInfo->pBeginProfileData[2]<<16) + (LogInfo->pBeginProfileData[1]<<8) + LogInfo->pBeginProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
256 smallHeader = (SSmallHeader*) &SampleBuffer[sampleStartAddr-0x100000];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
257 sampleLength = (smallHeader->profileLength[2] << 16)+ (smallHeader->profileLength[1] << 8) + smallHeader->profileLength[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
258 if(sampleLength == sampleEndAddr) // - sampleStartAddr))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
259 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
260 sv->item(index,index2)->setBackground(Qt::green);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
261 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
262 else {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
263 sv->item(index,index2)->setBackground(Qt::red);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
264 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
265 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
266
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
267 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
268 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
269 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
270 sv->item(index,index2)->setBackground(Qt::white);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
271 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
272 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
273 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
274 row =(HeaderBuffer[(0x8000 * 8)])/16;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
275 colum =(HeaderBuffer[(0x8000 * 8)] % 16);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
276 sv->item(row,colum)->setBackground(Qt::blue);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
277 w->setMaximum(256);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
278 w->setValue(HeaderInUse);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
279 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
280
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
281
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
282
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
283
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
284
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
285 void EditLogDialog::on_SectorView_cellClicked(int row, int column)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
286 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
287
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
288 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
289
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
290 void EditLogDialog::updateSampleStatus()
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
291 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
292 uint8_t row,colum;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
293 uint32_t index;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
294 QTableWidget* sv = _ui->SampleView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
295 QProgressBar* w = _ui->SampleUsage;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
296 uint8_t SamplesInUse = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
297
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
298 for(index = 0; index < 192; index++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
299 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
300 row = index / 16;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
301 colum =index % 16;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
302
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
303 if(SampleBuffer[index * 0x10000] != 0xFF) /* used */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
304 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
305 SamplesInUse++;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
306 if(SampleBuffer[index * 0x10000 + 0xFFFF] == 0xFF) /* open */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
307 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
308 sv->item(row,colum)->setBackground(Qt::blue);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
309 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
310 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
311 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
312 sv->item(row,colum)->setBackground(Qt::green); /* closed */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
313 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
314 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
315 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
316 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
317 sv->item(row,colum)->setBackground(Qt::white); /* empty */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
318 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
319 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
320 w->setMaximum(192);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
321 w->setValue(SamplesInUse);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
322 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
323
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
324
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
325
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
326 void EditLogDialog::on_SectorView_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
327 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
328 SLogbookHeader* LogInfo;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
329 SLogbookHeader* LogInfo2nd;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
330 QTextEdit* tf = _ui->textBrowser_2;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
331 QString InfoText;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
332 QTableWidget* sv = _ui->SampleView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
333 uint32_t sampleAddrStart = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
334 uint32_t sampleAddrEnd = 0;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
335 uint8_t rowidx, columidx;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
336
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
337 tf->setReadOnly(true);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
338
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
339 LogInfo = (SLogbookHeader*)(HeaderBuffer+(0x800 * (currentRow*16+currentColumn)));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
340 LogInfo2nd = (SLogbookHeader*)(HeaderBuffer+(0x800 * (currentRow*16+currentColumn)) +0x400);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
341
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
342 updateSampleStatus();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
343
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
344 if(LogInfo->diveHeaderStart == 0xFAFA)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
345 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
346 sampleAddrStart = (LogInfo->pBeginProfileData[2]<<16) + (LogInfo->pBeginProfileData[1]<<8) + LogInfo->pBeginProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
347 sampleAddrEnd = (LogInfo2nd->pEndProfileData[2]<<16) + (LogInfo2nd->pEndProfileData[1]<<8) + LogInfo2nd->pEndProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
348
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
349 // InfoText.sprintf("Header: %d \nNummer: %d\nSamplestart 0x%x\nSampleend 0x%x", currentRow*16+currentColumn, LogInfo->diveNumber,sampleAddrStart,sampleAddrEnd);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
350 InfoText = QString::asprintf(
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
351 "Header: %d \nNummer: %d\nSamplestart 0x%x\nSampleend 0x%x",
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
352 currentRow*16 + currentColumn,
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
353 LogInfo->diveNumber,
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
354 sampleAddrStart,
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
355 sampleAddrEnd
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
356 );
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
357 sampleAddrStart = (LogInfo->pBeginProfileData[2]<<16) + (LogInfo->pBeginProfileData[1]<<8) + LogInfo->pBeginProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
358 if(sampleAddrStart != 0)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
359 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
360 sampleAddrStart -= 0x100000; /* substract memory offset */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
361 sampleAddrStart /= 0x10000; /* calc sector */
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
362 sv->item(sampleAddrStart / 16, sampleAddrStart % 16)->setBackground(Qt::magenta);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
363 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
364 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
365 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
366 sv->item(0, 0)->setBackground(Qt::black);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
367 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
368 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
369 else
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
370 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
371 InfoText = QString::asprintf("Empty");
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
372 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
373 tf->setPlainText((InfoText));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
374 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
375
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
376
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
377
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
378
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
379
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
380 void EditLogDialog::on_SampleView_currentCellChanged(int currentRow, int currentColumn, int previousRow, int previousColumn)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
381 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
382 uint16_t sampleSector;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
383 uint8_t headerRow, headerColumn;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
384 SLogbookHeader* LogInfo;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
385 SLogbookHeader* LogInfo2nd;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
386 uint32_t sectorStart, sectorEnd;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
387 uint32_t sampleAddrStart, sampleAddrEnd;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
388 QTableWidget* headerView = _ui->SectorView;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
389
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
390 sampleSector = currentRow * 16 + currentColumn;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
391 sectorStart = sampleSector * 0x10000 + 0x100000;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
392 sectorEnd = sectorStart +0xFFFF;
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
393 if(SampleBuffer[sectorStart - 0x100000] != 0xFF) // is buffer used?
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
394 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
395 updateHeaderStatus();
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
396 for(headerRow = 0; headerRow < 16; headerRow++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
397 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
398 for(headerColumn = 0; headerColumn < 16; headerColumn++)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
399 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
400 LogInfo = (SLogbookHeader*)(HeaderBuffer+(0x800 * (headerRow*16+headerColumn)));
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
401 LogInfo2nd = (SLogbookHeader*)(HeaderBuffer+(0x800 * (headerRow*16+headerColumn)) +0x400);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
402 sampleAddrStart = (LogInfo->pBeginProfileData[2]<<16) + (LogInfo->pBeginProfileData[1]<<8) + LogInfo->pBeginProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
403 sampleAddrEnd = (LogInfo2nd->pEndProfileData[2]<<16) + (LogInfo2nd->pEndProfileData[1]<<8) + LogInfo2nd->pEndProfileData[0];
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
404
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
405 if(((sampleAddrStart >= sectorStart)&&(sampleAddrStart < sectorEnd)
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
406 || (sampleAddrEnd >= sectorStart)&&(sampleAddrEnd < sectorEnd)))
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
407 {
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
408 headerView->item(headerRow, headerColumn)->setBackground(Qt::magenta);
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
409 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
410 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
411 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
412 }
0b3630a29ad8 Initial version based on previous repository.
Ideenmodellierer <tiefenrauscher@web.de>
parents:
diff changeset
413 }