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

📄 netcommanger.cpp

📁 用算法来实现一个收费系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		str = str + "f";
	//自动车型
	if(m_dData_Use.command==4)
	{
	    char buffer[2];	
		_itoa(m_dData_Use.type,buffer,10);
		str = str + "0" +buffer ;

	}
	else
	{
		str=str + "ff";
	}
	//bakestr
	str = str + "f" ;
	m_pNetSocket->Send(str,str.GetLength());
}

void CNetComManger::SecondDuty()
{
	if (m_pNetSocket)//WinSock通信类变量,send发送成功返回该变量为真
	{
	}
	else
	{
		if (!(m_pNetSocket = ConnectToServer(g_Server_Ip_Address,g_Server_Port)))
		{
//		AfxMessageBox("connecttoserver") ;

			m_BClose = false ;
			m_BCloseTime = false ;
			delete m_pNetSocket ;
			m_pNetSocket = NULL;//hyh 2001.09.26
			return ;
		}

	}

	if(m_pNetSocket->IsBlocking())
	{
//		AfxMessageBox("IsBlocking") ;
		m_BCloseTime = false;
		m_pNetSocket->CancelBlockingCall() ;
		return;
	}

	m_BClose = true ;
	m_BCloseTime = false ;


	Data_01 SendData;
	Build_StatuData(&SendData);
	CString str,str1;
	static _int64 sernum=0;//比较序列号hm 9.24
	str += "T";
	str1.Format("%s",SendData.name);
	for(int i = str1.GetLength() ; i< 8 ; i++)
		str1 = str1 + " ";

	str = str + str1;
	str1.Format("%.2d",SendData.lane);
	str =str + str1;
	
	str1.Format("%.4d",SendData.year);
	str = str + str1;
	str1.Format("%.2d",SendData.month);
	str = str + str1;
	str1.Format("%.2d",SendData.day);
	str = str + str1;
	str1.Format("%.2d",SendData.hour);
	str = str + str1;
	str1.Format("%.2d",SendData.min);
	str = str + str1;
	str1.Format("%.2d",SendData.sec);
	str = str + str1;

	str = str + SendData.bfh;
	str = str + SendData.gonghao;
	str = str + SendData.chexing;
	str = str + SendData.Feie;
	str = str + SendData.piaohao;
	str = str + SendData.gongban;
	str = str + SendData.xuliehao;


//顶棚红
	if(SendData.BTopRed)
		str = str + "t";
	else 
		str = str + "f";
//顶棚绿
	if(SendData.BTopGreen)
		str = str + "t";
	else 
		str = str + "f";
//车道红
	if(SendData.BLaneRed)
		str = str + "t";
	else 
		str = str + "f";
//车道绿
	if(SendData.BLaneGreen)
		str = str + "t";
	else 
		str = str + "f";
//杆起
	if(SendData.BBarUp)
		str = str + "t";
	else 
		str = str + "f";
//杆落
	if(SendData.BBarDown)
		str = str + "t";
	else 
		str = str + "f";
//线圈
	if(SendData.BLoop)
		str = str + "t";
	else 
		str = str + "f";
//手动栏杆
	if(SendData.BBAK1)
		str = str + "t";
	else 
		str = str + "f";
//上班状态
	if(SendData.BBAK2)
		str = str + "t";
	else 
		str = str + "f";
//is_now_data
	if(SendData.BBAK3)
		str = str + "t";
	else 
		str = str + "f";
	//自动车型
	str = str + "ff";
	//bakestr
	str = str + "f" ;

//	if(sernum!=m_dData_Use.record_ID)//保证界面只发送一次
	{
		m_pNetSocket->Send(str,str.GetLength());
		sernum=m_dData_Use.record_ID;
	}

}

void CNetComManger::Build_StatuData(Data_01 * Data)
{
	CTime Time = CTime::GetCurrentTime();
	g_nCommand = 1 ;
	Data->command = g_nCommand;
	Data->lane = g_Lane_No ;
	memcpy(Data->name,g_nManName.GetBuffer(20),20);
	Data->hour = Time.GetHour(); Data->min = Time.GetMinute(); Data->sec = Time.GetSecond();
	Data->year = Time.GetYear(); Data->month = Time.GetMonth(); Data->day = Time.GetDay();
//wangyu
	for (int i0 = g_nBfh.GetLength() ;i0 <2 ;i0 = i0 +1)
		g_nBfh = "0" + g_nBfh ;
	Data->bfh = g_nBfh;
	for ( int i1 = g_nManNum.GetLength() ;i1 < 8 ;i1 = i1 + 1)
		g_nManNum = "0"+g_nManNum ;
	Data->gonghao = g_nManNum;
	for (int i2 = g_nCheXing.GetLength() ;i2 <2 ; i2 = i2 +1)
		g_nCheXing = "0" +g_nCheXing ;
	Data->chexing = g_nCheXing ;
	for (int i3 = g_nFeie.GetLength() ; i3 < 4 ; i3 = i3 +1)
		g_nFeie = "0" + g_nFeie ;
	Data->Feie = g_nFeie;
	for (int i4 = g_nTicketNum.GetLength() ;i4 <10 ;i4 = i4 +1)
		g_nTicketNum = "0"+g_nTicketNum ;
	Data->piaohao = g_nTicketNum;
	for (int i5 = g_nGongBan.GetLength() ;i5 <2 ;i5 = i5 +1)
		g_nGongBan = "0" + g_nGongBan ;
	Data->gongban = g_nGongBan ;
	for (int i6 = g_nXuLieHao.GetLength() ;i6 <15 ;i6 = i6 +1)
		g_nXuLieHao = "0" + g_nXuLieHao ;
	Data->xuliehao = g_nXuLieHao ;
//wangyu
	Data->BBAK1 = false;	
	Data->BBAK2 = g_BBAK2; 
	Data->BBAK3 = false;
	Data->BBarDown = g_BBarDown; 
	Data->BBarUp = g_BBarUp; 
	Data->BLaneGreen = g_BLaneGreen;
	Data->BLaneRed = g_BLaneRed; 
	Data->BLoop = g_BLoop; 
	Data->BTopGreen = g_BTopGreen;
	Data->BTopRed = g_BTopRed;

/*
	a = m_nHard; 
	for(int i = 0; i < 8 ; i++)
	{
		work = a & 0x1;
		switch (i)
		{
		case 0:
				if(work == 1)
					Data->BLaneGreen = true;
				else 
					Data->BLaneRed = true;
			break;
		case 1:
			break;
		case 2:
			break;
		case 3:
			break;
		case 4:
			break;
		case 5:
			break;
		case 6:
			break;
		case 7:
			break;
		}
		a >>= 1;

	}
	
	a = m_nInput; 

	for(i = 0; i < 8 ; i++)
	{
		work = a & 0x1;
		switch (i)
		{
		case 0:
			break;
		case 1:
			break;
		case 2:
			if(work == 1)
				Data->BBarUp = true;
			break;
		case 3:
			if(work == 1)
				Data->BBarDown = true;
			break;
		case 4:
			break;
		case 5:
			break;
		case 6:
			break;
		case 7:
			break;
		}

	}
	a >>= 1;
*/
}


CNetSocketTxj * CNetComManger::ConnectToTxj(LPCTSTR lpszHostAddress, UINT nHostPort)
{
	CNetSocketTxj * pNetSocketTxj = new CNetSocketTxj(this);
	if(!(pNetSocketTxj->Create()))
	{
		m_BCloseTxjTime = false ;
		delete pNetSocketTxj;
		pNetSocketTxj = NULL; //hyh 2001.09.26
		return NULL;
	}
	if(!pNetSocketTxj->Connect(lpszHostAddress,nHostPort))
	{
		m_BCloseTxjTime = false ;
		delete pNetSocketTxj;
		pNetSocketTxj = NULL;//hyh 2001.09.26
		return NULL;
	}
	return pNetSocketTxj;

}

void CNetComManger::TxjSecondDuty()
{
	if (m_pNetSocketTxj)
	{

	}
	else
	{
		if (!(m_pNetSocketTxj = ConnectToTxj(g_Txj_Ip_Address,g_Txj_Port)))
		{
			m_BCloseTxjTime = false ;
			delete m_pNetSocketTxj ;
			m_pNetSocketTxj = NULL;//hyh 2001.09.26
			return ;
		}

	}
	if(m_pNetSocketTxj->IsBlocking())
	{
		m_BCloseTxjTime =false ;
		m_pNetSocketTxj->CancelBlockingCall() ;
		return;

	}
	m_BCloseTxjTime =false ;

	Data_01 SendData;
	Build_StatuData(&SendData);
	CString str,str1;
		str += "T";
	str1.Format("%s",SendData.name);
	for(int i = str1.GetLength() ; i< 8 ; i++)
		str1 = str1 + " ";

	str = str + str1;
	str1.Format("%.2d",SendData.lane);
	str =str + str1;
	
	str1.Format("%.4d",SendData.year);
	str = str + str1;
	str1.Format("%.2d",SendData.month);
	str = str + str1;
	str1.Format("%.2d",SendData.day);
	str = str + str1;
	str1.Format("%.2d",SendData.hour);
	str = str + str1;
	str1.Format("%.2d",SendData.min);
	str = str + str1;
	str1.Format("%.2d",SendData.sec);
	str = str + str1;

	str = str + SendData.bfh;
	str = str + SendData.gonghao;
	str = str + SendData.chexing;
	str = str + SendData.Feie;
	str = str + SendData.piaohao;
	str = str + SendData.gongban;
	str = str + SendData.xuliehao;
//	str = str + g_nXuLieHao;

//顶棚红
	if(SendData.BTopRed)
		str = str + "t";
	else 
		str = str + "f";
//顶棚绿
	if(SendData.BTopGreen)
		str = str + "t";
	else 
		str = str + "f";
//车道红
	if(SendData.BLaneRed)
		str = str + "t";
	else 
		str = str + "f";
//车道绿
	if(SendData.BLaneGreen)
		str = str + "t";
	else 
		str = str + "f";
//杆起
	if(SendData.BBarUp)
		str = str + "t";
	else 
		str = str + "f";
//杆落
	if(SendData.BBarDown)
		str = str + "t";
	else 
		str = str + "f";
//线圈
	if(SendData.BLoop)
		str = str + "t";
	else 
		str = str + "f";
//手动栏杆
	if(SendData.BBAK1)
		str = str + "t";
	else 
		str = str + "f";
//上班状态
	if(SendData.BBAK2)
		str = str + "t";
	else 
		str = str + "f";
//is_now_data
	if(SendData.BBAK3)
		str = str + "t";
	else 
		str = str + "f";
	//自动车型
	str = str + "ff";
	//bakestr
	str = str + "f" ;
	m_pNetSocketTxj->Send(str,str.GetLength());


}

void CNetComManger::TxjnetSendMsg(Data_Use *pMsg, int nLength)
{
	static int SecondCount1 = 0;
	memcpy((char *)&m_dData_Use,(char *)pMsg,sizeof(Data_Use));
	if(m_pNetSocketTxj)
	{

	}
	else
	{
		return;
	}
	if(m_pNetSocketTxj->IsBlocking())
	{
		m_pNetSocketTxj->CancelBlockingCall() ;
		return;
	}

	Data_01 SendData;
	Build_StatuData(&SendData);
	CString str,str1;
	str += m_TxjRead ;
	if (m_TxjRead == "Z")
	{
		str = m_TxjSBYChexing ;
	}
	else
	{

	str1.Format("%s",m_dData_Use.name);

	for(int i = str1.GetLength() ; i< 8 ; i++)
		str1 += " ";

	str += str1;
	str1.Format("%.2d",SendData.lane);
	str += str1;
	
	str1.Format("%.4d",m_dData_Use.year);
	str += str1;
	str1.Format("%.2d",m_dData_Use.month);
	str += str1;
	str1.Format("%.2d",m_dData_Use.day);
	str += str1;
	str1.Format("%.2d",m_dData_Use.hour);
	str += str1;
	str1.Format("%.2d",m_dData_Use.min);
	str += str1;
	str1.Format("%.2d",m_dData_Use.sec);
	str += str1;
	str = str + SendData.bfh ;
	str1.Format("%.8d",m_dData_Use.man_NO);
	str += str1;
	str1.Format("%.2d",m_dData_Use.vehcile_type);
	str += str1;
	str1.Format("%.4d",m_dData_Use.fee);
	str += str1;
	str1.Format("%.10d",m_dData_Use.ticket_NO);
	str += str1;
	str1.Format("%.2d",m_dData_Use.work_class);
	str += str1;
	str1.Format("%15d",m_dData_Use.record_ID);
	str += str1;


	if(SendData.BTopRed)
		str += "t";
	else 
		str += "f";

	if(SendData.BTopGreen)
		str += "t";
	else 
		str += "f";

	if(SendData.BLaneRed)
		str += "t";
	else 
		str += "f";

	if(SendData.BLaneGreen)
		str += "t";
	else 
		str += "f";

	if(SendData.BBarUp)
		str += "t";
	else 
		str += "f";

	if(SendData.BBarDown)
		str += "t";
	else 
		str += "f";

	if(SendData.BLoop)
		str += "t";
	else 
		str += "f";
//
//手动栏杆
	if(SendData.BBAK1)
		str = str + "t";
	else 
		str = str + "f";
//上班状态
	if(SendData.BBAK2)
		str = str + "t";
	else 
		str = str + "f";
//is_now_data
	if(SendData.BBAK3)
		str = str + "t";
	else 
		str = str + "f";
	//自动车型
	str = str + "00";
	//bakestr
	str = str + "f" ;
}

	m_pNetSocketTxj->Send(str,str.GetLength());

}



void CNetComManger::OnConnectClose()
{
	if(m_pNetSocket)
	{
		delete m_pNetSocket ;
		m_pNetSocket = NULL ;
	}
	else
	{

	}
}

void CNetComManger::OnConnectCloseTxj()
{
	if(m_pNetSocketTxj)
	{
		delete m_pNetSocketTxj ;
		m_pNetSocketTxj = NULL ;
	}
	else
	{

	}

}

⌨️ 快捷键说明

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