#include "StdAfx.h" #include ".\ups_nxl.h" CUPS_NXL::CUPS_NXL( char szPath[MAX_PATH], //.1. 程序所在路径; char szIniName[MAX_PATH], //.2. 配置文件名称; int iCommPort, //.3. 串行端口; int iAddr, //.4. 设备地址; int iRate, //.5. 波特率; int iDataBit, //.6. 数据位; int iStopBit, //.7. 停止位; int iParity, //.8. 校验位; int iInterval //.9. 时间间隔; ) { #if IS_USE_READMSG_CS InitializeCriticalSection(&m_csReadMsg); //.初始化一个临界资源; #endif MTVERIFY(m_hSemComm = CreateEvent(NULL,TRUE,TRUE,0)); //.创建一个无名事件对象; for(int i = 0; i < MAX_ADDR; i++) { memset(m_szNXL_42HMsg[i], 0, sizeof(m_szNXL_42HMsg[i])); memset(m_szNXL_43HMsg[i], 0, sizeof(m_szNXL_43HMsg[i])); memset(m_szNXL_44HMsg[i], 0, sizeof(m_szNXL_44HMsg[i])); memset(m_szNXL_E1HMsg[i], 0, sizeof(m_szNXL_E1HMsg[i])); memset(m_szNXL_E2HMsg[i], 0, sizeof(m_szNXL_E2HMsg[i])); memset(m_szNXL_E3HMsg[i], 0, sizeof(m_szNXL_E3HMsg[i])); memset(m_szNXL_ECHMsg[i], 0, sizeof(m_szNXL_ECHMsg[i])); memset(m_szNXL_EEHMsg[i], 0, sizeof(m_szNXL_EEHMsg[i])); m_devOnline[i] = TRUE; m_dwOnlineTick[i] = 0; } } BOOL CUPS_NXL::NxlOpenComm(int nCommPort, int nAddr, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval) { BOOL bResult = FALSE; bResult = OpenComm( nCommPort, nAddr, nRate, nDataBit, nStopBit, nParity, nInterval ); return bResult; } //.获取ini文件分键信息; int CUPS_NXL::GetNXL_ini_info( char szPath[MAX_PATH], //.1.服务器程序所在目录; char szIniName[MAX_PATH], //.2.配置文件名; char szCmd[MAX_CMD], //.3.命令; char szCID2[MAX_CID], //.4.CID2; char nType[MAX_CMD], //.5.数据类型; int &nIndex, //.6.索引; int &nLen //.7.截取长度; ) { CHAR szFile[MAX_PATH + 1] = ""; wsprintf(szFile, "%s\\config\\%s", szPath, szIniName); GetPrivateProfileString(szCmd, "SendCmd", "", szCID2, 10, szFile); szCID2[strlen(szCID2)] = '\0'; GetPrivateProfileString(szCmd, "type", "", nType, 10, szFile); nType[strlen(nType)] = '\0'; nIndex = GetPrivateProfileInt(szCmd, "Index", 0, szFile); nLen = GetPrivateProfileInt(szCmd, "Len", 0, szFile); return 0; } //.发送请求设备数据; int CUPS_NXL::SendReadRequest( char szPath[MAX_PATH], // 1.程序所在路径; char szIniName[MAX_PATH], // 2.配置文件名称 ; int nCommPort, // 3.串行端口; int nAddr, // 4.设备地址; char szCmd[MAX_CMD], // 5.请求命令; char szMsg[VAR_MSG], // 6.响应的值 ; int nReversed1, // 7.预留整形参数1接口; int nReversed2, // 8.预留整形参数2接口; int nReversed3, // 9.预留整形参数3接口; int nReversed4, // 10.预留整形参数4接口; int nReversed5, // 11.预留整形参数5接口; float fReversed1, // 12.预留float参数1接口; float fReversed2, // 13.预留float参数2接口; float fReversed3, // 14.预留float参数3接口; char szReversed1[MAX_RESERVED1], // 15.预留字符数组参数1接口; char szReversed2[MAX_RESERVED2], // 16.预留字符数组参数2接口; char szReversed3[MAX_RESERVED3], // 17.预留字符数组参数3接口; char szReversed4[MAX_RESERVED4], // 18.预留字符数组参数4接口; char szReversed5[MAX_RESERVED5] // 19.预留字符数组参数5接口; ) { int nIndex = 0, nLen = 0; char szCID2[MAX_CID] = {0}; char szType[TYPE_LENGTH] = {0}; GetNXL_ini_info(szPath, szIniName, szCmd, szCID2, szType, nIndex, nLen); CCommProcess *pComm = FindComm(nCommPort); if( pComm == NULL ) { return -1; } int nRet = -1; if ( ( strlen(m_szNXL_42HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 || strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 || strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 || strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 || strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0 ) ) || ( strlen(m_szNXL_43HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-15") == 0 || strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 || strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 || strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 || strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 || strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 || strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 || strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 || strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 || strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 || strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 || strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0 ) ) || ( strlen(m_szNXL_44HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 || strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 || strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 || strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 || strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 || strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 || strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 || strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 || strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 || strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 || strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 || strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 || strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 || strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 || strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 || strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 || strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 || strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 || strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 || strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 || strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 || strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 || strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 || strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 || strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 || strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 || strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 || strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 || strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 || strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 || strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 || strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 || strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 || strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0 ) ) || ( strlen(m_szNXL_E0HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-150") == 0 || strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 || strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 || strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 || strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 || strcmp(szCmd,"cmd-163") == 0 ) ) || ( strlen(m_szNXL_E1HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 || strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 || strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 || strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 || strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 || strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 || strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 || strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 || strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0 ) ) || ( strlen(m_szNXL_E2HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-189") == 0 || strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 || strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 || strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 || strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 || strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 || strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 || strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 || strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0 ) ) || ( strlen(m_szNXL_E3HMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-213") == 0 || strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 || strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 || strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 || strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 || strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 || strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 || strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0 ) ) || ( strlen(m_szNXL_ECHMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 || strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 || strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 || strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 || strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 || strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 || strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 || strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 || strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 || strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 || strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 || strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0 ) ) || ( strlen(m_szNXL_EEHMsg[nAddr -1]) == 0 && ( strcmp(szCmd,"cmd-270") == 0 || strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 || strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 || strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 || strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0 ) ) ) { nRet = GetEquipmentParamter(pComm,nAddr,szCmd,szCID2); if (nRet != 0) return nRet; } if( GetTickCount() - m_dwOnlineTick[nAddr - 1] > 60 *1000 && m_dwOnlineTick[nAddr - 1] > 0 ) { m_devOnline[nAddr - 1] = FALSE; } else if( GetTickCount() - m_dwOnlineTick[nAddr - 1] < 60 *1000 && m_dwOnlineTick[nAddr - 1] > 0 ) { m_devOnline[nAddr - 1] = TRUE; } if( m_devOnline[nAddr - 1] == FALSE ) { return -1; } nRet = Get_NXL_42_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_43_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_44_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_E0_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_E1_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_E2_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_E3_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_EC_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); nRet = Get_NXL_EE_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType); return nRet; } //.发送设置设备参数请求; int CUPS_NXL::SendSetReuest( char szPath[MAX_PATH], // 1.程序所在路径; char szIniName[MAX_PATH], // 2.配置文件名称 ; int nCommPort, // 3.串行端口; int nAddr, // 4.设备地址; char szCmd[MAX_CMD], // 5.请求命令; char szRecvMsg[VAR_MSG], // 6.响应的值; int nReversed1, // 7.预留整形参数1接口; int nReversed2, // 8.预留整形参数2接口; int nReversed3, // 9.预留整形参数3接口; int nReversed4, // 10.预留整形参数4接口; int nReversed5, // 11.预留整形参数5接口; float fReversed1, // 12.预留float参数1接口; float fReversed2, // 13.预留float参数2接口; float fReversed3, // 14.预留float参数3接口; char szReversed1[MAX_RESERVED1], // 15.预留字符数组参数1接口; char szReversed2[MAX_RESERVED2], // 16.预留字符数组参数2接口; char szReversed3[MAX_RESERVED3], // 17.预留字符数组参数3接口; char szReversed4[MAX_RESERVED4], // 18.预留字符数组参数4接口; char szReversed5[MAX_RESERVED5] // 19.预留字符数组参数5接口; ) { return 0; } //.0.获取设备传进的请求信息; int CUPS_NXL::GetEquipmentParamter( CCommProcess *pCom, int iAddr, char szCmd[MAX_CMD], char szCID2[MAX_CID] ) { int nRet = -1; nRet = Request_ReadStatus(pCom,iAddr,szCmd,szCID2); if (0 != nRet) return nRet; nRet = Response_ReadStatus(pCom,iAddr,szCmd); return nRet; } //.1.向设备发送请求命令; int CUPS_NXL::Request_ReadStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD],char szCID2[MAX_CID]) { int nRet = -1; int iLen = sizeof(__request_read); char checkSum[4] = {0}; __request_read RequestParam; memset(&RequestParam,0,iLen); RequestParam.heads.Soi = 0x7e; RequestParam.heads.Ver[0] = 0x32; RequestParam.heads.Ver[1] = 0x31; RequestParam.heads.Adr[0] = ByteToAscii((iAddr>>4) & 0x0f); RequestParam.heads.Adr[1] = ByteToAscii(iAddr & 0x0f); RequestParam.heads.Cid1[0] = 0x32; RequestParam.heads.Cid1[1] = 0x41; memcpy(RequestParam.Cid2,szCID2,2); RequestParam.Length[0] = 0x30; RequestParam.Length[1] = 0x30; RequestParam.Length[2] = 0x30; RequestParam.Length[3] = 0x30; //校验码; BYTE *pDataBuf = new BYTE[ iLen - sizeof(RequestParam.endof.ChkSum) - 1 ]; memset(pDataBuf, 0, iLen - sizeof(RequestParam.endof.ChkSum) - 1 ); memcpy(pDataBuf, &RequestParam, iLen - sizeof(RequestParam.endof.ChkSum) - 1 ); NxlGetCheckSum((char *)pDataBuf + 1, RequestParam.endof.ChkSum, iLen - sizeof(RequestParam.endof.ChkSum) - 2 ); delete[] pDataBuf; pDataBuf = NULL; #if 0 RequestParam.endof.ChkSum[0] = ; RequestParam.endof.ChkSum[1] = ; RequestParam.endof.ChkSum[2] = ; RequestParam.endof.ChkSum[3] = ; #endif RequestParam.endof.Eoi = 0x0d; if( WaitForSingleObject( m_hSemComm, 0 ) == WAIT_OBJECT_0 ) { int nDataLen = (int)sizeof(RequestParam); ResetEvent( m_hSemComm ); int nResult = pCom->Write((BYTE *)&RequestParam, nDataLen); if( nResult == nDataLen ) { nRet = 0; } else { SetEvent( m_hSemComm ); return EER_CODE_COM_WRITE_DATA; } } else { return ERR_CODE_COM_BUSY; } return 0; } //.2.接收请求设备响应数据; int CUPS_NXL::Response_ReadStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD]) { int iRecvLen = 0; int iSendLen = sizeof(__respones_read); __respones_read ResponseParam; memset(&ResponseParam,0,iSendLen); char *pBuffer = new char[iSendLen]; iRecvLen = pCom->Read((BYTE *)pBuffer,iSendLen); if ( iRecvLen <= 0) { SetEvent(m_hSemComm); if (NULL != pBuffer) { delete pBuffer; pBuffer = NULL; } return ERR_CODE_COM_READ_NO_DATA; } if ( !LengthCheck(pBuffer)) { SetEvent(m_hSemComm); if ( NULL != pBuffer) { delete pBuffer; pBuffer = NULL; } return RTN_LCHKSUM_EEROR; } if ( !Check_RecvMsgCheckSum(pBuffer,iRecvLen) ) { SetEvent(m_hSemComm); if ( NULL != pBuffer) { delete pBuffer; pBuffer = NULL; } return RTN_CHKSUM_ERROR; } if ( 0 != RtnCheck(pBuffer) ) { SetEvent(m_hSemComm); if ( NULL != pBuffer) { delete pBuffer; pBuffer = NULL; } return RTN_CHKSUM_ERROR; } Set_NXL_42_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_43_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_44_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_E0_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_E1_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_E2_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_E3_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_EC_VarMsg(iAddr,szCmd,pBuffer); Set_NXL_EE_VarMsg(iAddr,szCmd,pBuffer); m_dwOnlineTick[iAddr - 1] = GetTickCount(); if ( NULL != pBuffer) { delete pBuffer; pBuffer = NULL; } SetEvent(m_hSemComm); return 0; } int SetEquipmentParamter( CCommProcess *pCom, int iAddr, char szCmd[MAX_CMD], char szCID2[MAX_CID], char szRecvMsg[RECE_MSG_LENGTH] ) //.0.获取设备传进的设置信息; { return 0; } int CUPS_NXL::Request_WirteStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD]) //.1.向设备发送设置命令; { return 0; } int CUPS_NXL::Respones_WirteStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD]) //.2.接收设置设备的响应数据; { return 0; } int CUPS_NXL::Get_NXL_42_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 || strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 || strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 || strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 || strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_42HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_43_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-15") == 0 || strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 || strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 || strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 || strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 || strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 || strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 || strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 || strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 || strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 || strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 || strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_43HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_44_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 || strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 || strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 || strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 || strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 || strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 || strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 || strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 || strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 || strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 || strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 || strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 || strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 || strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 || strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 || strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 || strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 || strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 || strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 || strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 || strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 || strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 || strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 || strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 || strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 || strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 || strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 || strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 || strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 || strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 || strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 || strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 || strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 || strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_44HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_E0_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-150") == 0 || strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 || strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 || strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 || strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 || strcmp(szCmd,"cmd-163") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_E0HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_E1_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 || strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 || strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 || strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 || strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 || strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 || strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 || strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 || strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_E1HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_E2_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-189") == 0 || strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 || strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 || strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 || strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 || strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 || strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 || strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 || strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_E2HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_E3_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-213") == 0 || strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 || strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 || strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 || strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 || strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 || strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 || strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_E3HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_EC_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if ( strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 || strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 || strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 || strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 || strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 || strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 || strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 || strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 || strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 || strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 || strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 || strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_ECHMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Get_NXL_EE_VarMsg(int iAddr,char szCmd[MAX_CMD],char szRecvMsg[RECE_MSG_LENGTH],int &iIndex,int &iLen,char szTy[TYPE_LENGTH]) { int iRet = 0; if (strcmp(szCmd,"cmd-270") == 0 || strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 || strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 || strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 || strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif DataConversion(szTy, m_szNXL_EEHMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_42_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 || strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 || strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 || strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 || strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_42HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_42HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_43_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-15") == 0 || strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 || strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 || strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 || strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 || strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 || strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 || strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 || strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 || strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 || strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 || strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_43HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_43HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_44_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 || strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 || strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 || strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 || strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 || strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 || strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 || strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 || strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 || strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 || strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 || strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 || strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 || strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 || strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 || strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 || strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 || strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 || strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 || strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 || strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 || strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 || strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 || strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 || strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 || strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 || strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 || strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 || strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 || strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 || strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 || strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 || strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 || strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_44HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_44HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_E0_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if ( strcmp(szCmd,"cmd-150") == 0 || strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 || strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 || strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 || strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 || strcmp(szCmd,"cmd-163") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_E0HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E0HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_E1_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if ( strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 || strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 || strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 || strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 || strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 || strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 || strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 || strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 || strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_E1HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E1HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_E2_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-189") == 0 || strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 || strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 || strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 || strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 || strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 || strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 || strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 || strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_E2HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E2HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_E3_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-213") == 0 || strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 || strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 || strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 || strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 || strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 || strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 || strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_E3HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E3HMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_EC_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 || strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 || strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 || strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 || strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 || strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 || strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 || strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 || strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 || strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 || strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 || strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_ECHMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_ECHMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::Set_NXL_EE_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg) { int iRet = 0; if (strcmp(szCmd,"cmd-270") == 0 || strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 || strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 || strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 || strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0 ) { #if IS_USE_READMSG_CS EnterCriticalSection(&m_csReadMsg); #endif memcpy(m_szNXL_EEHMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_EEHMsg[iAddr -1])); #if IS_USE_READMSG_CS LeaveCriticalSection(&m_csReadMsg); #endif iRet = 0; } return iRet; } int CUPS_NXL::RtnCheck(char szRecvMsg[RECE_MSG_LENGTH]) { char ch[2] = {0}; ch[0] = szRecvMsg[7]; ch[1] = szRecvMsg[8]; if (atoi(ch) == 0) { return RTN_NORMAL; } else if (atoi(ch) ==1) { return RTN_VER_ERRROR; } else if (atoi(ch) ==2) { return RTN_CHKSUM_ERROR; } else if (atoi(ch) ==3) { return RTN_LCHKSUM_EEROR; } else if (atoi(ch) ==4) { return RTN_CID2_INVALID; } else if (atoi(ch) ==5) { return RTN_COMMAND_FORMAT_EEROR; } else if (atoi(ch) ==6) { return RTN_INVALID_DATA; } else if (atoi(ch) ==10) { return RTN_INVALID_LIMIT; } return -1; } int CUPS_NXL::NxlGetCheckSum(char *SendMsg,BYTE *szRecvCheck,int iMsgLen) { WORD iSum = 0;; for(int i=0; i < iMsgLen; i++) { iSum += SendMsg[i]; } WORD iCompliment = iSum; iCompliment = ~iCompliment; iCompliment++; itoa(iCompliment,(char *)szRecvCheck, 16); szRecvCheck[0] = lowercase2uppercase(szRecvCheck[0]); szRecvCheck[1] = lowercase2uppercase(szRecvCheck[1]); szRecvCheck[2] = lowercase2uppercase(szRecvCheck[2]); szRecvCheck[3] = lowercase2uppercase(szRecvCheck[3]); return atoi((char *)szRecvCheck); } BOOL CUPS_NXL::Check_RecvMsgCheckSum(char *RecvMsg,int iMsgLen) { char szConvMsg[5]; /*转换后的消息*/ char ChkSum[5]; int j = 0; memset(szConvMsg, 0, 5); memset(ChkSum, 0, 5); for (int i=(iMsgLen-5); i<(iMsgLen-1); i++) { ChkSum[j] = RecvMsg[i]; j++; } GetChkSum(RecvMsg, szConvMsg, iMsgLen); ByteToUpper(szConvMsg); ByteToUpper(ChkSum); if (memcmp(szConvMsg, ChkSum, 4) == 0) { return TRUE; } return FALSE; } BOOL CUPS_NXL::LengthCheck(char szRecvMsg[RECE_MSG_LENGTH]) { WORD len ,index , lenID; len = 4; index = 9; char ch[4]; for (int i=0;i < len;i++) { ch[i] = szRecvMsg[index+i]; } lenID = AsciiToBYTE(ch[1]) + AsciiToBYTE(ch[2]) + AsciiToBYTE(ch[3]); lenID = lenID%16; lenID = ~lenID + 1; lenID = lenID & 15; if (AsciiToBYTE(ch[0]) == lenID) { return TRUE; } return FALSE; }