📄 cdtmas.cpp
字号:
{ 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 + -