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

📄 formatdisk.cpp

📁 SDK DVR/DVS HIKVISION
💻 CPP
字号:
// FormatDisk.cpp : implementation file
//

#include "stdafx.h"
#include "newclient.h"
#include "FormatDisk.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// CFormatDisk dialog


CFormatDisk::CFormatDisk(CWnd* pParent /*=NULL*/)
	: CDialog(CFormatDisk::IDD, pParent)
{
	//{{AFX_DATA_INIT(CFormatDisk)
	m_static = _T("");
	//}}AFX_DATA_INIT
}


void CFormatDisk::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CFormatDisk)
	DDX_Control(pDX, IDC_PROGRESSFORMAT, m_ProgressFormat);
	DDX_Control(pDX, IDC_COMBODISK, m_DiskCtrl);
	DDX_Text(pDX, IDC_FORMATSTATIC, m_static);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CFormatDisk, CDialog)
	//{{AFX_MSG_MAP(CFormatDisk)
	ON_BN_CLICKED(IDC_FORMAT, OnFormat)
	ON_BN_CLICKED(IDC_EXIT, OnExit)
	ON_WM_TIMER()
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CFormatDisk message handlers

void CFormatDisk::OnCancel() 
{
	// TODO: Add extra cleanup here
	
//	CDialog::OnCancel();
}

BOOL CFormatDisk::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	CString sTemp;
	m_lDiskSel = 0;
	sTemp.Format("All HDD");
	m_DiskCtrl.AddString(sTemp);
	for(int i=0; i<(int)m_dwDiskNum; i++)
	{
		sTemp.Format("No%d HDD", i+1);
		m_DiskCtrl.AddString(sTemp);
		m_bFormat[i] = FALSE;
		m_lFormat[i] = -1;

	}
	m_DiskCtrl.SetCurSel(m_lDiskSel);
	GetDlgItem(IDC_FORMATSTATIC)->ShowWindow(SW_HIDE);
	m_ProgressFormat.SetRange(0,100);
	m_ProgressFormat.SetPos(0);
	m_nTime = SetTimer(FORMAT_TIMER,1000,NULL);
	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CFormatDisk::OnFormat() 
{
	// TODO: Add your control notification handler code here
	LONG lDiskSel;
	
	lDiskSel = m_DiskCtrl.GetCurSel();
	if(lDiskSel == 0)
	{
		m_FormatAll = NET_DVR_FormatDisk(m_lServerID, 0xFF);//0xFF means all HDD
		if(m_FormatAll < 0)
		{
			int Err = GetLastError();
			if(Err == NET_DVR_DISK_FORMATING)
			{
				AfxMessageBox("The HDD is being format, don't operate the DVR!");
			}
			else
			{
				AfxMessageBox("Format failed!");
			}
		}
		else
		{
			m_static = "Status: The HDD is being format, please waiting......";
			m_bFormatAll = TRUE;
			GetDlgItem(IDC_FORMAT)->EnableWindow(FALSE);
		}	
	}
	else
	{
		m_lFormat[lDiskSel-1] = NET_DVR_FormatDisk(m_lServerID, lDiskSel-1);
		if(m_lFormat[lDiskSel-1] < 0)
		{
			AfxMessageBox("Format failed!");
		}
		else
		{
			m_static = "Status: The HDD is being format, please waiting......";
			m_bFormat[lDiskSel-1] = TRUE;			
		}
	}
	UpdateData(FALSE);
}

void CFormatDisk::OnExit() 
{
	// TODO: Add your control notification handler code here
	if(m_bFormatAll)
	{
		m_bFormatAll = FALSE;
		NET_DVR_CloseFormatHandle(m_FormatAll);
	}
	else
	{
		for(int i=0; i<(int)m_dwDiskNum; i++)
		{
			if(m_bFormat[i])
			{
				m_bFormat[i] = FALSE;
				NET_DVR_CloseFormatHandle(m_lFormat[i]);
			}
		}
	}
	if(m_nTime)
	{
		KillTimer(FORMAT_TIMER);
	}

	CDialog::OnCancel();
}

void CFormatDisk::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	LONG lCurDisk;
	LONG lCurDiskPos;
	LONG lFoematStatic;
	CString sTemp;
	
	if(nIDEvent == FORMAT_TIMER)
	{
		if(m_bFormatAll)
		{
			if(NET_DVR_GetFormatProgress(m_FormatAll, &lCurDisk, &lCurDiskPos, &lFoematStatic))
			{
				switch(lFoematStatic) 
				{
				case 0:	
					sTemp.Format("Status: HDD is being format!", lCurDisk+1);
					m_static = sTemp;
					break;
				case 1:
					sTemp.Format("Status: HDD format successfully!");					
					GetDlgItem(IDC_FORMAT)->EnableWindow(TRUE);
					m_static = sTemp;
					m_bFormatAll = FALSE;
					NET_DVR_CloseFormatHandle(m_FormatAll);
					break;			
				case 2:	
					sTemp.Format("Status: error occured when formatting No%d HDD!", lCurDisk+1);					
					GetDlgItem(IDC_FORMAT)->EnableWindow(TRUE);
					m_static = sTemp;
					m_bFormatAll = FALSE;
					NET_DVR_CloseFormatHandle(m_FormatAll);
					break;
				case 3:	
					sTemp.Format("Status: No%d Net HDD is lost because of the networks!", lCurDisk+1);					
					GetDlgItem(IDC_FORMAT)->EnableWindow(TRUE);
					m_static = sTemp;
					m_bFormatAll = FALSE;
					NET_DVR_CloseFormatHandle(m_FormatAll);
					break;
				default:
					break;
				}
				m_ProgressFormat.SetPos(lCurDiskPos);
			}
		}
		for(int i=0; i<(int)m_dwDiskNum; i++)
		{
			if(m_bFormat[i])
			{
				if(NET_DVR_GetFormatProgress(m_lFormat[i], &lCurDisk, &lCurDiskPos, &lFoematStatic))
				{
					switch(lFoematStatic) 
					{
					case 0:	
						sTemp.Format("Status: No%d HDD is being format!", lCurDisk+1);
						m_static = sTemp;
						break;
					case 1:
						sTemp.Format("Status: No%d HDD format success!", lCurDisk+1);
						m_static = sTemp;
						m_bFormat[i] = FALSE;
						NET_DVR_CloseFormatHandle(m_lFormat[i]);
						break;			
					case 2:	
						sTemp.Format("Status: No%d HDD format exception!", lCurDisk+1);						
						m_static = sTemp;
						m_bFormat[i] = FALSE;
						NET_DVR_CloseFormatHandle(m_lFormat[i]);
						break;
					case 3:	
						sTemp.Format("Status: No%d Net HDD is lost because of the networks!", lCurDisk+1);						
						m_static = sTemp;
						m_bFormat[i] = FALSE;
						NET_DVR_CloseFormatHandle(m_lFormat[i]);
						break;
					default:
						break;
					}
					m_ProgressFormat.SetPos(lCurDiskPos);
				}
			}
		}
	}
	UpdateData(FALSE);
	CDialog::OnTimer(nIDEvent);
}

void CFormatDisk::OnOK() 
{
	// TODO: Add extra cleanup here
	
	//	CDialog::OnOK();
}

⌨️ 快捷键说明

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