gui access to dac logging

pull/3/head
Clyne 4 years ago
parent 86453bc8f4
commit f3e4d176d5

@ -26,6 +26,7 @@ enum Id {
MRunConnect, MRunConnect,
MRunStart, MRunStart,
MRunMeasure, MRunMeasure,
MRunLogResults,
MRunUpload, MRunUpload,
MRunUnload, MRunUnload,
MRunEditBSize, MRunEditBSize,
@ -100,6 +101,8 @@ MainFrame::MainFrame() : wxFrame(nullptr, wxID_ANY, "stmdspgui", wxPoint(50, 50)
Bind(wxEVT_MENU, &MainFrame::onRunStart, this, Id::MRunStart, wxID_ANY, Bind(wxEVT_MENU, &MainFrame::onRunStart, this, Id::MRunStart, wxID_ANY,
menuRun->Append(MRunStart, "&Start")); menuRun->Append(MRunStart, "&Start"));
m_run_measure = menuRun->AppendCheckItem(MRunMeasure, "&Measure code time"); m_run_measure = menuRun->AppendCheckItem(MRunMeasure, "&Measure code time");
Bind(wxEVT_MENU, &MainFrame::onRunLogResults, this, Id::MRunLogResults, wxID_ANY,
menuRun->AppendCheckItem(MRunLogResults, "&Log results..."));
menuRun->AppendSeparator(); menuRun->AppendSeparator();
Bind(wxEVT_MENU, &MainFrame::onRunUpload, this, Id::MRunUpload, wxID_ANY, Bind(wxEVT_MENU, &MainFrame::onRunUpload, this, Id::MRunUpload, wxID_ANY,
menuRun->Append(MRunUpload, "&Upload code")); menuRun->Append(MRunUpload, "&Upload code"));
@ -144,23 +147,13 @@ void MainFrame::onCloseEvent(wxCloseEvent& event)
void MainFrame::onMeasureTimer([[maybe_unused]] wxTimerEvent&) void MainFrame::onMeasureTimer([[maybe_unused]] wxTimerEvent&)
{ {
if (m_conv_result_log != nullptr) { if (m_conv_result_log != nullptr) {
static unsigned int counter = 0;
if (auto samples = m_device->continuous_read(); samples.size() > 0) { if (auto samples = m_device->continuous_read(); samples.size() > 0) {
for (auto& s : samples) { for (auto& s : samples) {
auto str = wxString::Format("%u\n", s); auto str = wxString::Format("%u\n", s);
m_conv_result_log->Write(str.ToAscii(), str.Len()); m_conv_result_log->Write(str.ToAscii(), str.Len());
} }
counter++;
} }
} else if (m_status_bar && m_run_measure && m_run_measure->IsChecked()) {
//if (counter == 20) {
// m_conv_result_log->Close();
// delete m_conv_result_log;
// m_conv_result_log = nullptr;
// counter = 0;
//}
} else if (m_status_bar && m_device) {
m_status_bar->SetStatusText(wxString::Format(wxT("Execution time: %u cycles"), m_status_bar->SetStatusText(wxString::Format(wxT("Execution time: %u cycles"),
m_device->continuous_start_get_measurement())); m_device->continuous_start_get_measurement()));
} }
@ -409,12 +402,6 @@ void MainFrame::onRunStart(wxCommandEvent& ce)
if (!m_is_running) { if (!m_is_running) {
if (m_device != nullptr && m_device->connected()) { if (m_device != nullptr && m_device->connected()) {
if (m_conv_result_log != nullptr) {
m_conv_result_log->Close();
delete m_conv_result_log;
}
m_conv_result_log = new wxFileOutputStream("results.csv");
if (m_run_measure && m_run_measure->IsChecked()) { if (m_run_measure && m_run_measure->IsChecked()) {
m_device->continuous_start_measure(); m_device->continuous_start_measure();
m_measure_timer->StartOnce(1000); m_measure_timer->StartOnce(1000);
@ -431,11 +418,6 @@ void MainFrame::onRunStart(wxCommandEvent& ce)
m_status_bar->SetStatusText("Please connect."); m_status_bar->SetStatusText("Please connect.");
} }
} else { } else {
if (m_conv_result_log != nullptr) {
m_conv_result_log->Close();
delete m_conv_result_log;
m_conv_result_log = nullptr;
}
m_device->continuous_stop(); m_device->continuous_stop();
menuItem->SetItemLabel("&Start"); menuItem->SetItemLabel("&Start");
@ -444,6 +426,31 @@ void MainFrame::onRunStart(wxCommandEvent& ce)
} }
} }
void MainFrame::onRunLogResults(wxCommandEvent& ce)
{
auto menuItem = dynamic_cast<wxMenuItem *>(ce.GetEventUserData());
if (menuItem->IsChecked()) {
wxFileDialog dialog (this, "Choose log file", "", "", "*.csv",
wxFD_SAVE | wxFD_OVERWRITE_PROMPT);
if (dialog.ShowModal() != wxID_CANCEL) {
if (m_conv_result_log != nullptr) {
m_conv_result_log->Close();
delete m_conv_result_log;
m_conv_result_log = nullptr;
}
m_conv_result_log = new wxFileOutputStream(dialog.GetPath());
}
m_status_bar->SetStatusText("Ready.");
} else if (m_conv_result_log != nullptr) {
m_conv_result_log->Close();
delete m_conv_result_log;
m_conv_result_log = nullptr;
}
}
void MainFrame::onRunEditBSize([[maybe_unused]] wxCommandEvent&) void MainFrame::onRunEditBSize([[maybe_unused]] wxCommandEvent&)
{ {
if (m_device != nullptr && m_device->connected()) { if (m_device != nullptr && m_device->connected()) {

@ -34,6 +34,7 @@ public:
void onRunConnect(wxCommandEvent&); void onRunConnect(wxCommandEvent&);
void onRunStart(wxCommandEvent&); void onRunStart(wxCommandEvent&);
void onRunLogResults(wxCommandEvent&);
void onRunUpload(wxCommandEvent&); void onRunUpload(wxCommandEvent&);
void onRunUnload(wxCommandEvent&); void onRunUnload(wxCommandEvent&);
void onRunEditBSize(wxCommandEvent&); void onRunEditBSize(wxCommandEvent&);

@ -30,7 +30,7 @@ constexpr static const DACConversionGroup dac_group_config = {
}; };
constexpr static const GPTConfig gpt_config = { constexpr static const GPTConfig gpt_config = {
.frequency = 1440000, .frequency = 14400000,
.callback = nullptr, .callback = nullptr,
.cr2 = TIM_CR2_MMS_1, /* TRGO */ .cr2 = TIM_CR2_MMS_1, /* TRGO */
.dier = 0 .dier = 0

Loading…
Cancel
Save