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

📄 cdtmas.cpp

📁 一个通讯管理机的源代码。比较好用。推荐
💻 CPP
📖 第 1 页 / 共 2 页
字号:
  {	  BYTE*	pbyTemp = pbyData;	for (WORD www=0; www<wSize/6; www++,pbyTemp+=6)	{		if (pbyTemp[0] <=0x7f) //YC		{		switch (pbyTemp[0])		{		  case 0x01:			             w2=1;			 pData[w1].m_wDevNo = wDevNo;			 pData[w1].m_wDevPtNo = w2+4;		//	 pData[w1++].m_fValue = CW(pbyTemp[1]);//可能有问题这里			 pData[w1].m_wDevNo = wDevNo;             pData[w1].m_wDevPtNo = w2+5;         //    pData[w1++].m_fValue = CW(pbyTemp[2]);//可能有问题这里		     break;          case 0x03:                      w2=9;			  pData[w1].m_wDevNo = wDevNo;			  pData[w1].m_wDevPtNo = w2;		//	  pData[w1++].m_fValue = CW(pbyTemp[1]);//可能有问题这里			  pData[w1].m_wDevNo = wDevNo;              pData[w1].m_wDevPtNo = w2+1;         //     pData[w1++].m_fValue = CW(pbyTemp[2]);//可能有问题这里			  break;		  case 0x04:	              w2=11;		      pData[w1].m_wDevNo = wDevNo;			  pData[w1].m_wDevPtNo = w2;			//  pData[w1++].m_fValue = CW(pbyTemp[1]);//可能有问题这里              pData[w1].m_wDevNo = wDevNo;              pData[w1].m_wDevPtNo = w2+1;          //    pData[w1++].m_fValue = CW(pbyTemp[2]);//可能有问题这里			 break;			default:			break;		}		}		else if (pbyTemp[0] ==0x80)// || (pbyTemp[0] == 0x81)) //SOE		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x81))			{															www++;				pbyTemp+=6;			}		}		else if (pbyTemp[0] ==0x84)// || (pbyTemp[0] == 0x85)) //Time Ret		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x85))			{											www++;				pbyTemp+=6;			}		}		else if ((pbyTemp[0] >=0x86) && (pbyTemp[0] <=0x89)) //ZJ YC		{				}		else if (pbyTemp[0] == 0x8a) //f 频率		{				}		else if ((pbyTemp[0] >=0x8d) && (pbyTemp[0] <=0x92)) //Water 水位		{				}		else if ((pbyTemp[0] >=0xa0) && (pbyTemp[0] <=0xdf)) //DD		{				}		else if (pbyTemp[0] >=0xe1) //YK ret         //有疑问		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] >=0xe5) //YT ret		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] == 0xec) //子站状态		{				}		else if ((pbyTemp[0] >=0xf0) && (pbyTemp[0] <=0xff)) //YX		{				}		else //按YC处理		{		}	}  }	  //  m_pAllMgr->YC(pData,w1);	delete [] pData;	}/********************funtion: ExpMYCData(BYTE byAddr,BYTE* pbyData,WORD wSize);*****add by lisheng 2007-4-4********************/void CCDTMAS::ExpMYCData(BYTE byAddr,BYTE* pbyData,WORD wSize){	 WORD wDevNo	= m_subdevmgr.GetDevNoFrmAddr(byAddr);     BYTE byType	= m_subdevmgr.GetTypeFrmAddr(byAddr);     WORD w1=0;     WORD w2=0;	YCData*	pData =	new	YCData [wSize/6];	   if(byType==dt_ePSME10)  {	  BYTE*	pbyTemp = pbyData;	for (WORD www=0; www<wSize/6; www++,pbyTemp+=6)	{		if (pbyTemp[0] <=0x7f) //YC		{			switch (pbyTemp[0])		{		  case 0x06:			             w2=1;			 pData[w1].m_wDevNo = wDevNo;			 pData[w1].m_wDevPtNo = w2;		//	 pData[w1++].m_fValue = CW(pbyTemp[1]);//可能有问题这里			 pData[w1].m_wDevNo = wDevNo;             pData[w1].m_wDevPtNo = w2+1;         //    pData[w1++].m_fValue = CW(pbyTemp[2]);//可能有问题这里		     break;          case 0x07:                      w2=3;			  pData[w1].m_wDevNo = wDevNo;			  pData[w1].m_wDevPtNo = w2;		//	  pData[w1++].m_fValue = CW(pbyTemp[1]);//可能有问题这里			  break;			default:			break;		  }		}		else if (pbyTemp[0] ==0x80)// || (pbyTemp[0] == 0x81)) //SOE		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x81))			{															www++;				pbyTemp+=6;			}		}		else if (pbyTemp[0] ==0x84)// || (pbyTemp[0] == 0x85)) //Time Ret		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x85))			{											www++;				pbyTemp+=6;			}		}		else if ((pbyTemp[0] >=0x86) && (pbyTemp[0] <=0x89)) //ZJ YC		{				}		else if (pbyTemp[0] == 0x8a) //f 频率		{				}		else if ((pbyTemp[0] >=0x8d) && (pbyTemp[0] <=0x92)) //Water 水位		{				}		else if ((pbyTemp[0] >=0xa0) && (pbyTemp[0] <=0xdf)) //DD		{				}		else if (pbyTemp[0] >=0xe1) //YK ret         //有疑问		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] >=0xe5) //YT ret		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] == 0xec) //子站状态		{				}		else if ((pbyTemp[0] >=0xf0) && (pbyTemp[0] <=0xff)) //YX		{				}		else //按YC处理		{		}	}  }	  //  m_pAllMgr->YC(pData,w1);	delete [] pData;	}/*********funtion:ExpYXData(BYTE byAddr,BYTE* pbyData,WORD wSize);**** add by lisheng******/void CCDTMAS::ExpYXData(BYTE byAddr,BYTE* pbyData,WORD wSize){	 WORD wDevNo	= m_subdevmgr.GetDevNoFrmAddr(byAddr);     BYTE byType	= m_subdevmgr.GetTypeFrmAddr(byAddr);     WORD w1=0;     WORD w2=0;	YXData*	pYXData	= new YXData [32];//8+6  if(byType==dt_ePSME10)  {	  BYTE*	pbyTemp = pbyData;	for (WORD www=0; www<wSize/6; www++,pbyTemp+=6)	{		if (pbyTemp[0] <=0x7f) //YC		{				}		else if (pbyTemp[0] ==0x80)// || (pbyTemp[0] == 0x81)) //SOE		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x81))			{															www++;				pbyTemp+=6;			}		}		else if (pbyTemp[0] ==0x84)// || (pbyTemp[0] == 0x85)) //Time Ret		{			if (((www+1) < (wSize/6)) && (pbyTemp[6] == 0x85))			{											www++;				pbyTemp+=6;			}		}		else if ((pbyTemp[0] >=0x86) && (pbyTemp[0] <=0x89)) //ZJ YC		{				}		else if (pbyTemp[0] == 0x8a) //f 频率		{				}		else if ((pbyTemp[0] >=0x8d) && (pbyTemp[0] <=0x92)) //Water 水位		{				}		else if ((pbyTemp[0] >=0xa0) && (pbyTemp[0] <=0xdf)) //DD		{				}		else if (pbyTemp[0] >=0xe1) //YK ret         //有疑问		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] >=0xe5) //YT ret		{			while (((www+1) < (wSize/6)) && (pbyTemp[6] == 0xe1))			{				www++;				pbyTemp+=6;			}					}		else if (pbyTemp[0] == 0xec) //子站状态		{				}		else if ((pbyTemp[0] >=0xf0) && (pbyTemp[0] <=0xff)) //YX		{			/*      	switch (pbyTemp[0])		{		       case 0xF0:			            //  WORD wStatus = CW(pbyTemp+1);				  WORD wA = 1;				for (BYTE b=0; b<16; b++,wA<<=1)				{					if((b==2)||(b>=5&&b<=14))					{					   ;					}					else					{					pYXData[w1].m_wDevNo = wDevNo;					pYXData[w1].m_wDevPtNo = w2 +1;				//	pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					w2++;					}				}              //   wStatus = CW(pbyTemp[2]);				 wA = 1;				for (BYTE b=0; b<5; b++,wA<<=1)				{										pYXData[w1].m_wDevNo = wDevNo;					pYXData[w1].m_wDevPtNo = w2;				//	pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					w2++;									}		     break;		  case 0xF1:                //  WORD wStatus = CW(pbyTemp[1]);				  WORD wA = 1;				 for (BYTE b=0; b<16; b++,wA<<=1)				 {					if(b>=2&&b<=4||b>=8&&b<=13)					 {						pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;					 //   pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;					 }									 }		     break;		case 0xF4:			   //   WORD wStatus = CW(pbyTemp[1]);				  WORD wA = 1;				 for (BYTE b=0; b<16; b++,wA<<=1)				 {					if((b>=0&&b<=3)||(b==5))					 {						pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;				//	    pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;					 }					 				 }                 break;          case 0xF7:			    //  WORD wStatus = CW(pbyTemp[1]);				  WORD wA = 1;				 for (BYTE b=0; b<16; b++,wA<<=1)				 {					if((b>=2&&b<=3)||(b>=6&&b<=7)||(b>=10&&b<=11)||(b>=14&&b<=15))					 {						pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;					//    pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;					 }					 } 				// WORD wStatus = CW(pbyTemp[2]);				  wA = 1;				 for (BYTE b=0; b<16; b++,wA<<=1)				 {					if((b>=2&&b<=3)||(b>=6&&b<=7)||(b>=10&&b<=11)||(b>=14&&b<=15))					 {						pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;					//    pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;					 }					 }                 break;         case 0xF8:			 //  WORD wStatus = CW(pbyTemp[1]);				  WORD wA = 1;				 for (BYTE b=0; b<16; b++,wA<<=1)				 {					if((b>=2&&b<=3)||(b>=6&&b<=7)||(b>=10&&b<=11)||(b>=14&&b<=15))					 {						pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;					//    pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;					 }					 }              //  WORD wStatus = CW(pbyTemp[2]);				   wA = 1;				 for (BYTE b=0; b<14; b++,wA<<=1)				  {											pYXData[w1].m_wDevNo = wDevNo;					    pYXData[w1].m_wDevPtNo = w2;					//    pYXData[w1++].m_bValue = (wStatus & wA)?0xff00:0xff;					    w2++;				   }                 break;			default:			break;        }		*/		}		else //按YC处理		{		}	}  }	 //   m_pAllMgr->YC(pData,w1);	delete [] pYXData;	}//////////////////////////////////////////////////////////////////////int CCDTMAS::Select(WORD wDevNo,BYTE byRoute,bool bIsOn,CFrameNode &FNSend){	int nRet = -1;	CSubdev* pDev = NULL;	if ((pDev = m_subdevmgr.GetDevFrmDevNo(wDevNo)) != NULL)	{		nRet = 1;		FNSend.m_byDesAddr = pDev->m_byAddr;		if (pDev->m_byTypeID == dt_eTAR200)		{			FNSend.SetSize(3);			FNSend.m_pbyData[0] = 0;			FNSend.m_pbyData[1] = 1<<((byRoute-1)*2+(bIsOn?1:0));			FNSend.m_pbyData[2] = FNSend.m_pbyData[1];			FNSend.m_byCID = 0x19;		}		else		{			FNSend.SetSize(2);			FNSend.m_pbyData[0] = 0;			FNSend.m_pbyData[1] = 0;			FNSend.m_byCID = bIsOn?0x0d:0xc;		}	}	return nRet;}int CCDTMAS::Operate(WORD wDevNo,BYTE byRoute,bool bIsOn,CFrameNode &FNSend){	int nRet = -1;	CSubdev* pDev = NULL;	if ((pDev = m_subdevmgr.GetDevFrmDevNo(wDevNo)) != NULL)	{		nRet = 1;		FNSend.m_byDesAddr = pDev->m_byAddr;		if (pDev->m_byTypeID == dt_eTAR200)		{			FNSend.SetSize(3);			FNSend.m_pbyData[0] = 0xff;			FNSend.m_pbyData[1] = 1<<((byRoute-1)*2+(bIsOn?1:0));			FNSend.m_pbyData[2] = FNSend.m_pbyData[1];			FNSend.m_byCID = 0x19;		}		else		{			FNSend.SetSize(2);			FNSend.m_pbyData[0] = 0;			FNSend.m_pbyData[1] = 0;			FNSend.m_byCID = bIsOn?0x0d:0xc;		}	}	return nRet;}/*bool CCDTMAS::GetYXAndSOE(BYTE byAddr,CFrameNode& fn){	bool bRet = false;	BYTE byType = m_subdevmgr.GetTypeFrmAddr(byAddr);	if (byType==dt_eTAR200) bRet = GetYXSOE(m_byAddr,fn);	else if ((byType==dt_eTAL200) || (byType==dt_eDRQ))		bRet = GetPYXSOE(m_byAddr,fn);	else if ((byType==dt_eBZT) || (byType==dt_eTAT211)  || (byType==dt_eTAT210))		bRet = GetBZTYX(m_byAddr,fn);	return bRet;}*/

⌨️ 快捷键说明

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