📄 mainfrm.cpp
字号:
// MainFrm.cpp : CMainFrame 僋儔僗偺摦嶌偺掕媊傪峴偄傑偡丅
//
#include "stdafx.h"
#include "demo.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_COMMAND(ID_MENUITEM_open, OnMENUITEMopen)
ON_COMMAND(ID_MENUITEM_save, OnMENUITEMsave)
ON_COMMAND(ID_MENUITEM_mop, OnMENUITEMmop)
ON_COMMAND(ID_MENUITEM_pll, OnMENUITEMpll)
ON_COMMAND(ID_MENUITEM_nim, OnMENUITEMnim)
ON_WM_DESTROY()
ON_COMMAND(ID_MENUITEM_demod, OnMENUITEMdemod)
ON_COMMAND(ID_MENUITEM_config, OnMENUITEMconfig)
// ON_COMMAND(ID_MENUITEM_test, OnMENUITEMtest)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CMainFrame 僋儔僗偺峔抸/徚柵
CMainFrame::CMainFrame()
{
get_application_file_name();
pa.index=0;//0:digital, 1:analog
//V0.02[050804]
pt.application=pa.Application_Name[0];
set_parameter_from_config_file(pa.Application_File_Name[0]);
//-----
// I2C_SPEED=1;
// PORT_ADDRESS=0x378;
// NT=1, DLL=1;
//init_i2c( pi.I2C_SPEED, pi.PORT_ADDRESS, pi.NT, pi.DLL);
init_i2c( d[4], d[10], 1, 1);
//-----
SetWindowText("");
UpdateData(FALSE);
}
CMainFrame::~CMainFrame()
{
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame 僋儔僗偺恌抐
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame 儊僢僙乕僕 僴儞僪儔
void CMainFrame::OnDestroy()
{
CFrameWnd::OnDestroy();
//iiiii
// //-----
// m_i2c.End();
// //-----
}
void CMainFrame::OnMENUITEMopen()
{
CString file_name="init.cfg";
CFileDialog opendlg( TRUE,"cfg",file_name,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Conifg Files(*.cfg)|*.cfg|All Files(*.*)|*.*||" );
if( opendlg.DoModal() == IDOK ){
file_name = opendlg.GetPathName();
set_parameter_from_config_file(file_name);
}
}
void CMainFrame::OnMENUITEMsave()
{
CString file_name="init.cfg";
file_name=init_cfg_filename_from_applicaiton(pt.application);
CFileDialog savedlg(FALSE,"cfg",file_name,
OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,
"Config Files(*.cfg)|*.cfg|All Files(*.*)|*.*||");
if( savedlg.DoModal() == IDOK ){
file_name = savedlg.GetPathName();
set_config_file_from_parameter(file_name);
}
}
void CMainFrame::OnMENUITEMmop()
{
open_dialog_mop();
}
void CMainFrame::OnMENUITEMpll()
{
open_dialog_pll();
}
void CMainFrame::OnMENUITEMnim()
{
open_dialog_nim();
}
void CMainFrame::init_i2c(int I2C_SPEED, int PORT_ADDRESS, int NT, int DLL)//iiiii
{
d[4]=I2C_SPEED;
d[10]=PORT_ADDRESS;
// // m_i2c.I2C_SPEED=1;
// // m_i2c.PORT_ADDRESS=0x378;
// m_i2c.I2C_SPEED=I2C_SPEED;
// m_i2c.PORT_ADDRESS=PORT_ADDRESS;
// m_i2c.NT=NT;
// m_i2c.DLL=DLL;
// m_i2c.Init();
}
void CMainFrame::open_dialog_mop()
{
//modless dialog
if (m_mop == NULL)
{
m_mop = new Cmop(this);
if (m_mop->Create() == TRUE){
// GetDlgItem(IDOK)->EnableWindow(FALSE);
}
}
else
m_mop->SetActiveWindow();
}
void CMainFrame::BoxDone()
{
if( (m_mop==NULL) && (m_demod==NULL)/**/ ){
// GetDlgItem(IDOK)->EnableWindow();
}
}
void CMainFrame::BoxDone_mop()
{
m_mop=NULL;
BoxDone();
}
void CMainFrame::open_dialog_demod()
{
//modless dialog
if (m_demod == NULL)
{
m_demod = new Cdemod(this);
if (m_demod->Create() == TRUE){
// GetDlgItem(IDOK)->EnableWindow(FALSE);
}
}
else
m_demod->SetActiveWindow();
}
void CMainFrame::BoxDone_demod()
{
m_demod=NULL;
BoxDone();
}
void CMainFrame::OnMENUITEMdemod()
{
open_dialog_demod();
}
void CMainFrame::open_dialog_pll()
{
//modless dialog
if (m_pll == NULL)
{
m_pll = new Cpll(this);
if (m_pll->Create() == TRUE){
// GetDlgItem(IDOK)->EnableWindow(FALSE);
}
}
else
m_pll->SetActiveWindow();
}
void CMainFrame::BoxDone_pll()
{
m_pll=NULL;
BoxDone();
}
void CMainFrame::open_dialog_nim()
{
//modless dialog
if (m_nim == NULL)
{
m_nim = new Cnim(this);
// CString file_name;
set_nim_parameter_from_config_file(m_nim);
if (m_nim->Create() == TRUE){
// GetDlgItem(IDOK)->EnableWindow(FALSE);
}
}
else
m_nim->SetActiveWindow();
}
void CMainFrame::BoxDone_nim()
{
set_nim_config_file_from_parameter(m_nim);
m_nim=NULL;
BoxDone();
}
CString CMainFrame::test()
{
char file_name[100]="setup.cfg";
// char name[100]="";
// char name2[100]="";
char name[10][100];
// char file_name[10][100];
CString t;
FILE *file;
if ( (file=fopen(file_name,"r")) == NULL ){
MessageBox("can not open!!");
return "";
}
// fscanf(file,"%s\t%s",&name,&name2);
fscanf(file,"%s\t%s",&name[0][0],&name[1][0]);
t=(name[0]);
MessageBox(name[0]);
t=(name[1]);
MessageBox(t);
// return name[0][0];
return "a";
}
void CMainFrame::get_application_file_name()
{
char file_name[100]="setup.cfg";
CString t;
FILE *file;
if ( (file=fopen(file_name,"r")) == NULL ){
MessageBox("can not open!!");
//return "";
}
else{
int i=0;
do{
fscanf(file,"%s\t%s",&(pa.Application_Name[i][0]),&(pa.Application_File_Name[i][0]));
t=pa.Application_Name[i];
i++;
}while(t!="");
}
}
int CMainFrame::file_open(CString file_name, int *d)
{
FILE *stream;
int i;
long data;
if ( (stream=fopen(file_name,"r")) == NULL ){
return(1);
}
//initial data[hex]
for(i=0;i<=9;i++){
fscanf(stream,"%d",&data);
d[i]=data;
}
//register setting[hex]
for(i=10;i<=30+0xFF;i++){
//for(i=10;i<=1000;i++){
fscanf(stream,"%x",&data);
d[i]=data;
}
fclose(stream);
return(0);
}
int CMainFrame::file_save(CString file_name, int *d)
{
int i;
FILE *stream;
if ( (stream=fopen(file_name,"w")) == NULL ){
return(1);
}
//initial data[dec]
for(i=0;i<=9;i++){
fprintf( stream,"%ld\n",d[i]);
}
//register setting[hex]
for(i=10;i<=29;i++){
fprintf( stream,"%.2X\n",d[i]);
}
for(i=30;i<=30+0xFF;i++){
fprintf( stream,"%.2X\n",d[i]);
}
fclose(stream);
return(0);
}
void CMainFrame::set_parameter_from_config_file(CString file_name)
{
if(!file_open(file_name,d)) {
pi.I2C_SPEED=d[4];
pi.PORT_ADDRESS=d[10];
pi.NT=1;
pi.DLL=1;
}
else MessageBox("can not open!?");
// int d[100];
// if(!file_open(file_name,d)) {
// pt.if_freq=d[0];
// pt.freq=d[1];
// pt.freq_step=d[2];
// pt.xtal=d[5];
//
// int i;
// int num=9;
// for(i=0;i<num;i++){
// pt.byte[i]=d[20+i];
// }
//
// pi.I2C_SPEED=d[4];
// pi.PORT_ADDRESS=d[10];
// pi.NT=1;
// pi.DLL=1;
// }
// else MessageBox("can not open!?");
}
int CMainFrame::pll_getdata(int byte1)
{
// return m_i2c.pll_getdata(byte1);//iiiii
return 0;
}
CString CMainFrame::init_cfg_filename_from_application(CString application)
{
CString file_name,t;
int index;
index=index_from_application(application);
return pa.Application_File_Name[index];
}
int CMainFrame::index_from_application(CString application)
{
int i=0;
CString name;
do{
name=pa.Application_Name[i];
if(application==name){
break;
}
i++;
}while(name!="");
// CString t;
// t.Format("%d",i); MessageBox(t);
return i;
}
void CMainFrame::set_config_file_from_parameter(CString file_name)
{
//d[4]=pi.I2C_SPEED;
//d[10]=pi.PORT_ADDRESS;
if(file_save(file_name,d)) MessageBox("can not save!?");
// int d[100];
//
// d[0]=pt.if_freq;
// d[1]=pt.freq;
// d[2]=pt.freq_step;
// d[5]=pt.xtal;
//
// int i;
// int num=9;
// for(i=0;i<num;i++){
// d[20+i]=pt.byte[i];
// }
//
// d[4]=pi.I2C_SPEED;
// d[10]=pi.PORT_ADDRESS;
//
// if(file_save(file_name,d)) MessageBox("can not save!?");
}
void CMainFrame::open_dialog_config()
{
//modless dialog
if (m_config == NULL)
{
m_config = new Cconfig(this);
if (m_config->Create() == TRUE){
// GetDlgItem(IDOK)->EnableWindow(FALSE);
}
}
else
m_config->SetActiveWindow();
}
void CMainFrame::BoxDone_config()
{
m_config=NULL;
BoxDone();
}
void CMainFrame::OnMENUITEMconfig()
{
open_dialog_config();
}
void CMainFrame::init_i2c()
{
//init_i2c( pi.I2C_SPEED, pi.PORT_ADDRESS, pi.NT, pi.DLL);
init_i2c(d[4],d[10],1,1);
}
//V0.02[050804]
CString CMainFrame::init_cfg_filename_from_applicaiton(CString application)
{
CString file_name="init.cfg";
int i=0;
do{
if(application==pa.Application_Name[i]) {
file_name=pa.Application_File_Name[i];
break;
}
i++;
}while (pa.Application_File_Name[i]!="");
return file_name;
}
void CMainFrame::set_nim_parameter_from_config_file(Cnim* m_nim)
//void CMainFrame::set_nim_parameter_from_config_file(Cnim* m_nim,CString file_name)
{
int i;
int num=5;
//PLL
m_nim->tuner.if_freq=d[0]; //Hz
m_nim->tuner.freq=d[1]; //Hz
// m_nim->tuner.freq_=double(d[1])/1000.;
m_nim->tuner.xtal=d[5];
m_nim->tuner.iq_wiring=d[7]; //IQ wiring
num=5;
for(i=0;i<num;i++){
m_nim->tuner.byte[i]=d[20+i];
}
//DEMOD
m_nim->demod.symbolrate=d[3]; //sps
// m_nim->demod.symbolrate_=double(d[3])/1000.;
m_nim->demod.xtal=d[6];
m_nim->demod.slave_address=d[12];
num=0xFF;
for(i=0;i<=num;i++){
m_nim->demod.reg[i]=d[30+i];
}
//i2c
m_nim->m_i2c.I2C_SPEED=d[4];
m_nim->m_i2c.PORT_ADDRESS=d[10];
m_nim->m_i2c.NT=1; //NT;
m_nim->m_i2c.DLL=1; //DLL;
}
void CMainFrame::set_nim_config_file_from_parameter(Cnim* m_nim)
//void CMainFrame::set_nim_config_file_from_parameter(Cnim* m_nim,CString file_name)
{
int i;
int num=5;
d[0]=m_nim->tuner.if_freq;
d[1]=m_nim->tuner.freq; //Hz
// d[1]=long(m_nim->tuner.freq_*1000.); //khz->hz
num=5;
for(i=0;i<num;i++){
d[20+i]=m_nim->tuner.byte[i];
}
//DEMOD
d[3]=m_nim->demod.symbolrate; //sps
// d[3]=long(m_nim->demod.symbolrate_*1000);
num=0xFF;
for(i=0;i<=num;i++){
d[30+i]=m_nim->demod.reg[i];
}
// d[4]=pi.I2C_SPEED;
// d[10]=pi.PORT_ADDRESS;
// if(file_save(file_name,d)) MessageBox("can not save!?");
}
void CMainFrame::OnMENUITEMtest()
{
MessageBox("test");
// TODO: 偙偺埵抲偵僐儅儞僪 僴儞僪儔梡偺僐乕僪傪捛壛偟偰偔偩偝偄
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -