⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dlg_wave.cpp

📁 对日本KSG震动探测仪器编写的伴侣服务代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
}

/*=====================================
@p	<< 惉暘俀亅僌儔僼昞帵儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnDisp2() 
{
	// Nop (柍岠昞帵)
}

/*=====================================
@p	<< 攇宍僨乕僞撉傒崬傒儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnRead() 
{
// 18-Feb-1999
//	if (CSV_file_read(&Sel_Wave.dat, &Sel_Data) == IDOK) {	// CSV僨乕僞庢摼
	if (CSV_file_read(&DmySelWav.dat, &Sel_Data) == IDOK) {	// CSV僨乕僞庢摼
		OnSelchangeCombo1();
		DataDisp(0);					// 僨乕僞昞帵
	}
//	struct S_RCV_WAV wdat;
//	struct S_Dsp_Data ddat;
//	if (CSV_file_read(&wdat.dat, &ddat) == IDOK) {	// CSV僨乕僞庢摼
//		Sel_Wave = wdat;
//		Sel_Data = ddat;
//		CDlg_Wave::DataDisp(0);					// 僨乕僞昞帵
//	}
}

/*=====================================
@p	<< 攇宍僨乕僞弌椡儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnWrite() 
{

//	if (CSV_file_save(&Sel_Wave.dat, &Sel_Data) == IDOK) {
	if (CSV_file_save(&DmySelWav.dat, &Sel_Data) == IDOK) {
		sel_disp(Sel_msg[4], 1);
	}
}

/*=====================================
@p	<< 慡昞帵儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnArea() 
{
	char	buf[20];
	
	Disp_Area = 1 - Disp_Area;
	if (Disp_Area == 0) {
		Wave_max = 300;
		sprintf(buf, "慡昞帵(&D)");
	}
	else {
		Wave_max = MAX_WAVE_CNT;
		sprintf(buf, "300屄昞帵(&D)");
	}
	CDlg_Wave::GridInit();						// 僌儕僢僪弶婜壔
	CDlg_Wave::DataDisp(1);						// 僨乕僞昞帵
	SetDlgItemText(IDC_BTN_AREA, buf);
}

/*=====================================
@p	<< 儊僯儏乕儃僞儞 >>
=====================================*/
void CDlg_Wave::OnBtnMenu() 
{
	DspReqStack(DSP_MENU);
}

/*-------------------------------------
						m:26-Dec-1998
@p	<< 僞僀僩儖昞帵 >>
堷悢		n			0 -> 捠忢僞僀僩儖
						1 -> 昤夋拞僞僀僩儖
栠抣		側偟
-------------------------------------*/
void CDlg_Wave::TitleDisp(int n)
{
	SetWindowText(Wave_Title[n]);
}

/*-------------------------------------
						m:18-Dec-1998
@p	<< 攇宍僨乕僞僼傽僀儖(BIN)撉傒崬傒 >>
堷悢		側偟
栠抣		側偟
-------------------------------------*/
void CDlg_Wave::WaveBinDataRead(char *fname)
{
// 18-Feb-1999
//	struct	S_RCV_WAV	wdat;
	char	buf[512];
	int 	a, err;

//	err = get_wave_data(fname, (char*)&Sel_Wave);
	err = get_wave_data(fname, (char*)&DmySelWav);

	// 08-Apr-2004
	for (a=0;a<MAX_WAVE_CNT;a++){
		Sel_Wave.dat.Wave[a][0] = DmySelWav.dat.Wave[MAX_WAVE_CNT*SelCh+a][0];
		Sel_Wave.dat.Wave[a][1] = DmySelWav.dat.Wave[MAX_WAVE_CNT*SelCh+a][1];
		Sel_Wave.dat.Wave[a][2] = DmySelWav.dat.Wave[MAX_WAVE_CNT*SelCh+a][2];
	}

	if (err != 0) {
		switch (err) {
		case -1:								// 僼傽僀儖専嶕僄儔乕
			sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[10], Sel_Data.File);
			break;
		case -2:								// 僨乕僞撉傒崬傒僄儔乕
			sprintf(buf, "%s\r\n\r\n[%s]", Err_msg[11], Sel_Data.File);
			break;
		}
		err_disp(buf);							// 僄儔乕儊僢僙乕僕昞帵
		Sel_Data.File[0] = NULL;
		Sel_Data.Pnt[0] = NULL;
		memfill((char*)&Sel_Wave, sizeof(S_RCV_WAV), NULL);
	}
}

/*-------------------------------------
						m:11-Dec-1998
@p	<< 僼儗僢僋僗僌儕僢僪弶婜壔 >>
-------------------------------------*/
void CDlg_Wave::GridInit()
{
	CMSFlexGrid*	pGrid;
	CMSFlexGrid*	mGrid;
	int 			i, num, xyz, n = 0;
	char			buf[50];
	char			*num_tbl[] = { "1" , "2" , "3" , "4" , "5" };

	pGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID);
	mGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID_MAX);
	pGrid->ShowWindow(SW_HIDE);
	mGrid->ShowWindow(SW_HIDE);
	pGrid->SetCols(GRID_COL_MAX);
	mGrid->SetCols(GRID_COL_MAX);
	pGrid->SetRows(Wave_max + 1);
	// 墶曽岦
	pGrid->SetCol(0);
	pGrid->SetColWidth(0, 700);
	mGrid->SetCol(0);
	mGrid->SetColWidth(0, 700);
	pGrid->SetRowHeight(0, 450);
	pGrid->SetRow(0);
	num = xyz = 0;
	for (i=1; i<GRID_COL_MAX; i++) {
		pGrid->SetCol(i);
		pGrid->SetCellAlignment(flexAlignCenterCenter);
		mGrid->SetCol(i);
		mGrid->SetCellAlignment(flexAlignCenterCenter);
		if (i < 3+1) {
			sprintf(buf, "惉暘%s\r\n壛懍搙 %s", num_tbl[/*num*/SelCh], XYZ_tbl[xyz]);
			pGrid->SetText(buf);
		}
		pGrid->SetColWidth(i, 1150);
		mGrid->SetColWidth(i, 1150);
		if (((n+1)%3) == 0)
			num ++;
		xyz ++;
		if (xyz == 3) xyz = 0;
		n ++;
	}
	// 廲曽岦
	pGrid->SetCol(0);
	pGrid->SetRow(0);
	pGrid->SetText("寁應弴");

	mGrid->SetCol(0);
	mGrid->SetText("嵟戝");
	mGrid->SetCellAlignment(flexAlignCenterCenter);

	CDlg_Wave::TitleDisp(1);
	for (i=0; i<Wave_max; i++) {
		sprintf(buf, "%d", i+1);
		pGrid->SetRow(i+1);
		pGrid->SetText(buf);
	}
	CDlg_Wave::TitleDisp(0);

	pGrid->ShowWindow(SW_SHOW);
	mGrid->ShowWindow(SW_SHOW);
}

/*-------------------------------------
						m:11-Dec-1998
@p	<< 僨乕僞撪嵟戝抣専嶕 >>
堷悢		側偟
栠抣		側偟
-------------------------------------*/
void CDlg_Wave::SearchMax()
{
	int		i, j, p[3];
	float	d;

	for (i=0; i<3; i++) {
		XYZ_max_acc[i] = 0;
		d = Sel_Wave.dat.Wave[0][i];
		for (j=1; j<MAX_WAVE_CNT; j++) {
			if (d < Sel_Wave.dat.Wave[j][i]) {
				d = Sel_Wave.dat.Wave[j][i];
				p[i] = j;
			}
		}
		XYZ_max_acc[i] = d;
	}
}

/*-------------------------------------
						m:11-Dec-1998
@p	<< 僼儗僢僋僗僌儕僢僪僨乕僞昞帵 >>
堷悢		flg			1:No.昞帵偁傝
						0:No.昞帵側偟
栠抣
-------------------------------------*/
void CDlg_Wave::DataDisp(int flg)
{
	CWnd*			pWnd;
	CProgressCtrl*	pCtrl;
	CMSFlexGrid*	pGrid;
	CMSFlexGrid*	mGrid;
	int				xyz, i, max, n = 0;
	char			buf[128];
	BOOL			b_flg, b_stt;

	// 娤應揰
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "-------");
	}
	else {
		sprintf(buf, "%s", Sel_Data.Pnt);
	}
	SetDlgItemText(IDC_STC_TITLE01, buf);

	// 敪惗帪崗
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "----/--/-- --:--:--");
	}
	else {
		sprintf(buf, "%4d/%02d/%02d %02d:%02d:%02d", 
					Sel_Data.R_dt.yer, Sel_Data.R_dt.mon, Sel_Data.R_dt.day,
					Sel_Data.R_dt.hor, Sel_Data.R_dt.min, Sel_Data.R_dt.sec);
	}
	SetDlgItemText(IDC_STC_TITLE02, buf);

	// 嵟戝崌惉壛懍搙
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "-----");
	}
	else {
		sprintf(buf, "%5.1lf", Sel_Data.MaxAcc);
	}
	SetDlgItemText(IDC_STC_TITLE03, buf);

	// 寁應恔搙
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "-----");
	}
	else {
		sprintf(buf, "%5.1lf", Sel_Data.SinLev);
	}
	SetDlgItemText(IDC_STC_TITLE04, buf);

	// 嵟戝崌惉壛懍搙侾
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "-----");
	}
	else {
		sprintf(buf, "%5.1lf", Sel_Data.MaxAcc);
	}
	SetDlgItemText(IDC_STC_MAX1, buf);

	// 寁應恔搙侾
	if (Sel_Data.Pnt[0] == NULL) {
		sprintf(buf, "-----");
	}
	else {
		sprintf(buf, "%5.1lf", Sel_Data.SinLev);
	}
	SetDlgItemText(IDC_STC_MAG1, buf);

	pGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID);
	mGrid = (CMSFlexGrid*)GetDlgItem(IDC_MSFLEXGRID_MAX);
	pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS);
	pGrid->ShowWindow(SW_HIDE);
	if (Sel_Data.Pnt[0] != NULL) {
		CDlg_Wave::TitleDisp(1);
		if (flg == 1) max = 24000;
		else          max = 18000;
		pCtrl->SetRange(0, max);
		pCtrl->SetPos(0);
		CDlg_Wave::SearchMax();					// 嵟戝抣専嶕
		// 僨乕僞昞帵
		pGrid->SetCol(0);
		for (i=0; i<Wave_max; i++) {
			pGrid->SetRow(i+1);
			for (xyz=0; xyz<3; xyz++) {
				pGrid->SetCol(xyz+1);
				sprintf(buf, "%8.3lf", Sel_Wave.dat.Wave[i][xyz]);
				pGrid->SetText(buf);
				pGrid->SetCellAlignment(flexAlignCenterCenter);
				if (Sel_Wave.dat.Wave[i][xyz] == XYZ_max_acc[xyz]) {
					pGrid->SetCellForeColor(0x000000ff);
				}
			}
		}
		// 嵟戝抣昞帵
		for (xyz=0; xyz<3; xyz++) {
			sprintf(buf, "%8.3lf", XYZ_max_acc[xyz]);
			mGrid->SetCol(xyz+1);
			mGrid->SetText(buf);
			mGrid->SetCellAlignment(flexAlignCenterCenter);
			mGrid->SetForeColor(0x000000ff);	// 暥帤怓(愒)
		}
		CDlg_Wave::TitleDisp(0);
	}
	pGrid->ShowWindow(SW_SHOW);
	// 弌椡儃僞儞
	if (Sel_Data.Pnt[0] == NULL) {
		b_flg = FALSE;
	}
	else {
		b_flg = TRUE;
	}
	pWnd = GetDlgItem(IDC_BTN_WRITE);
	b_stt = pWnd->IsWindowEnabled();
	if (b_stt != b_flg) {
		pWnd->EnableWindow(b_flg);
	}
}

// 
void CDlg_Wave::OnSelchangeCombo1() 
{
	CComboBox*	pCmbBx;

	pCmbBx = (CComboBox*)GetDlgItem(IDC_COMBO1);
	SelCh = pCmbBx->GetCurSel();

	CDlg_Wave::GridInit();						// 僌儕僢僪弶婜壔
	if (SelFileN[0] != NULL) {
		CDlg_Wave::WaveBinDataRead(SelFileN);		// 僨乕僞僼傽僀儖撉傒崬傒
	}
	CDlg_Wave::DataDisp(1);						// 僨乕僞昞帵
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -