📄 ber.cpp
字号:
// ber.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//
#include "stdafx.h"
#include "demo.h"
#include "ber.h"
#include"nim.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// Cber 僟僀傾儘僌
Cber::Cber(CWnd* pParent /*=NULL*/)
: CDialog(Cber::IDD, pParent)
{
//{{AFX_DATA_INIT(Cber)
m_ber = _T("");
m_ber_ave = _T("");
m_pParent=pParent;
m_nID=Cber::IDD;
m_num = _T("");
//}}AFX_DATA_INIT
}
void Cber::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(Cber)
DDX_Text(pDX, IDC_EDIT_vber, m_ber);
DDX_Text(pDX, IDC_EDIT_vber_ave, m_ber_ave);
DDX_Text(pDX, IDC_EDIT_num, m_num);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(Cber, CDialog)
//{{AFX_MSG_MAP(Cber)
ON_BN_CLICKED(IDC_BUTTON_reset, OnBUTTONreset)
ON_WM_TIMER()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// Cber 儊僢僙乕僕 僴儞僪儔
BOOL Cber::Create()
{
return CDialog::Create(m_nID,m_pParent);
}
void Cber::OnOK()
{
((Cnim*)m_pParent)->BoxDone_ber();
//DestroyWindow();
KillTimer(0);
CDialog::OnOK();
}
void Cber::OnCancel()
{
// TODO: 偙偺埵抲偵摿暿側屻張棟傪捛壛偟偰偔偩偝偄丅
CDialog::OnCancel();
}
void Cber::set_dialog()
{
calculate_ber();
m_ber.Format(" %.3e",ber.ber);
m_ber_ave.Format(" %.3e",ber.ber_ave);
m_num.Format(" %ld ",ber.num);
UpdateData(FALSE);
}
BOOL Cber::OnInitDialog()
{
CDialog::OnInitDialog();
init_calculate_ber();
SetTimer(0,200,NULL);
return TRUE; // 僐儞僩儘乕儖偵僼僅乕僇僗傪愝掕偟側偄偲偒丄栠傝抣偼 TRUE 偲側傝傑偡
// 椺奜: OCX 僾儘僷僥傿 儁乕僕偺栠傝抣偼 FALSE 偲側傝傑偡
}
void Cber::OnTimer(UINT nIDEvent)
{
set_dialog();
CDialog::OnTimer(nIDEvent);
}
void Cber::calculate_ber()
{
((Cnim*)m_pParent)->get_status();
ber.ber=double(((Cnim*)m_pParent)->nim_status.viterbi_ber)*1.e-7;
ber.ber_sum+=ber.ber;
ber.ber_ave=ber.ber_sum/double(ber.num+1);
ber.num+=1;
if(ber.num>ber.num_max) {
init_calculate_ber();
}
}
void Cber::init_calculate_ber()
{
ber.num=0;
ber.num_max=10000;
ber.ber=0.;
ber.ber_sum=0.;
ber.ber_ave=0.;
}
void Cber::OnBUTTONreset()
{
init_calculate_ber();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -