📄 dlg_wave.cpp
字号:
}
/*=====================================
@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 + -