📄 pmacmas.cpp
字号:
} #ifdef _DEBUG for (WORD wwx=0;wwx<1;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 2); delete [] pYXData;}void CPMACMas::GetREF543plusYX2(BYTE byAddr){ pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x2; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; SW(56,pbyTemp); SW(1,pbyTemp); m_DLService.SetEchoLen(6+1);//(8+7)/8); if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if (FNRecv.m_byCID == 2) ExpREF542plusYX1(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize); } pthread_mutex_unlock(&m_mutex);}void CPMACMas::ExpREF543plusYX2(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [8];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<1; b++,byA<<=1) { pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+12; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; } #ifdef _DEBUG for (WORD wwx=0;wwx<1;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 1); delete [] pYXData;}void CPMACMas::GetREF543plusYX3(BYTE byAddr){ pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x2; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; SW(60,pbyTemp); SW(1,pbyTemp); m_DLService.SetEchoLen(6+1);//(8+7)/8); if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if (FNRecv.m_byCID == 2) ExpREF542plusYX1(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize); } pthread_mutex_unlock(&m_mutex);}void CPMACMas::ExpREF543plusYX3(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [8];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<2; b++,byA<<=1) { pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+13; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; } #ifdef _DEBUG for (WORD wwx=0;wwx<1;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 2); delete [] pYXData; }void CPMACMas::ExpREF542plusYC(BYTE byAddr,BYTE* pbyData,WORD wSize){}void CPMACMas::ExpREF542plusYX(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [8];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<8; b++,byA<<=1) { pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+1; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; } #ifdef _DEBUG for (WORD wwx=0;wwx<1;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 8); delete [] pYXData;}void CPMACMas::ExpREF543plusYX(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [8];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<8; b++,byA<<=1) { pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+1; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; } #ifdef _DEBUG for (WORD wwx=0;wwx<1;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 8); delete [] pYXData;}void CPMACMas::GetLDWKYYX(BYTE byAddr){ pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x4; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; SW(0,pbyTemp); SW(1,pbyTemp); m_DLService.SetEchoLen(5+2*1); if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if ((FNRecv.m_byCID == 4) && (FNRecv.m_wSize == 3)) ExpLDWKYYX(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize); } pthread_mutex_unlock(&m_mutex);}void CPMACMas::ExpLDWKYYX(BYTE byAddr,BYTE* pbyData,WORD wSize){ if (wSize >=3) { BYTE* pbyTemp = pbyData + 2; wSize -=2; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YXData* pYXData = new YXData [wSize*8];//8+6 for (WORD w =0; w<wSize; w++) { BYTE byStatus = *pbyTemp++; BYTE byA = 1; for (BYTE b=0; b<8; b++,byA<<=1) { pYXData[w*8+b].m_wDevNo = wDevNo; pYXData[w*8+b].m_wDevPtNo = w*8 + b + 1; pYXData[w*8+b].m_bValue = (byStatus & byA)?0xff00:0xff; } } m_pAllMgr->YX(pYXData, wSize*8); delete [] pYXData; }}void CPMACMas::ExpLDWKYYC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; wSize -=1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; WORD www = CW(pbyTemp) ; short* pSht = (short *)&www; pData[w1++].m_fValue = *pSht; } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::ExpDCRJData(BYTE byAddr,BYTE* pbyData,WORD wSize,WORD wIndex16){ BYTE* pbyTemp = pbyData + 1; wSize -= 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/4]; WORD w1 =0; WORD w =1 + wIndex16*8; if (wIndex16 == 3) w =wIndex16*8; for (WORD w2=1; w2<=wSize/4; w++,w2++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; if (w == 8) { YXData* pYXData = new YXData [32]; DWORD dwStatus = CDW(pbyTemp); DWORD dwA = 1; for (BYTE b=0; b<32; b++,dwA<<=1) { pYXData[b].m_wDevNo = wDevNo; pYXData[b].m_wDevPtNo = b + 1; pYXData[b].m_bValue = bool(dwStatus & dwA)?0xff00:0xff; } m_pAllMgr->YX(pYXData, 32); delete [] pYXData; } else if (w == 11) { YXData* pYXData = new YXData [11]; DWORD dwStatus = CDW(pbyTemp); DWORD dwA = 1; for (BYTE b=0; b<11; b++,dwA<<=1) { pYXData[b].m_wDevNo = wDevNo; pYXData[b].m_wDevPtNo = 32+ b + 1; pYXData[b].m_bValue = bool(dwStatus & dwA)?0xff00:0xff; } m_pAllMgr->YX(pYXData, 11); delete [] pYXData; } else if ((w==2)|| (w==3) || (w==5)|| (w==6) || (w==9) || (w==10) || ((w>=12) && (w<=14)) || ((w>=16) && (w<=21)) || (w== 27))//DWORD { pData[w1++].m_fValue = CDW(pbyTemp); } else //long { DWORD dwww = CDW(pbyTemp); long* pInt = (long *)&dwww; pData[w1++].m_fValue = *pInt; } } if (w1 > 0) m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::Exp9900Data(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1 =0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; if ((w>=1) && (w <=40))//word { pData[w1++].m_fValue = CW(pbyTemp); } else//DWORD { pData[w1++].m_fValue = CHDW(pbyTemp) ; w++; } } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::GetDCRJNext(BYTE byAddr){ for (WORD wIndex = 1; wIndex<=3; wIndex++) { pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x4; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; WORD wEcho; if (wIndex == 3) { SW(1+wIndex*16-2,pbyTemp); SW(12,pbyTemp); wEcho = 12*2 + 1; } else if (wIndex == 2) { SW(1+wIndex*16,pbyTemp); SW(10,pbyTemp); wEcho = 10*2 + 1; } else { SW(1+wIndex*16,pbyTemp); SW(16,pbyTemp); wEcho = 16*2 + 1; } m_DLService.SetEchoLen(4+wEcho); // if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if (((FNRecv.m_byCID & 0x80) == 0) && (FNRecv.m_wSize == wEcho)) { ExpDCRJData(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize,wIndex); } } pthread_mutex_unlock(&m_mutex); usleep(20000); }}void CPMACMas::GetTTC310YX(BYTE byAddr){ }void CPMACMas::ExpTTC310YX(BYTE byAddr,BYTE* pbyData,WORD wSize){ }void CPMACMas::ExpTTC310YC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; wSize -=1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; WORD www = CW(pbyTemp) ; short* pSht = (short *)&www; pData[w1++].m_fValue = *pSht; } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::Gethlk2YX(BYTE byAddr){ pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x2; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; SW(0,pbyTemp); SW(85,pbyTemp); m_DLService.SetEchoLen(6+1); if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if (FNRecv.m_byCID == 2) Exphlk2YX(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize); } pthread_mutex_unlock(&m_mutex);}void CPMACMas::Exphlk2YX(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [85];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<85; b++) { if(b!=0 && b%8 == 0) { byA=1; pbyTemp = pbyTemp + 1; byStatus = *pbyTemp; } pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+1; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; byA<<=1; } #ifdef _DEBUG for (WORD wwx=0;wwx<6;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 85); delete [] pYXData;}void CPMACMas::Exphlk2YC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; pData[w1++].m_fValue = CW(pbyTemp); } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::ExpWKY0Data(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1 =0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; pData[w1++].m_fValue = CW(pbyTemp); } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::GetGKJ0YX(BYTE byAddr){ pthread_mutex_lock(&m_mutex); CFrameNode FNSend,FNRecv; FNSend.m_byCID = 0x2; FNSend.m_byDesAddr = byAddr; FNSend.SetSize(4); BYTE* pbyTemp = FNSend.m_pbyData; SW(0,pbyTemp); SW(32,pbyTemp); m_DLService.SetEchoLen(6+1); if (m_DLService.REQ(1,&FNSend,FNRecv,0,true) == 1)//Send - Respond { if (FNRecv.m_byCID == 2) Exphlk2YX(FNRecv.m_bySrcAddr,FNRecv.m_pbyData,FNRecv.m_wSize); } pthread_mutex_unlock(&m_mutex);}void CPMACMas::ExpGKJ0YX(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); WORD w1=0; BYTE b=0; YXData* pYXData = new YXData [32];//8+6 BYTE byStatus = *pbyTemp; BYTE byA = 1; for (BYTE b=0; b<31; b++) { if(b!=0 && b%8 == 0) { byA=1; pbyTemp = pbyTemp + 1; byStatus = *pbyTemp; } pYXData[w1].m_wDevNo = wDevNo; pYXData[w1].m_wDevPtNo = b+1; pYXData[w1++].m_bValue = (byStatus & byA)?0xff00:0xff; byA<<=1; } #ifdef _DEBUG for (WORD wwx=0;wwx<6;wwx++) pYXData[wwx].m_bValue = (wwx%2)?0xff00:0xff; #endif m_pAllMgr->YX(pYXData, 85); delete [] pYXData;}void CPMACMas::ExpGKJ0YC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; pData[w1++].m_fValue = CW(pbyTemp); } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::ExpSepam20_B21YC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; pData[w1++].m_fValue = CW(pbyTemp); } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}void CPMACMas::ExpSepam40_S40YC(BYTE byAddr,BYTE* pbyData,WORD wSize){ BYTE* pbyTemp = pbyData + 1; WORD wDevNo = m_subdevmgr.GetDevNoFrmAddr(byAddr); YCData* pData = new YCData [wSize/2]; WORD w1=0; for (WORD w =1; w<=wSize/2; w++) { pData[w1].m_wDevNo = wDevNo; pData[w1].m_wDevPtNo = w; if (w >= 28 && w <= 35) { //DWord pData[w1++].m_fValue = CHDW2(pbyTemp); w++; } if (w >= 63 && w <= 70) { //DWord pData[w1++].m_fValue = CHDW2(pbyTemp); w++; } else //WORD { pData[w1++].m_fValue = CW(pbyTemp); } } #ifdef _DEBUG for (WORD w=0;w<w1;w++) pData[w].m_fValue = w*10000; #endif m_pAllMgr->YC(pData,w1); delete [] pData;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -