dlg_mcmd.cpp
来自「对日本KSG震动探测仪器编写的伴侣服务代码」· C++ 代码 · 共 531 行
CPP
531 行
// (Version 1.00 :: 10-Mar-1999 :: Harutoshi Yoshida)
// Dlg_Mcmd.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//
#include "stdafx.h"
#include "KSG.h"
#include "Dlg_Mcmd.h"
#include "Dlg_Wait.h"
#include "C_Work.h"
#include "C_Proc.h"
#include "C_File.h"
#include "C_ComProc.h"
#include "KSG_Main.h"
#if !C_DEFINE_INC
#include "C_Define.h"
#endif
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CDlg_Mcmd 僟僀傾儘僌
#define SCMD_MAX 9
char *SelCmd[] = {
// ver 1.30
//"1:僙儖僼僠僃僢僋梫媮", // 10:僙儖僼僠僃僢僋傪梫媮偡傞
//"2:蔬滓袄 抬操 曉憲梫媮", // 01:僷儔儊乕僞僼傽僀儖傪梫媮偡傞
//"3:忬懺忣曬曉憲梫媮", // 00:忬懺忣曬傪梫媮偡傞
//"4:僟儈乕僨乕僞曉憲梫媮", // 09:巜掕帪崗偵僟儈乕僨乕僞傪梫媮偡傞
//"5:婲摦僷儔儊乕僞憲怣", // 06:僷儔儊乕僞僼傽僀儖傪揮憲偡傞
//"6:擔晅愝掕曄峏", // 11:怴偨側擔帪傪僙僢僩偡傞
//"7:帪崗愝掕曄峏", // 12:怴偨側帪崗傪僙僢僩偡傞
//"8:嫮恔寁僜僼僩僂僃傾憲怣", // 07:僜僼僩僂僃傾傪揮憲偡傞
//"9:巜掕僼傽僀儖憲怣" // 08:娗撪抧恔忣曬傪揮憲偡傞
"1:Self Check梫媮", // 10:僙儖僼僠僃僢僋傪梫媮偡傞
"2:Paramater File 曉憲梫媮", // 01:僷儔儊乕僞僼傽僀儖傪梫媮偡傞
"3:忬懺忣曬曉憲梫媮", // 00:忬懺忣曬傪梫媮偡傞
"4:Dummy Data曉憲梫媮", // 09:巜掕帪崗偵僟儈乕僨乕僞傪梫媮偡傞
"5:婲摦Paramater憲怣", // 06:僷儔儊乕僞僼傽僀儖傪揮憲偡傞
"6:擔晅愝掕曄峏", // 11:怴偨側擔帪傪僙僢僩偡傞
"7:帪崗愝掕曄峏", // 12:怴偨側帪崗傪僙僢僩偡傞
"8:嫮恔寁Software憲怣", // 07:僜僼僩僂僃傾傪揮憲偡傞
"9:巜掕File憲怣" // 08:娗撪抧恔忣曬傪揮憲偡傞
};
int CmdNum[] = {
SELFCHK, // 僙儖僼僠僃僢僋傪梫媮偡傞
PRETURN, // 僷儔儊乕僞僼傽僀儖傪梫媮偡傞
IRETURN, // 忬懺忣曬傪梫媮偡傞
DAMYRCV, // 巜掕帪崗偵僟儈乕僨乕僞傪梫媮偡傞
PRMSEND, // 僷儔儊乕僞僼傽僀儖傪揮憲偡傞
DATESET, // 怴偨側擔帪傪僙僢僩偡傞
TIMESET, // 怴偨側帪崗傪僙僢僩偡傞
EXESEND, // 僜僼僩僂僃傾傪揮憲偡傞
DATSEND // 娗撪抧恔忣曬傪揮憲偡傞
};
/////////////////////////////////////////////////////////////////////////////
CDlg_Mcmd::CDlg_Mcmd(CWnd* pParent /*=NULL*/)
: CDialog(CDlg_Mcmd::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlg_Mcmd)
// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
//}}AFX_DATA_INIT
}
void CDlg_Mcmd::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlg_Mcmd)
// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
//}}AFX_DATA_MAP
// M_Cmd_Sel_Ch = 0; // 慖戰僠儍僱儖
// M_Cmd_Sel_Cmd = 0; // 慖戰僐儅儞僪
}
BEGIN_MESSAGE_MAP(CDlg_Mcmd, CDialog)
//{{AFX_MSG_MAP(CDlg_Mcmd)
ON_CBN_SELCHANGE(IDC_CMB_CMD, OnSelchangeCmbCmd)
ON_CBN_SELCHANGE(IDC_CMB_PNT, OnSelchangeCmbPnt)
ON_BN_CLICKED(IDC_BTN_EXEC, OnBtnExec)
ON_BN_CLICKED(IDC_BTN_MENU, OnBtnMenu)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BTN_03, OnBtn03)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlg_Mcmd 儊僢僙乕僕 僴儞僪儔
/*=====================================
m:06-Jan-1999
@p << initialize >>
=====================================*/
BOOL CDlg_Mcmd::OnInitDialog()
{
CDialog::OnInitDialog();
int a, ch;
CComboBox* pCmbBx;
pOpenDlg = this;
// 儊僯儏乕儃僞儞(倃)丗柍岠
GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE, MF_DISABLED);
mSFont.CreateFont(12, 0, 0, 0, FW_NORMAL,FALSE,FALSE,0,
SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH,"俵俽 俹僑僔僢僋");
mLFont.CreateFont(18, 0, 0, 0, FW_NORMAL,FALSE,FALSE,0,
SHIFTJIS_CHARSET,OUT_DEFAULT_PRECIS,CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,
DEFAULT_PITCH,"俵俽 僑僔僢僋");
// 娤應揰慖戰傪戙擖
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_PNT);
pCmbBx->ResetContent(); // list box reset
for (ch=0;ch<MAX_CH;ch++){ //
pCmbBx->InsertString(-1, AdrEntDat[ch].AdrName);
}
pCmbBx->InsertString(-1, "慡娤應揰");
pCmbBx->SetCurSel(M_Cmd_Sel_Ch);
// 僐儅儞僪慖戰傪戙擖
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_CMD);
pCmbBx->ResetContent(); // list box reset
for (a=0;a<SCMD_MAX;a++){ //
pCmbBx->InsertString(-1, SelCmd[a]);
}
pCmbBx->SetCurSel(M_Cmd_Sel_Cmd);
OnSelchangeCmbCmd();
return (TRUE);
}
/*=====================================
m:06-Jan-1999
@p << 僐儅儞僪慖戰 >>
=====================================*/
void CDlg_Mcmd::OnSelchangeCmbCmd()
{
struct S_DateTime n_time;
CComboBox* pCmbBx;
CWnd* pWnd;
int ed, sd, bd;
char *em, *sm, *bm, buf[128];
// 僐儅儞僪
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_CMD);
M_Cmd_Sel_Cmd = pCmbBx->GetCurSel();
em = sm = bm = "";
switch (M_Cmd_Sel_Cmd){ //
case 3: // 巜掕帪崗偵僟儈乕僨乕僞傪梫媮偡傞
case 5: // 6:擔晅愝掕曄峏
case 6: // 7:帪崗愝掕曄峏
pWnd = GetDlgItem(IDC_EDT_01);
pWnd->SetFont(&mLFont);
StoNowTime(&n_time);
if (M_Cmd_Sel_Cmd == 5){
sm = "擔晅愝掕";
sprintf(buf, "%4d,%02d,%02d",
n_time.yer, // 擭
n_time.mon, // 寧
n_time.day // 擔
);
em = buf;
}
else{
sm = "帪崗愝掕";
sprintf(buf, "%2d:%02d:%02d",
n_time.hor, // 帪
n_time.min, // 暘
n_time.sec // 昩
);
em = buf;
}
ed = SW_SHOW;
sd = SW_SHOW;
bd = SW_HIDE;
break;
case 7: // 8:嫮恔寁僜僼僩僂僃傾憲怣
case 8: // 9:巜掕僼傽僀儖憲怣
pWnd = GetDlgItem(IDC_EDT_01);
pWnd->SetFont(&mSFont);
ed = SW_SHOW;
sd = SW_SHOW;
bd = SW_SHOW;
break;
default:
ed = SW_HIDE;
sd = SW_HIDE;
bd = SW_HIDE;
break;
}
pWnd = GetDlgItem(IDC_BTN_03);
pWnd->ShowWindow(bd);
pWnd = GetDlgItem(IDC_EDT_01);
pWnd->ShowWindow(ed);
SetDlgItemText(IDC_EDT_01, em);
pWnd = GetDlgItem(IDC_STC_01);
pWnd->ShowWindow(sd);
SetDlgItemText(IDC_STC_01, sm);
// IDC_BTN_03 僼傽僀儖嶲徠
// IDC_STC_01 僗僞僥傿僢僋
// IDC_EDT_01 擖椡侾
}
/*=====================================
m:06-Jan-1999
@p << 娤應揰慖戰 >>
=====================================*/
void CDlg_Mcmd::OnSelchangeCmbPnt()
{
CComboBox* pCmbBx;
// 僐儅儞僪
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_PNT);
M_Cmd_Sel_Ch = pCmbBx->GetCurSel();
}
/*=====================================
m:15-Jan-1999
@p << 帪崗曄姺 >>
=====================================*/
void CDlg_Mcmd::ChgTime(int ch, int now)
{
int p, a, hms[3];
char c, buf[64];
struct S_DateTime n_time;
if (now){
StoNowTime(&n_time);
sprintf(buf, "%2d:%02d:%02d",
n_time.hor, // 帪
n_time.min, // 暘
n_time.sec // 昩
);
}
else{
GetDlgItemText(IDC_EDT_01, buf, 64);
p = 0;
for (a=0;a<3;a++){
hms[a] = 0;
sscanf(&buf[p], "%d", &hms[a]);
if (a != 2){
do{
c = buf[p ++];
} while (c != ':' && c != NULL && p < 64);
}
}
sprintf(buf, "%d:%02d:%02d ", hms[0], hms[1], hms[2]);
}
SetDlgItemText(IDC_EDT_01, buf);
// 23-Jan:HY
int t_ch;
if (TcpUse){
t_ch = 1;
}
else{
t_ch = ch;
}
memmove(Scw[t_ch].AddPar, buf, 12); // 僐儅儞僪堷悢
Scw[t_ch].AddPar[12] = C_CR;
Scw[t_ch].AddPar[13] = C_LF;
}
/*=====================================
m:15-Jan-1999
@p << 擔晅曄姺 >>
=====================================*/
void CDlg_Mcmd::ChgDate(int ch)
{
int p, a, ymd[3];
char c, buf[64];
GetDlgItemText(IDC_EDT_01, buf, 64);
p = 0;
for (a=0;a<3;a++){
ymd[a] = 0;
sscanf(&buf[p], "%d", &ymd[a]);
if (a != 2){
do{
c = buf[p ++];
} while (c != ',' && c != NULL && p < 64);
}
}
sprintf(buf, "%4d,%02d,%02d", ymd[0], ymd[1], ymd[2]);
SetDlgItemText(IDC_EDT_01, buf);
// 23-Jan:HY
int t_ch;
if (TcpUse){
t_ch = 1;
}
else{
t_ch = ch;
}
memmove(Scw[t_ch].AddPar, buf, 12); // 僐儅儞僪堷悢
Scw[t_ch].AddPar[12] = C_CR;
Scw[t_ch].AddPar[13] = C_LF;
}
/*=====================================
m:17-Jan-1999
@p << 僜僼僩僂僃傾 >>
=====================================*/
void CDlg_Mcmd::ChgSoft(int ch)
{
int a, c, dat;
CC_File pFile;
GetDlgItemText(IDC_EDT_01, SndFile[ch].Name, MAX_PATH); // 巜掕僼傽僀儖柤
SndFile[ch].Size = pFile.C_FileSize(SndFile[ch].Name);
sprintf(SendSft[ch].Dat_Len, "%08ld", SndFile[ch].Size); // 楢懕僨乕僞挿
SendSft[ch].Dat_Len[8] = (char) C_CR; SendSft[ch].Dat_Len[9] = (char) C_LF;
memmove(SendSft[ch].Version, " \x0d\x0a", 4+2); // Version No.
for (c=0;c<MAX_PATH;c++){ //
if (SndFile[ch].Name[c] == 0) break;
}
c -= 12;
for (a=0;a<12;a++){ //
dat = SndFile[ch].Name[c+a];
if (dat >= 'a' && dat <= 'z'){
dat &= ~0x20;
}
SendSft[ch].ExeFile[a] = dat;
}
SendSft[ch].ExeFile[12] = (char) C_CR; SendSft[ch].ExeFile[13] = (char) C_LF;
// 憲怣僼傽僀儖僽儘僢僋悢
SndFile[ch].Blck = SndFile[ch].Size / (BF_256-3);
if (SndFile[ch].Size % (BF_256-3)){
SndFile[ch].Blck ++;
}
SndFile[ch].Rreq = 0; // 撉崬傒儕僋僄僗僩
SndFile[ch].Hndl = -1; // 僼傽僀儖僴儞僪儖
}
/*=====================================
m:17-Jan-1999
@p << 娗撪抧恔忣曬 >>
=====================================*/
void CDlg_Mcmd::ChgFile(int ch)
{
CC_File pFile;
struct S_DateTime n_time;
memmove(SendStt[ch].Dat_Num, " \x0d\x0a", 4+2); // 攝怣斣崋
StoNowTime(&n_time);
sprintf(SendStt[ch].Y_M_Day, "%02d%02d%04d",
n_time.day, // 擔
n_time.mon, // 寧
n_time.yer // 擭
);
SendStt[ch].Y_M_Day[8] = (char) C_CR; SendStt[ch].Y_M_Day[9] = (char) C_LF;
GetDlgItemText(IDC_EDT_01, SndFile[ch].Name, MAX_PATH); // 巜掕僼傽僀儖柤
SndFile[ch].Size = pFile.C_FileSize(SndFile[ch].Name);
sprintf(SendStt[ch].Dat_Len, "%08ld", SndFile[ch].Size); // 楢懕僨乕僞挿
SendStt[ch].Dat_Len[8] = (char) C_CR; SendStt[ch].Dat_Len[9] = (char) C_LF;
// 憲怣僼傽僀儖僽儘僢僋悢
SndFile[ch].Blck = SndFile[ch].Size / (BF_256-3);
if (SndFile[ch].Size % (BF_256-3)){
SndFile[ch].Blck ++;
}
SndFile[ch].Rreq = 0; // 撉崬傒儕僋僄僗僩
SndFile[ch].Hndl = -1; // 僼傽僀儖僴儞僪儖
}
/*=====================================
m:06-Jan-1999
@p << 幚峴儃僞儞 >>
=====================================*/
void CDlg_Mcmd::OnBtnExec()
{
int cmd, ch, s_ch, e_ch, t_ch;
CComboBox* pCmbBx;
CDlg_Wait wDlg;
// 娤應揰
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_PNT);
M_Cmd_Sel_Ch = pCmbBx->GetCurSel();
// 僐儅儞僪
pCmbBx = (CComboBox*)GetDlgItem(IDC_CMB_CMD);
M_Cmd_Sel_Cmd = pCmbBx->GetCurSel();
cmd = CmdNum[M_Cmd_Sel_Cmd];
if (M_Cmd_Sel_Ch == MAX_CH){ // 慡娤應揰堦妵
CmsBit.All_Send = 1;
s_ch = 0;
e_ch = MAX_CH;
}
else{
CmsBit.All_Send = 0;
s_ch = M_Cmd_Sel_Ch;
e_ch = s_ch + 1;
}
for (ch=s_ch;ch<e_ch;ch++){
// 23-Jan:HY
if (TcpUse){
t_ch = 1;
}
else{
t_ch = ch;
}
switch (M_Cmd_Sel_Cmd){
case 3: // 巜掕帪崗偵僟儈乕僨乕僞傪梫媮偡傞
ChgTime(ch, 0);
break;
case 6: // 怴偨側帪崗傪僙僢僩偡傞
ChgTime(ch, 1);
break;
case 5: // 怴偨側擔帪傪僙僢僩偡傞
ChgDate(ch);
break;
case 7: // 僜僼僩僂僃傾傪揮憲偡傞
ChgSoft(ch);
break;
case 8: // 娗撪抧恔忣曬傪揮憲偡傞
ChgFile(ch);
break;
case 0: // 僙儖僼僠僃僢僋傪梫媮偡傞
case 1: // 僷儔儊乕僞僼傽僀儖傪梫媮偡傞
case 2: // 忬懺忣曬傪梫媮偡傞
case 4: // 僷儔儊乕僞僼傽僀儖傪揮憲偡傞
sprintf(Scw[t_ch].AddPar, " \x0d\x0a");
break;
}
if (Rcw[t_ch].Enable && Rcw[t_ch].ComPhs == 0){
M_Cmd_Exec |= Atv_dat[t_ch]; // 慖戰僐儅儞僪幚峴拞
Scw[t_ch].ReqCmd = cmd;
Scw[t_ch].SelCh = ch; // 慖戰僠儍僱儖 24-Mar-2004
}
// 29-Jan-1999
wDlg.DoModal();
}
CmsBit.All_Send = 0;
// 30-Mar-1999
switch (Exec_Abort){
case 1:
war_disp(War_msg[4]);
break;
case 2:
war_disp(War_msg[5]);
break;
}
}
/*=====================================
m:06-Jan-1999
@p << 儊僯儏乕儃僞儞 >>
=====================================*/
void CDlg_Mcmd::OnBtnMenu()
{
DspReqStack(DSP_MNT);
}
/*=====================================
m:06-Jan-1999
@p << 僋儘乕僘 >>
=====================================*/
void CDlg_Mcmd::OnClose()
{
dialog_close(DSP_MCMD);
CDialog::OnOK();
}
void CDlg_Mcmd::OnOK()
{
return;
}
void CDlg_Mcmd::OnCancel()
{
return;
}
/*=====================================
m:08-Jan-1999
@p << 僼傽僀儖嶲徠 >>
=====================================*/
void CDlg_Mcmd::OnBtn03()
{
int ret;
char buf[MAX_PATH];
CC_File pFile;
ret = CommonDlgFileOpen("", buf, TRUE);
if (ret == 1){
F_Size = pFile.C_FileSize(buf);
}
else{
buf[0] = NULL;
F_Size = 0;
}
SetDlgItemText(IDC_EDT_01, buf);
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?