}
g_testFrames = m_ckboxTestFrame->GetValue();
- if (g_State && g_testFrames) {
+ if (g_State) {
char bits[80], errors[80], ber[80];
// update stats on main page
event.Skip();
}
+void MainFrame::OnCallSignReset(wxCommandEvent& event)
+{
+ m_pcallsign = m_callsign;
+ memset(m_callsign, 0, MAX_CALLSIGN);
+ wxString s;
+ s.Printf("%s", m_callsign);
+ m_txtCtrlCallSign->SetValue(s);
+}
+
+void MainFrame::OnBerReset(wxCommandEvent& event)
+{
+ g_total_bits = 0;
+ g_total_bit_errors = 0;
+}
+
#ifdef ALC
//-------------------------------------------------------------------------
// OnTogBtnALCClick()
m_togBtnOnOff->SetLabel(wxT("Stop"));
m_rb1400old->Disable();
- m_rb1400->Disable();
m_rb1600->Disable();
+#ifdef DISABLED_FEATURE
+ m_rb1400->Disable();
m_rb2000->Disable();
-
+#endif
// determine what mode we are using
int codec2_mode;
g_Nc = 14;
codec2_mode = CODEC2_MODE_1400;
}
+
+#ifdef DISABLED_FEATURE
if (m_rb1400->GetValue()) {
g_mode = MODE_1400;
g_Nc = 14;
codec2_mode = CODEC2_MODE_1400;
}
+#endif
if (m_rb1600->GetValue()) {
g_mode = MODE_1600;
g_Nc = 16;
codec2_mode = CODEC2_MODE_1300;
}
+#ifdef DISABLED_FEATURE
if (m_rb2000->GetValue()) {
g_mode = MODE_2000;
g_Nc = 20;
codec2_mode = CODEC2_MODE_1400;
}
printf("g_mode: %d Nc: %d codec2_mode: %d\n", g_mode, g_Nc, codec2_mode);
+#endif
// init modem and codec states
//m_btnTogPTT->Disable();
m_togBtnOnOff->SetLabel(wxT("Start"));
m_rb1400old->Enable();
- m_rb1400->Enable();
m_rb1600->Enable();
+#ifdef DISABLED_FEATURE
+ m_rb1400->Enable();
m_rb2000->Enable();
+#endif
}
}
recd_codeword |= codec_bits[i];
}
codeword1 = golay23_decode(recd_codeword);
- if (codeword1 != recd_codeword)
- printf("codeword1: 0x%x recd_codeword: 0x%x\n", codeword1,recd_codeword );
+ g_total_bit_errors += golay23_count_errors(recd_codeword, codeword1);
+ g_total_bits += 23;
+
+ //if (codeword1 != recd_codeword)
+ // printf("codeword1: 0x%x recd_codeword: 0x%x\n", codeword1,recd_codeword );
//fprintf(stderr, "received codeword1: 0x%x decoded codeword1: 0x%x\n", recd_codeword, codeword1);
for(i=0; i<12; i++) {
recd_codeword |= codec_bits[i];
}
codeword2 = golay23_decode(recd_codeword);
- if (codeword2 != recd_codeword)
- printf("codeword2: 0x%x recd_codeword: 0x%x\n", codeword2,recd_codeword );
+ g_total_bit_errors += golay23_count_errors(recd_codeword, codeword2);
+ g_total_bits += 23;
+
+ // if (codeword2 != recd_codeword)
+ // printf("codeword2: 0x%x recd_codeword: 0x%x\n", codeword2,recd_codeword );
//fprintf(stderr, "received codeword2: 0x%x decoded codeword2: 0x%x\n", recd_codeword, codeword2);
for(i=0; i<12; i++) {
recd_codeword |= codec_bits[i];
}
codeword1 = golay23_decode(recd_codeword);
+ g_total_bit_errors += golay23_count_errors(recd_codeword, codeword1);
+ g_total_bits += 23;
+
//if (codeword1 != recd_codeword)
// printf("codeword1: 0x%x recd_codeword: 0x%x\n", codeword1,recd_codeword );
//codeword1 = recd_codeword;
wxBoxSizer* bSizer15;
bSizer15 = new wxBoxSizer(wxVERTICAL);
+ m_BtnCallSignReset = new wxButton(this, wxID_ANY, _("Clear"), wxDefaultPosition, wxDefaultSize, 0);
+ lowerSizer->Add(m_BtnCallSignReset, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);
+
m_txtCtrlCallSign = new wxTextCtrl(this, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY);
m_txtCtrlCallSign->SetToolTip(_("Call Sign of transmitting station will appear here"));
bSizer15->Add(m_txtCtrlCallSign, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL|wxEXPAND, 5);
+
lowerSizer->Add(bSizer15, 1, wxEXPAND, 5);
wxBoxSizer* bSizer141;
//=====================================================
// DR 4 Dec - taken off for screen for Beta release to avoid questions on their use until
- // we implemen this feature
+ // we implement this feature
#ifdef UNIMPLEMENTED
// TxID
//---------
m_ckboxTestFrame = new wxCheckBox(this, wxID_ANY, _("Enable"), wxDefaultPosition, wxDefaultSize, wxCHK_2STATE);
sbSizer_testFrames->Add(m_ckboxTestFrame, 0, wxALIGN_LEFT, 0);
+ rightSizer->Add(sbSizer_testFrames,0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3);
+
+ //------------------------------
+ // BER Frames box
+ //------------------------------
+
+ wxStaticBoxSizer* sbSizer_ber;
+ sbSizer_ber = new wxStaticBoxSizer(new wxStaticBox(this, wxID_ANY, _("Bit Error Rate")), wxVERTICAL);
+
+ m_BtnBerReset = new wxButton(this, wxID_ANY, _("Reset"), wxDefaultPosition, wxDefaultSize, 0);
+ sbSizer_ber->Add(m_BtnBerReset, 0, wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL|wxALL, 1);
+
m_textBits = new wxStaticText(this, wxID_ANY, wxT("Bits...: 0"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- sbSizer_testFrames->Add(m_textBits, 0, wxALIGN_LEFT, 1);
+ sbSizer_ber->Add(m_textBits, 0, wxALIGN_LEFT, 1);
m_textErrors = new wxStaticText(this, wxID_ANY, wxT("Errors: 0"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- sbSizer_testFrames->Add(m_textErrors, 0, wxALIGN_LEFT, 1);
+ sbSizer_ber->Add(m_textErrors, 0, wxALIGN_LEFT, 1);
m_textBER = new wxStaticText(this, wxID_ANY, wxT("BER...: 0.0"), wxDefaultPosition, wxDefaultSize, wxALIGN_LEFT);
- sbSizer_testFrames->Add(m_textBER, 0, wxALIGN_LEFT, 1);
+ sbSizer_ber->Add(m_textBER, 0, wxALIGN_LEFT, 1);
- rightSizer->Add(sbSizer_testFrames,0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3);
+ rightSizer->Add(sbSizer_ber,0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3);
/* new --- */
m_rb1400old = new wxRadioButton( this, wxID_ANY, wxT("1400 V0.91"), wxDefaultPosition, wxDefaultSize, wxRB_GROUP);
sbSizer_mode->Add(m_rb1400old, 0, wxALIGN_LEFT|wxALL, 1);
+#ifdef DISABLED_FEATURE
m_rb1400 = new wxRadioButton( this, wxID_ANY, wxT("1400"), wxDefaultPosition, wxDefaultSize, 0);
sbSizer_mode->Add(m_rb1400, 0, wxALIGN_LEFT|wxALL, 1);
+#endif
m_rb1600 = new wxRadioButton( this, wxID_ANY, wxT("1600"), wxDefaultPosition, wxDefaultSize, 0);
sbSizer_mode->Add(m_rb1600, 0, wxALIGN_LEFT|wxALL, 1);
+#ifdef DISABLED_FEATURE
m_rb2000 = new wxRadioButton( this, wxID_ANY, wxT("2000"), wxDefaultPosition, wxDefaultSize, 0);
sbSizer_mode->Add(m_rb2000, 0, wxALIGN_LEFT|wxALL, 1);
+#endif
rightSizer->Add(sbSizer_mode,0, wxALIGN_CENTER_HORIZONTAL|wxALL|wxEXPAND, 3);
m_togBtnALC->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnALCClick), NULL, this);
#endif
m_btnTogPTT->Connect(wxEVT_COMMAND_TOGGLEBUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnTogBtnPTT), NULL, this);
+
+ m_BtnCallSignReset->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnCallSignReset), NULL, this);
+ m_BtnBerReset->Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(TopFrame::OnBerReset), NULL, this);
}
TopFrame::~TopFrame()