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

📄 punishpeccancy_ppage.cpp

📁 wince下交警执法程序源码,使用evc编写
💻 CPP
字号:
// PunishPeccancy_PPage.cpp : implementation file
//

#include "stdafx.h"
#include "TrafficExecLaw.h"
#include "PunishPeccancy_PPage.h"

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

/////////////////////////////////////////////////////////////////////////////
// CPunishPeccancy_PPage property page

IMPLEMENT_DYNCREATE(CPunishPeccancy_PPage, CPropertyPage)

CPunishPeccancy_PPage::CPunishPeccancy_PPage() : CPropertyPage(CPunishPeccancy_PPage::IDD)
{
	//{{AFX_DATA_INIT(CPunishPeccancy_PPage)
	m_deducting_points = 2;
	m_exec_branch = _T("");
	m_exec_man = _T("");
	m_pecc_car = _T("");
	m_pecc_desc = _T("");
	m_pecc_man = _T("");
	m_pecc_region = _T("");
	m_cer_mumber = _T("");
	//}}AFX_DATA_INIT
}

CPunishPeccancy_PPage::~CPunishPeccancy_PPage()
{
}

void CPunishPeccancy_PPage::DoDataExchange(CDataExchange* pDX)
{
	CPropertyPage::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CPunishPeccancy_PPage)
	DDX_Text(pDX, IDC_EDIT_deducting_points, m_deducting_points);
	DDV_MinMaxInt(pDX, m_deducting_points, 1, 12);
	DDX_Text(pDX, IDC_EDIT_exec_branch, m_exec_branch);
	DDV_MaxChars(pDX, m_exec_branch, 32);
	DDX_Text(pDX, IDC_EDIT_exec_man, m_exec_man);
	DDV_MaxChars(pDX, m_exec_man, 16);
	DDX_Text(pDX, IDC_EDIT_pecc_car, m_pecc_car);
	DDV_MaxChars(pDX, m_pecc_car, 10);
	DDX_Text(pDX, IDC_EDIT_pecc_desc, m_pecc_desc);
	DDV_MaxChars(pDX, m_pecc_desc, 128);
	DDX_Text(pDX, IDC_EDIT_pecc_man, m_pecc_man);
	DDV_MaxChars(pDX, m_pecc_man, 16);
	DDX_Text(pDX, IDC_EDIT_pecc_region, m_pecc_region);
	DDV_MaxChars(pDX, m_pecc_region, 64);
	DDX_Text(pDX, IDC_EDIT_CERTI_NUMBER, m_cer_mumber);
	DDV_MaxChars(pDX, m_cer_mumber, 19);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CPunishPeccancy_PPage, CPropertyPage)
	//{{AFX_MSG_MAP(CPunishPeccancy_PPage)
	ON_BN_CLICKED(IDC_BUTTON_upload, OnBUTTONupload)
	ON_BN_CLICKED(IDC_BUTTON_print, OnBUTTONprint)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CPunishPeccancy_PPage message handlers

extern CTrafficExecLawApp theApp;
#include "ExecLawSheet_Dlg.h"

void CPunishPeccancy_PPage::OnBUTTONupload() 
{
	// TODO: Add your control notification handler code here
	if(!this->UpdateData ())
		return ;


	short srvCode=PUNISH;
	Punish_Info pi;
	TCHAR  msg[3];

	pi.m_deducting_points = m_deducting_points;
	wcscpy(pi.m_exec_branch,m_exec_branch);
	wcscpy(pi.m_exec_man,m_exec_man);
	wcscpy(pi.m_pecc_car,m_pecc_car);
	wcscpy(pi.m_pecc_desc,m_pecc_desc);
	wcscpy(pi.m_pecc_man,m_pecc_man);
	wcscpy(pi.m_pecc_region,m_pecc_region);
	wcscpy(pi.m_cer_mumber,m_cer_mumber);

   
	CSocket s;
	int v;

    v=s.Create(4001,SOCK_STREAM);
	if(v==0)goto error;

	v=s.Connect (theApp.databaseSrvIP,8888);
	if(v==0)goto error;

	v=s.Send(&srvCode,sizeof(srvCode),8888);
	if(v!=sizeof(srvCode))
		goto error;

	v=s.Send(&pi,sizeof(pi),8888);
	if(v!=sizeof(pi))
		goto error;


	v=s.Receive(msg,sizeof(msg));
	
	if(wcscmp(msg,L"OK")==0)
	{
		MessageBox(L"执行成功。");
        
		short currPoints;
		short deductedPoints;

				
		ReadICC(32+(int)&((Drive_Certi_Info*)0)->m_curr_points,&currPoints,sizeof(short));
		ReadICC(32+(int)&((Drive_Certi_Info*)0)->m_deducted_points,&deductedPoints,sizeof(short));

		WriteICC(32+(int)&((Drive_Certi_Info*)0)->m_curr_points,&currPoints,sizeof(short));
		WriteICC(32+(int)&((Drive_Certi_Info*)0)->m_deducted_points,&deductedPoints,sizeof(short));
		
		
		((CExecLawSheet_Dlg*)this->GetParent ())->GetPage (0)->
			  SendMessage (WM_COMMAND,IDC_BUTTON_QUERY,0);
	}
	else
	{
	
		MessageBox(L"执行失败。");
	}	

	
error:

	if(v==0)
	{
		MessageBox(L"网络错误!");
	}

	s.ShutDown ();
	s.Close ();

}

void CPunishPeccancy_PPage::OnBUTTONprint() 
{
	HANDLE hCom;
	DWORD len;
	hCom =::CreateFile (L"COM7:",
		                      GENERIC_READ|GENERIC_WRITE,
							  0,NULL,OPEN_EXISTING,
							  FILE_ATTRIBUTE_NORMAL|FILE_FLAG_WRITE_THROUGH,
							  NULL);

	if(hCom==INVALID_HANDLE_VALUE)
		return;


	DCB dcb;
	dcb.DCBlength =sizeof(DCB);
	::GetCommState (hCom,&dcb);
    dcb.BaudRate =CBR_9600;
	dcb.StopBits =ONESTOPBIT;
	dcb.ByteSize =8;
	
	::SetCommState (hCom,&dcb);
	
	Drive_Certi_Info dci;
	char str[512];
	
	if(::ReadICC (32,&dci,sizeof(dci))==0)
	{
		MessageBox(L"读取IC卡错误。");
		return;
	}

	::WriteFile(hCom, "\n", strlen("\n"), &len, NULL);
	Sleep(400);
	::WriteFile(hCom, "姓名:", strlen("姓名:"), &len, NULL);
	memset(str, 0, sizeof(str));
	::WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, dci.m_name, -1, str, sizeof(str), NULL, NULL);
	strcat(str, "\n");
	::WriteFile(hCom, str, strlen(str), &len, NULL);
	Sleep(400);

	::WriteFile(hCom, "驾驶证号:", strlen("驾驶证号:"), &len, NULL);
	memset(str, 0, sizeof(str));
	::WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK, dci.m_cer_mumber, -1, str, sizeof(str), NULL, NULL);
	strcat(str, "\n");
	::WriteFile(hCom, str, strlen(str), &len, NULL);
	Sleep(400);

	::WriteFile(hCom, "剩余分数:", strlen("剩余分数:"), &len, NULL);
	sprintf(str, "%d\n", dci.m_curr_points);
	::WriteFile(hCom, str, strlen(str), &len, NULL);
	Sleep(400);
	
	::WriteFile(hCom, "已经扣除分数:", strlen("已经扣除分数:"), &len, NULL);
	sprintf(str, "%d\n", dci.m_deducted_points);
	::WriteFile(hCom, str, strlen(str), &len, NULL);
	Sleep(100);
	::WriteFile(hCom, "                \r", 17, &len, NULL);
	Sleep(400);


	::CloseHandle(hCom);
}

⌨️ 快捷键说明

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