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

📄 comthread.cpp

📁 保护装置的mbpc软件
💻 CPP
📖 第 1 页 / 共 5 页
字号:
//DEL 		this->m_SetBuf[k].bValue = 0;
//DEL 		this->m_SetBuf[k].fValue = 0;
//DEL 		this->m_SetBuf[k].nValue = 0;
//DEL 	}
//DEL }

BOOL CComThread::RcvDoEnable()
{
	m_pDoc->m_bDoOper = 1;
	m_pDoc->m_DoIdBuf = m_szInPacket[9];
	m_pDoc->m_DoStatuBuf = m_szInPacket[10];

	m_pDoc->m_Time.TimeBuf.year = m_szInPacket[11];
	m_pDoc->m_Time.TimeBuf.month = m_szInPacket[12];
	m_pDoc->m_Time.TimeBuf.day = m_szInPacket[13];
	m_pDoc->m_Time.TimeBuf.hour = m_szInPacket[14];
	m_pDoc->m_Time.TimeBuf.minute = m_szInPacket[15];
	m_pDoc->m_Time.TimeBuf.second = m_szInPacket[16];
	BYTE a[2];
	memset(a,0,sizeof(a));
	a[1] = m_szInPacket[17]; a[0] = m_szInPacket[18];
	memcpy(&m_pDoc->m_Time.TimeBuf.ms,&a,sizeof(WORD));
	if((m_pDoc->m_Time.AckDoEnableTime.year == 0 && m_pDoc->m_Time.AckDoEnableTime.month == 0 && m_pDoc->m_Time.AckDoEnableTime.day == 0 && m_pDoc->m_Time.AckDoEnableTime.hour == 0 && m_pDoc->m_Time.AckDoEnableTime.minute == 0 && m_pDoc->m_Time.AckDoEnableTime.second ==0))
	{
		m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
	}
	else
	{
		if(m_pDoc->m_Time.TimeBuf.year > m_pDoc->m_Time.AckDoEnableTime.year)
		{
			m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
		}
		else
		{
			if(m_pDoc->m_Time.TimeBuf.year == m_pDoc->m_Time.AckDoEnableTime.year)
			{
				if(m_pDoc->m_Time.TimeBuf.month > m_pDoc->m_Time.AckDoEnableTime.month )
				{
					m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
				}
				else
				{
					if(m_pDoc->m_Time.TimeBuf.month == m_pDoc->m_Time.AckDoEnableTime.month)
					{
						if(m_pDoc->m_Time.TimeBuf.day > m_pDoc->m_Time.AckDoEnableTime.day)
						{
							m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
						}
						else
						{
							if(m_pDoc->m_Time.TimeBuf.day == m_pDoc->m_Time.AckDoEnableTime.day)
							{
								if(m_pDoc->m_Time.TimeBuf.hour > m_pDoc->m_Time.AckDoEnableTime.hour)
								{
									m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
								}
								else
								{
									if(m_pDoc->m_Time.TimeBuf.hour == m_pDoc->m_Time.AckDoEnableTime.hour)
									{
										if(m_pDoc->m_Time.TimeBuf.minute > m_pDoc->m_Time.AckDoEnableTime.minute)
										{
											m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
										}
										else
										{
											if(m_pDoc->m_Time.TimeBuf.minute == m_pDoc->m_Time.AckDoEnableTime.minute)
											{
												if(m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckDoEnableTime.second)
												{
													m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	/*if((m_pDoc->m_Time.AckDoEnableTime.year == 0 && m_pDoc->m_Time.AckDoEnableTime.month == 0 && m_pDoc->m_Time.AckDoEnableTime.day == 0 && m_pDoc->m_Time.AckDoEnableTime.hour == 0 && m_pDoc->m_Time.AckDoEnableTime.minute == 0 && m_pDoc->m_Time.AckDoEnableTime.second ==0)
		|| (m_pDoc->m_Time.TimeBuf.year >= m_pDoc->m_Time.AckDoEnableTime.year && m_pDoc->m_Time.TimeBuf.month >= m_pDoc->m_Time.AckDoEnableTime.month && m_pDoc->m_Time.TimeBuf.day >= m_pDoc->m_Time.AckDoEnableTime.day && m_pDoc->m_Time.TimeBuf.hour >= m_pDoc->m_Time.AckDoEnableTime.hour
		&& m_pDoc->m_Time.TimeBuf.minute >= m_pDoc->m_Time.AckDoEnableTime.minute && m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckDoEnableTime.second))
	{
		m_pDoc->m_Time.AckDoEnableTime = m_pDoc->m_Time.TimeBuf;
	}*/
	
	return TRUE;
}

BOOL CComThread::RcvDoCmd()
{
	m_pDoc->m_bDoStatus[m_szInPacket[9]] = m_szInPacket[10];

	m_pDoc->m_Time.TimeBuf.year = m_szInPacket[11];
	m_pDoc->m_Time.TimeBuf.month = m_szInPacket[12];
	m_pDoc->m_Time.TimeBuf.day = m_szInPacket[13];
	m_pDoc->m_Time.TimeBuf.hour = m_szInPacket[14];
	m_pDoc->m_Time.TimeBuf.minute = m_szInPacket[15];
	m_pDoc->m_Time.TimeBuf.second = m_szInPacket[16];
	BYTE a[2];
	memset(a,0,sizeof(a));
	a[1] = m_szInPacket[17]; a[0] = m_szInPacket[18];
	memcpy(&m_pDoc->m_Time.TimeBuf.ms,&a,sizeof(WORD));
	if((m_pDoc->m_Time.AckDoCmdTime.year == 0 && m_pDoc->m_Time.AckDoCmdTime.month == 0 && m_pDoc->m_Time.AckDoCmdTime.day == 0 && m_pDoc->m_Time.AckDoCmdTime.hour == 0 && m_pDoc->m_Time.AckDoCmdTime.minute == 0 && m_pDoc->m_Time.AckDoCmdTime.second ==0))
	{
		m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
	}
	else
	{
		if(m_pDoc->m_Time.TimeBuf.year > m_pDoc->m_Time.AckDoCmdTime.year)
		{
			m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
		}
		else
		{
			if(m_pDoc->m_Time.TimeBuf.year == m_pDoc->m_Time.AckDoCmdTime.year)
			{
				if(m_pDoc->m_Time.TimeBuf.month > m_pDoc->m_Time.AckDoCmdTime.month )
				{
					m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
				}
				else
				{
					if(m_pDoc->m_Time.TimeBuf.month == m_pDoc->m_Time.AckDoCmdTime.month)
					{
						if(m_pDoc->m_Time.TimeBuf.day > m_pDoc->m_Time.AckDoCmdTime.day)
						{
							m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
						}
						else
						{
							if(m_pDoc->m_Time.TimeBuf.day == m_pDoc->m_Time.AckDoCmdTime.day)
							{
								if(m_pDoc->m_Time.TimeBuf.hour > m_pDoc->m_Time.AckDoCmdTime.hour)
								{
									m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
								}
								else
								{
									if(m_pDoc->m_Time.TimeBuf.hour == m_pDoc->m_Time.AckDoCmdTime.hour)
									{
										if(m_pDoc->m_Time.TimeBuf.minute > m_pDoc->m_Time.AckDoCmdTime.minute)
										{
											m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
										}
										else
										{
											if(m_pDoc->m_Time.TimeBuf.minute == m_pDoc->m_Time.AckDoCmdTime.minute)
											{
												if(m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckDoCmdTime.second)
												{
													m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	/*if((m_pDoc->m_Time.AckDoCmdTime.year == 0 && m_pDoc->m_Time.AckDoCmdTime.month == 0 && m_pDoc->m_Time.AckDoCmdTime.day == 0 && m_pDoc->m_Time.AckDoCmdTime.hour == 0 && m_pDoc->m_Time.AckDoCmdTime.minute == 0 && m_pDoc->m_Time.AckDoCmdTime.second ==0)
		|| (m_pDoc->m_Time.TimeBuf.year >= m_pDoc->m_Time.AckDoCmdTime.year && m_pDoc->m_Time.TimeBuf.month >= m_pDoc->m_Time.AckDoCmdTime.month && m_pDoc->m_Time.TimeBuf.day >= m_pDoc->m_Time.AckDoCmdTime.day && m_pDoc->m_Time.TimeBuf.hour >= m_pDoc->m_Time.AckDoCmdTime.hour
		&& m_pDoc->m_Time.TimeBuf.minute >= m_pDoc->m_Time.AckDoCmdTime.minute && m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckDoCmdTime.second))
	{
		m_pDoc->m_Time.AckDoCmdTime = m_pDoc->m_Time.TimeBuf;
	}*/
	m_pDoc->m_bSwitch = TRUE;
	return TRUE;
}

BOOL CComThread::RcvEnableEnable()
{
	m_pDoc->m_bEnableOper = 1;
	m_pDoc->m_EnableIdBuf = m_szInPacket[9];
	m_pDoc->m_EnableStatuBuf = m_szInPacket[10];

	m_pDoc->m_Time.TimeBuf.year = m_szInPacket[11];
	m_pDoc->m_Time.TimeBuf.month = m_szInPacket[12];
	m_pDoc->m_Time.TimeBuf.day = m_szInPacket[13];
	m_pDoc->m_Time.TimeBuf.hour = m_szInPacket[14];
	m_pDoc->m_Time.TimeBuf.minute = m_szInPacket[15];
	m_pDoc->m_Time.TimeBuf.second = m_szInPacket[16];
	BYTE a[2];
	memset(a,0,sizeof(a));
	a[1] = m_szInPacket[17]; a[0] = m_szInPacket[18];

	memcpy(&m_pDoc->m_Time.TimeBuf.ms,&a,sizeof(WORD));
	if((m_pDoc->m_Time.AckEnaEnabelTime.year == 0 && m_pDoc->m_Time.AckEnaEnabelTime.month == 0 && m_pDoc->m_Time.AckEnaEnabelTime.day == 0 && m_pDoc->m_Time.AckEnaEnabelTime.hour == 0 && m_pDoc->m_Time.AckEnaEnabelTime.minute == 0 && m_pDoc->m_Time.AckEnaEnabelTime.second ==0))
	{
		m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
	}
	else
	{
		if(m_pDoc->m_Time.TimeBuf.year > m_pDoc->m_Time.AckEnaEnabelTime.year)
		{
			m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
		}
		else
		{
			if(m_pDoc->m_Time.TimeBuf.year == m_pDoc->m_Time.AckEnaEnabelTime.year)
			{
				if(m_pDoc->m_Time.TimeBuf.month > m_pDoc->m_Time.AckEnaEnabelTime.month )
				{
					m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
				}
				else
				{
					if(m_pDoc->m_Time.TimeBuf.month == m_pDoc->m_Time.AckEnaEnabelTime.month)
					{
						if(m_pDoc->m_Time.TimeBuf.day > m_pDoc->m_Time.AckEnaEnabelTime.day)
						{
							m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
						}
						else
						{
							if(m_pDoc->m_Time.TimeBuf.day == m_pDoc->m_Time.AckEnaEnabelTime.day)
							{
								if(m_pDoc->m_Time.TimeBuf.hour > m_pDoc->m_Time.AckEnaEnabelTime.hour)
								{
									m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
								}
								else
								{
									if(m_pDoc->m_Time.TimeBuf.hour == m_pDoc->m_Time.AckEnaEnabelTime.hour)
									{
										if(m_pDoc->m_Time.TimeBuf.minute > m_pDoc->m_Time.AckEnaEnabelTime.minute)
										{
											m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
										}
										else
										{
											if(m_pDoc->m_Time.TimeBuf.minute == m_pDoc->m_Time.AckEnaEnabelTime.minute)
											{
												if(m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckEnaEnabelTime.second)
												{
													m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	/*if((m_pDoc->m_Time.AckEnaEnabelTime.year == 0 && m_pDoc->m_Time.AckEnaEnabelTime.month == 0 && m_pDoc->m_Time.AckEnaEnabelTime.day == 0 && m_pDoc->m_Time.AckEnaEnabelTime.hour == 0 && m_pDoc->m_Time.AckEnaEnabelTime.minute == 0 && m_pDoc->m_Time.AckEnaEnabelTime.second ==0)
		|| (m_pDoc->m_Time.TimeBuf.year >= m_pDoc->m_Time.AckEnaEnabelTime.year && m_pDoc->m_Time.TimeBuf.month >= m_pDoc->m_Time.AckEnaEnabelTime.month && m_pDoc->m_Time.TimeBuf.day >= m_pDoc->m_Time.AckEnaEnabelTime.day && m_pDoc->m_Time.TimeBuf.hour >= m_pDoc->m_Time.AckEnaEnabelTime.hour
		&& m_pDoc->m_Time.TimeBuf.minute >= m_pDoc->m_Time.AckEnaEnabelTime.minute && m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckEnaEnabelTime.second))
	{
		m_pDoc->m_Time.AckEnaEnabelTime = m_pDoc->m_Time.TimeBuf;
	}*/
	
	return TRUE;
}

BOOL CComThread::RcvEnableSet()
{
	m_pDoc->m_bEnableStatus[m_szInPacket[9]] = m_szInPacket[10];

	m_pDoc->m_Time.TimeBuf.year = m_szInPacket[11];
	m_pDoc->m_Time.TimeBuf.month = m_szInPacket[12];
	m_pDoc->m_Time.TimeBuf.day = m_szInPacket[13];
	m_pDoc->m_Time.TimeBuf.hour = m_szInPacket[14];
	m_pDoc->m_Time.TimeBuf.minute = m_szInPacket[15];
	m_pDoc->m_Time.TimeBuf.second = m_szInPacket[16];
	BYTE a[2];
	memset(a,0,sizeof(a));
	a[1] = m_szInPacket[17]; a[0] = m_szInPacket[18];
	memcpy(&m_pDoc->m_Time.TimeBuf.ms,&a,sizeof(WORD));
	if((m_pDoc->m_Time.AckEnaSetTime.year == 0 && m_pDoc->m_Time.AckEnaSetTime.month == 0 && m_pDoc->m_Time.AckEnaSetTime.day == 0 && m_pDoc->m_Time.AckEnaSetTime.hour == 0 && m_pDoc->m_Time.AckEnaSetTime.minute == 0 && m_pDoc->m_Time.AckEnaSetTime.second ==0))
	{
		m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
	}
	else
	{
		if(m_pDoc->m_Time.TimeBuf.year > m_pDoc->m_Time.AckEnaSetTime.year)
		{
			m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
		}
		else
		{
			if(m_pDoc->m_Time.TimeBuf.year == m_pDoc->m_Time.AckEnaSetTime.year)
			{
				if(m_pDoc->m_Time.TimeBuf.month > m_pDoc->m_Time.AckEnaSetTime.month )
				{
					m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
				}
				else
				{
					if(m_pDoc->m_Time.TimeBuf.month == m_pDoc->m_Time.AckEnaSetTime.month)
					{
						if(m_pDoc->m_Time.TimeBuf.day > m_pDoc->m_Time.AckEnaSetTime.day)
						{
							m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
						}
						else
						{
							if(m_pDoc->m_Time.TimeBuf.day == m_pDoc->m_Time.AckEnaSetTime.day)
							{
								if(m_pDoc->m_Time.TimeBuf.hour > m_pDoc->m_Time.AckEnaSetTime.hour)
								{
									m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
								}
								else
								{
									if(m_pDoc->m_Time.TimeBuf.hour == m_pDoc->m_Time.AckEnaSetTime.hour)
									{
										if(m_pDoc->m_Time.TimeBuf.minute > m_pDoc->m_Time.AckEnaSetTime.minute)
										{
											m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
										}
										else
										{
											if(m_pDoc->m_Time.TimeBuf.minute == m_pDoc->m_Time.AckEnaSetTime.minute)
											{
												if(m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckEnaSetTime.second)
												{
													m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
												}
											}
										}
									}
								}
							}
						}
					}
				}
			}
		}
	}
	/*if((m_pDoc->m_Time.AckEnaSetTime.year == 0 && m_pDoc->m_Time.AckEnaSetTime.month == 0 && m_pDoc->m_Time.AckEnaSetTime.day == 0 && m_pDoc->m_Time.AckEnaSetTime.hour == 0 && m_pDoc->m_Time.AckEnaSetTime.minute == 0 && m_pDoc->m_Time.AckEnaSetTime.second ==0)
		|| (m_pDoc->m_Time.TimeBuf.year >= m_pDoc->m_Time.AckEnaSetTime.year && m_pDoc->m_Time.TimeBuf.month >= m_pDoc->m_Time.AckEnaSetTime.month && m_pDoc->m_Time.TimeBuf.day >= m_pDoc->m_Time.AckEnaSetTime.day && m_pDoc->m_Time.TimeBuf.hour >= m_pDoc->m_Time.AckEnaSetTime.hour
		&& m_pDoc->m_Time.TimeBuf.minute >= m_pDoc->m_Time.AckEnaSetTime.minute && m_pDoc->m_Time.TimeBuf.second >= m_pDoc->m_Time.AckEnaSetTime.second))
	{
		m_pDoc->m_Time.AckEnaSetTime = m_pDoc->m_Time.TimeBuf;
	}*/
	m_pDoc->m_bSwitch = TRUE;
	return TRUE;
}

BOOL CComThread::RcvSetSwitch()
{
	m_pDoc->m_device_info.current_sect = m_szInPacket[9];
	return TRUE;
}

BOOL CComThread::RcvSetDataChg()
{
	//显示定值区内容时,切换到哪个定值区,就把该定值区的内容copy到m_SetBuf
	switch(m_pDoc->m_SettingInfo[m_szInPacket[10]].data_type)
	{
		BYTE a[4];
		memset(a,0,sizeof(a));

	case 0:
		{
			memcpy(&m_pDoc->m_SetBuf[m_szInPacket[10]].bValue, &m_szInPacket[11], sizeof(BOOL));
			break;
		}
	case 1:
		{
			memcpy(&m_pDoc->m_SetBuf[m_szInPacket[10]].nValue, &m_szInPacket[11], sizeof(WORD));
			break;
		}
	case 2:
		{
			a[3] = m_szInPacket[11]; a[2] = m_szInPacket[12]; a[1] = m_szInPacket[13]; a[0] = m_szInPacket[14];
	//		memcpy(&m_pDoc->m_SetBuf[m_szInPacket[10]], &a, sizeof(a));
			memcpy(&m_pDoc->m_SetBuf[m_szInPacket[10]].fValue, &a, sizeof(float));
			break;
		}
	}
	return TRUE;
}

BOOL CComThread::RcvSetCmdChg()
{
	m_pDoc->m_SetReturn = m_szInPacket[10];

	return TRUE;
}

BOOL CComThread::RcvSendSet()
{
	BYTE tSetcntr = 0;
//	if(m_szInPacket[11] == 0)
//	{
//		m_pDoc->m_nSetFrameCntr = m_szInPacket[10];
//	}
	tSetcntr = m_szInPacket[10];
	if(this->m_szInPacket[9] > MAX_SETTING_SECT - 1)
	{
		return TRUE;
	}
	else
	{
		for(int i = 0; i < tSetcntr; i++)
		{
			BYTE a[4];
			memset(a,0,sizeof(a));

⌨️ 快捷键说明

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