📄 dlg_wait.cpp
字号:
// (Version 1.00 :: 10-Mar-1999 :: Harutoshi Yoshida)
// Dlg_Wait.cpp : 僀儞僾儕儊儞僥乕僔儑儞 僼傽僀儖
//
#include "stdafx.h"
#include "KSG.h"
#include "Dlg_Wait.h"
#include "C_ComProc.h"
#include "C_Work.h"
#include "C_Proc.h"
#include "C_SockServer.h"
#include "C_SockClient.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
char *Cmd_name[] = {
/*00*/ "忬懺忣曬梫媮", // IRETURN
/*01*/ "Paramater File梫媮", // PRETURN
/*02*/ "攇宍忣曬堦棗梫媮", // DRETURN
/*03*/ "嫮恔忣曬File揮憲梫媮", // FRETURN
/*04*/ "攇宍File揮憲梫媮", // WRETURN
/*05*/ "嫮恔丄攇宍Data嶍彍梫媮", // DELFILE
/*06*/ "Paramater File揮憲", // PRMSEND
/*07*/ "Software揮憲", // EXESEND
/*08*/ "娗撪抧恔忣曬揮憲", // DATSEND
/*09*/ "Dummy Data梫媮", // DAMYRCV
/*10*/ "Self Check梫媮", // SELFCHK
/*11*/ "擔晅揮憲", // DATESET
/*12*/ "帪崗揮憲" // TIMESET
};
int Old_phs[5];
/////////////////////////////////////////////////////////////////////////////
// CDlg_Wait 僟僀傾儘僌
CDlg_Wait::CDlg_Wait(CWnd* pParent /*=NULL*/)
: CDialog(CDlg_Wait::IDD, pParent)
{
//{{AFX_DATA_INIT(CDlg_Wait)
// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
//}}AFX_DATA_INIT
mFont.CreateFont(14, 0, 0, 0, FW_NORMAL, FALSE,FALSE, 0, SHIFTJIS_CHARSET,
OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH, "俵俽 僑僔僢僋");
}
void CDlg_Wait::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CDlg_Wait)
// 儊儌 - ClassWizard 偼偙偺埵抲偵儅僢僺儞僌梡偺儅僋儘傪捛壛傑偨偼嶍彍偟傑偡丅
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CDlg_Wait, CDialog)
//{{AFX_MSG_MAP(CDlg_Wait)
ON_WM_CLOSE()
ON_WM_TIMER()
ON_WM_PAINT()
ON_WM_SIZE()
ON_BN_CLICKED(IDC_BTN_ABORT, OnBtnAbort)
ON_BN_CLICKED(IDC_BTN_INFO, OnBtnInfo)
ON_BN_CLICKED(IDC_BTN_DEBUG, OnBtnDebug)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CDlg_Wait 儊僢僙乕僕 僴儞僪儔
/*-------------------------------------
m:06-Jan-1999
@p << initialize >>
-------------------------------------*/
BOOL CDlg_Wait::OnInitDialog()
{
CWnd *pWnd;
int ch;
CDialog::OnInitDialog();
Old_phs[0] = -1;
Old_phs[1] = -1;
Old_phs[2] = -1;
Old_phs[3] = -1;
Old_phs[4] = -1;
User_work = 1;
Exec_Abort = 0;
Wait_info_flg = 0;
// 儊僯儏乕儃僞儞(倃)丗柍岠
GetSystemMenu(FALSE)->EnableMenuItem(SC_CLOSE, MF_DISABLED);
pWnd = GetDlgItem(IDC_STC_01);
pWnd->SetFont(&mFont);
if (EndProc){
pWnd = GetDlgItem(IDC_BTN_ABORT);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDC_BTN_INFO);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDC_PROGRESS_01);
pWnd->ShowWindow(SW_HIDE);
pWnd = GetDlgItem(IDC_PROGRESS_02);
pWnd->ShowWindow(SW_HIDE);
SetDlgItemText(IDC_STC_01, "廔椆張棟拞");
}
else{
pWnd = GetDlgItem(IDC_BTN_ABORT);
if (pWnd->IsWindowEnabled() == TRUE){
pWnd->EnableWindow(FALSE);
}
SetDlgItemText(IDC_STC_01, "捠怣幚峴拞");
for (ch=0;ch<MAX_CH;ch++){
if (Scw[ch].ReqCmd){
break;
}
}
Sel_Ch = ch;
RS_PckCnt[ch] = 0; // 憲庴怣梡僷働僢僩悢
}
SendMessage(WM_SIZE, NULL, NULL);
CDlg_Wait::TitleDisp(); // 僞僀僩儖昞帵
SetTimer(1, 100, NULL);
return (TRUE);
}
/*-------------------------------------
m:06-Jan-1999
@p << Close >>
-------------------------------------*/
void CDlg_Wait::OnClose()
{
User_work = 0;
KillTimer(0);
CDialog::OnOK();
}
/*-------------------------------------
m:06-Jan-1999
@p << Timer >>
-------------------------------------*/
void CDlg_Wait::OnTimer(UINT nIDEvent)
{
CProgressCtrl *pCtrl;
s_int cnt = 10, bas = 0;
int ch, rs, a, val;
char buf[128], prg_c[10];
char msg[3] = "<>";
char *rsm[2] = { "庴怣拞" , "憲怣拞" };
if (EndProc){ // 廔椆張棟拞
if (!CmsBit.SendExec && !CmsBit.RecvExec){
PostMessage(WM_CLOSE); // Close
}
}
else{
ch = Sel_Ch;
// 摦嶌傾僯儊乕僔儑儞
if (++ cnt > 10){
cnt = 0;
if (Rcw[ch].ComPhs){ // 庴怣?
rs = 0;
}
else{
rs = 1;
}
for (a=0;a<9;a++){
if ( (bas+a) % 3){
prg_c[a] = ' ';
}
else{
prg_c[a] = msg[rs];
}
}
prg_c[a] = NULL;
sprintf(buf, "%s %s %s", prg_c, rsm[rs], prg_c);
SetDlgItemText(IDC_STC_01, buf);
bas = 1 - bas;
// 徻嵶昞帵
if (Wait_info_flg){
CDlg_Wait::ListDisp();
}
}
// Command Progress
if (PrgV01 != Scw[ch].PrgPhs){
PrgV01 = Scw[ch].PrgPhs;
pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_01);
pCtrl->SetPos(PrgV01);
}
// Data Progress
if (RS_PckCnt[ch]){
if (DatSnd){
val = RS_PckCnt[ch] - Scw[ch].PckCnt;
}
else{
val = RS_PckCnt[ch] - Rcw[ch].PckCnt;
}
if (PrgV02 == -1){ // 弶婜壔
PrgV02 = 0;
pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_02);
pCtrl->SetRange(0, RS_PckCnt[ch]); // 儗儞僕暆偺愝掕(壖)
pCtrl->SetPos(PrgV02);
}
else if (PrgV02 != val){
PrgV02 = val;
pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_02);
pCtrl->SetPos(PrgV02);
}
}
// 廔椆
if (!M_Cmd_Exec){
PostMessage(WM_CLOSE); // Close
}
}
CDialog::OnTimer(nIDEvent);
}
/*-------------------------------------
m:22-Jan-1999
@p << 夋柺昤夋 >>
-------------------------------------*/
void CDlg_Wait::OnPaint()
{
CPaintDC dc(this); // 昤夋梡偺僨僶僀僗 僐儞僥僉僗僩
CRect pRect;
CSize pSize;
HICON hIcon;
DWORD dwResult;
char sys_dir[MAX_PATH], fname[MAX_PATH];
int x, s_ch;
if (!EndProc) {
GetSystemDirectory(sys_dir, MAX_PATH);
sprintf(fname, "%s\\SHELL32.DLL", sys_dir);
dc.SetBkMode(TRANSPARENT); // 僶僢僋僇儔乕曄峏偟側偄
hIcon = ::ExtractIcon((AfxGetApp())->m_hInstance, fname, 15);
dc.SetMapMode(MM_TEXT);
GetWindowRect(&pRect);
x = (pRect.right - pRect.left - 32) / 4;
dwResult = dc.DrawIcon(x, 5, hIcon);
// ver 1.30
//dc.TextOut(x-8, 5+32+2, "僒乕僶");
dc.TextOut(x-8, 5+32+2, "Server");
pSize = dc.GetTextExtent(AdrEntDat[Sel_Ch].AdrName);
x = (pRect.right - pRect.left - 32) / 4 * 3;
dwResult = dc.DrawIcon(x, 5, hIcon);
if ((pSize.cx/2) > 32) {
x -= (((pSize.cx/2) - 32) + 16);
}
s_ch = Scw[Sel_Ch].SelCh;
dc.TextOut(x, 5+32+2, AdrEntDat[s_ch].AdrName);
DestroyIcon(hIcon);
}
// 昤夋梡儊僢僙乕僕偲偟偰 CDialog::OnPaint() 傪屇傃弌偟偰偼偄偗傑偣傫
}
/*-------------------------------------
@p << Dialog ReSize >>
-------------------------------------*/
void CDlg_Wait::OnSize(UINT nType, int cx, int cy)
{
CRect dRect, lRect;
CWnd* pWnd;
CDialog::OnSize(nType, cx, cy);
pWnd = GetDlgItem(IDC_LIST_INFO);
if (this != NULL && pWnd != NULL) {
this->GetWindowRect(dRect);
pWnd->GetWindowRect(lRect);
if (Wait_info_flg && !EndProc) {
dRect.bottom = lRect.bottom + 10;
}
else {
dRect.bottom = lRect.top;
}
this->MoveWindow(dRect, TRUE);
}
}
/*-------------------------------------
@p << 俷俲儃僞儞 >>
-------------------------------------*/
void CDlg_Wait::OnOK()
{
return;
}
/*-------------------------------------
@p << 僉儍儞僙儖儃僞儞 >>
-------------------------------------*/
void CDlg_Wait::OnCancel()
{
return;
}
/*-------------------------------------
@p << 拞抐儃僞儞 >>
-------------------------------------*/
void CDlg_Wait::OnBtnAbort()
{
CWnd *pWnd;
pWnd = GetDlgItem(IDC_BTN_ABORT);
if (pWnd->IsWindowEnabled() == TRUE){
pWnd->EnableWindow(FALSE);
}
// 拞抐張棟傪幚峴
RS_StpFlg[Sel_Ch] = 1; // 拞抐僼儔僌
// CDialog::OnOK();
}
/*-------------------------------------
@p << 徻嵶儃僞儞 >>
-------------------------------------*/
void CDlg_Wait::OnBtnInfo()
{
Wait_info_flg = 1 - Wait_info_flg;
PostMessage(WM_SIZE, NULL, NULL);
}
/*-------------------------------------
@p << 嫮惂廔椆 >>
-------------------------------------*/
void CDlg_Wait::OnBtnDebug()
{
int ch;
for (ch=0;ch<MAX_CH;ch++){
if (M_Cmd_Exec & Atv_dat[ch]){
snd_wrk_ini(ch);
rcv_wrk_ini(ch);
}
}
M_Cmd_Exec = 0;
// 30-Mar-1999
if (!Exec_Abort){
Exec_Abort = 1;
}
if (TcpUse){
SkClStop();
}
}
/*-------------------------------------
@p << 僞僀僩儖昞帵 >>
-------------------------------------*/
void CDlg_Wait::TitleDisp()
{
CWnd *pWnd;
int cmd, num;
CProgressCtrl *pCtrl;
if (EndProc){ // 廔椆張棟拞
SetWindowText("廔椆張棟拞");
}
else {
cmd = Scw[Sel_Ch].ReqCmd;
num = (cmd & 0x0f) - 1;
// 19-Mar-1999
if (num < 0) num = 0;
SetWindowText(Cmd_name[num]);
//
DatSnd = cmd & DAT_SND;
RetReq = cmd & RET_REQ;
if (DatSnd){
pWnd = GetDlgItem(IDC_BTN_ABORT);
if (pWnd->IsWindowEnabled() == FALSE){
pWnd->EnableWindow(TRUE);
}
}
// 僐儅儞僪 Progress
pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_01);
pCtrl->SetRange(0, 60); // 儗儞僕暆偺愝掕
pCtrl->SetPos(0);
PrgV01 = 0; // 僾儘僌儗僗僶乕抣侾
// 僷働僢僩 Progress
pCtrl = (CProgressCtrl*)GetDlgItem(IDC_PROGRESS_02);
pCtrl->SetRange(0, 255); // 儗儞僕暆偺愝掕(壖)
pCtrl->SetPos(0);
PrgV02 = -1; // 僾儘僌儗僗僶乕抣俀
}
}
/*-------------------------------------
@p << 儕僗僩撪徻嵶昞帵 >>
-------------------------------------*/
void CDlg_Wait::ListDisp()
{
CListBox* pList;
int i, ch, flg;
int *dat;
char buf[20];
ch = Sel_Ch;
flg = 0;
for (i=0; i<4; i++) {
switch (i) {
case 0:
dat = &Scw[ch].ComPhs;
break;
case 1:
dat = &Scw[ch].PckCnt;
break;
case 2:
dat = &Rcw[ch].ComPhs;
break;
case 3:
dat = &Rcw[ch].PckCnt;
break;
case 4:
dat = &Rcw[ch].RcvLen;
break;
}
if (*dat != Old_phs[i]){
Old_phs[i] = *dat;
flg = 1;
}
}
if (flg == 1){
pList = (CListBox*)GetDlgItem(IDC_LIST_INFO);
pList->ResetContent();
sprintf(buf, "憲怣 Phase : %04d", Scw[ch].ComPhs);
pList->AddString(buf);
sprintf(buf, "憲怣 Count : %03d", Scw[ch].PckCnt);
pList->AddString(buf);
sprintf(buf, "庴怣 Phase : %04d", Rcw[ch].ComPhs);
pList->AddString(buf);
sprintf(buf, "庴怣 Count : %03d", Rcw[ch].PckCnt);
pList->AddString(buf);
sprintf(buf, "庴怣挿 : %d", Rcw[ch].RcvLen);
pList->AddString(buf);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -