UPS_NXL.cpp 45 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109
  1. #include "StdAfx.h"
  2. #include ".\ups_nxl.h"
  3. CUPS_NXL::CUPS_NXL(
  4. char szPath[MAX_PATH], //.1. 程序所在路径;
  5. char szIniName[MAX_PATH], //.2. 配置文件名称;
  6. int iCommPort, //.3. 串行端口;
  7. int iAddr, //.4. 设备地址;
  8. int iRate, //.5. 波特率;
  9. int iDataBit, //.6. 数据位;
  10. int iStopBit, //.7. 停止位;
  11. int iParity, //.8. 校验位;
  12. int iInterval //.9. 时间间隔;
  13. )
  14. {
  15. #if IS_USE_READMSG_CS
  16. InitializeCriticalSection(&m_csReadMsg); //.初始化一个临界资源;
  17. #endif
  18. MTVERIFY(m_hSemComm = CreateEvent(NULL,TRUE,TRUE,0)); //.创建一个无名事件对象;
  19. for(int i = 0; i < MAX_ADDR; i++)
  20. {
  21. memset(m_szNXL_42HMsg[i], 0, sizeof(m_szNXL_42HMsg[i]));
  22. memset(m_szNXL_43HMsg[i], 0, sizeof(m_szNXL_43HMsg[i]));
  23. memset(m_szNXL_44HMsg[i], 0, sizeof(m_szNXL_44HMsg[i]));
  24. memset(m_szNXL_E1HMsg[i], 0, sizeof(m_szNXL_E1HMsg[i]));
  25. memset(m_szNXL_E2HMsg[i], 0, sizeof(m_szNXL_E2HMsg[i]));
  26. memset(m_szNXL_E3HMsg[i], 0, sizeof(m_szNXL_E3HMsg[i]));
  27. memset(m_szNXL_ECHMsg[i], 0, sizeof(m_szNXL_ECHMsg[i]));
  28. memset(m_szNXL_EEHMsg[i], 0, sizeof(m_szNXL_EEHMsg[i]));
  29. m_devOnline[i] = TRUE;
  30. m_dwOnlineTick[i] = 0;
  31. }
  32. }
  33. BOOL CUPS_NXL::NxlOpenComm(int nCommPort, int nAddr, int nRate, int nDataBit, int nStopBit, int nParity, int nInterval)
  34. {
  35. BOOL bResult = FALSE;
  36. bResult = OpenComm( nCommPort, nAddr, nRate, nDataBit, nStopBit, nParity, nInterval );
  37. return bResult;
  38. }
  39. //.获取ini文件分键信息;
  40. int CUPS_NXL::GetNXL_ini_info(
  41. char szPath[MAX_PATH], //.1.服务器程序所在目录;
  42. char szIniName[MAX_PATH], //.2.配置文件名;
  43. char szCmd[MAX_CMD], //.3.命令;
  44. char szCID2[MAX_CID], //.4.CID2;
  45. char nType[MAX_CMD], //.5.数据类型;
  46. int &nIndex, //.6.索引;
  47. int &nLen //.7.截取长度;
  48. )
  49. {
  50. CHAR szFile[MAX_PATH + 1] = "";
  51. wsprintf(szFile, "%s\\config\\%s", szPath, szIniName);
  52. GetPrivateProfileString(szCmd, "SendCmd", "", szCID2, 10, szFile);
  53. szCID2[strlen(szCID2)] = '\0';
  54. GetPrivateProfileString(szCmd, "type", "", nType, 10, szFile);
  55. nType[strlen(nType)] = '\0';
  56. nIndex = GetPrivateProfileInt(szCmd, "Index", 0, szFile);
  57. nLen = GetPrivateProfileInt(szCmd, "Len", 0, szFile);
  58. return 0;
  59. }
  60. //.发送请求设备数据;
  61. int CUPS_NXL::SendReadRequest(
  62. char szPath[MAX_PATH], // 1.程序所在路径;
  63. char szIniName[MAX_PATH], // 2.配置文件名称 ;
  64. int nCommPort, // 3.串行端口;
  65. int nAddr, // 4.设备地址;
  66. char szCmd[MAX_CMD], // 5.请求命令;
  67. char szMsg[VAR_MSG], // 6.响应的值 ;
  68. int nReversed1, // 7.预留整形参数1接口;
  69. int nReversed2, // 8.预留整形参数2接口;
  70. int nReversed3, // 9.预留整形参数3接口;
  71. int nReversed4, // 10.预留整形参数4接口;
  72. int nReversed5, // 11.预留整形参数5接口;
  73. float fReversed1, // 12.预留float参数1接口;
  74. float fReversed2, // 13.预留float参数2接口;
  75. float fReversed3, // 14.预留float参数3接口;
  76. char szReversed1[MAX_RESERVED1], // 15.预留字符数组参数1接口;
  77. char szReversed2[MAX_RESERVED2], // 16.预留字符数组参数2接口;
  78. char szReversed3[MAX_RESERVED3], // 17.预留字符数组参数3接口;
  79. char szReversed4[MAX_RESERVED4], // 18.预留字符数组参数4接口;
  80. char szReversed5[MAX_RESERVED5] // 19.预留字符数组参数5接口;
  81. )
  82. {
  83. int nIndex = 0, nLen = 0;
  84. char szCID2[MAX_CID] = {0};
  85. char szType[TYPE_LENGTH] = {0};
  86. GetNXL_ini_info(szPath, szIniName, szCmd, szCID2, szType, nIndex, nLen);
  87. CCommProcess *pComm = FindComm(nCommPort);
  88. if( pComm == NULL )
  89. {
  90. return -1;
  91. }
  92. int nRet = -1;
  93. if (
  94. (
  95. strlen(m_szNXL_42HMsg[nAddr -1]) == 0 &&
  96. (
  97. strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 ||
  98. strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 ||
  99. strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 ||
  100. strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 ||
  101. strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0
  102. )
  103. )
  104. ||
  105. (
  106. strlen(m_szNXL_43HMsg[nAddr -1]) == 0 &&
  107. (
  108. strcmp(szCmd,"cmd-15") == 0 ||
  109. strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 ||
  110. strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 ||
  111. strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 ||
  112. strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 ||
  113. strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 ||
  114. strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 ||
  115. strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 ||
  116. strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 ||
  117. strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 ||
  118. strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 ||
  119. strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0
  120. )
  121. )
  122. ||
  123. (
  124. strlen(m_szNXL_44HMsg[nAddr -1]) == 0 &&
  125. (
  126. strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 ||
  127. strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 ||
  128. strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 ||
  129. strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 ||
  130. strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 ||
  131. strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 ||
  132. strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 ||
  133. strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 ||
  134. strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 ||
  135. strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 ||
  136. strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 ||
  137. strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 ||
  138. strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 ||
  139. strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 ||
  140. strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 ||
  141. strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 ||
  142. strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 ||
  143. strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 ||
  144. strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 ||
  145. strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 ||
  146. strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 ||
  147. strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 ||
  148. strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 ||
  149. strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 ||
  150. strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 ||
  151. strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 ||
  152. strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 ||
  153. strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 ||
  154. strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 ||
  155. strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 ||
  156. strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 ||
  157. strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 ||
  158. strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 ||
  159. strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0
  160. )
  161. )
  162. ||
  163. (
  164. strlen(m_szNXL_E0HMsg[nAddr -1]) == 0 &&
  165. (
  166. strcmp(szCmd,"cmd-150") == 0 ||
  167. strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 ||
  168. strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 ||
  169. strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 ||
  170. strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 ||
  171. strcmp(szCmd,"cmd-163") == 0
  172. )
  173. )
  174. ||
  175. (
  176. strlen(m_szNXL_E1HMsg[nAddr -1]) == 0 &&
  177. (
  178. strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 ||
  179. strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 ||
  180. strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 ||
  181. strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 ||
  182. strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 ||
  183. strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 ||
  184. strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 ||
  185. strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 ||
  186. strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0
  187. )
  188. )
  189. ||
  190. (
  191. strlen(m_szNXL_E2HMsg[nAddr -1]) == 0 &&
  192. (
  193. strcmp(szCmd,"cmd-189") == 0 ||
  194. strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 ||
  195. strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 ||
  196. strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 ||
  197. strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 ||
  198. strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 ||
  199. strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 ||
  200. strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 ||
  201. strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0
  202. )
  203. )
  204. ||
  205. (
  206. strlen(m_szNXL_E3HMsg[nAddr -1]) == 0 &&
  207. (
  208. strcmp(szCmd,"cmd-213") == 0 ||
  209. strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 ||
  210. strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 ||
  211. strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 ||
  212. strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 ||
  213. strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 ||
  214. strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 ||
  215. strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0
  216. )
  217. )
  218. ||
  219. (
  220. strlen(m_szNXL_ECHMsg[nAddr -1]) == 0 &&
  221. (
  222. strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 ||
  223. strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 ||
  224. strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 ||
  225. strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 ||
  226. strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 ||
  227. strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 ||
  228. strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 ||
  229. strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 ||
  230. strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 ||
  231. strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 ||
  232. strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 ||
  233. strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0
  234. )
  235. )
  236. ||
  237. (
  238. strlen(m_szNXL_EEHMsg[nAddr -1]) == 0 &&
  239. (
  240. strcmp(szCmd,"cmd-270") == 0 ||
  241. strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 ||
  242. strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 ||
  243. strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 ||
  244. strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0
  245. )
  246. )
  247. )
  248. {
  249. nRet = GetEquipmentParamter(pComm,nAddr,szCmd,szCID2);
  250. if (nRet != 0)
  251. return nRet;
  252. }
  253. if( GetTickCount() - m_dwOnlineTick[nAddr - 1] > 60 *1000 && m_dwOnlineTick[nAddr - 1] > 0 )
  254. {
  255. m_devOnline[nAddr - 1] = FALSE;
  256. }
  257. else if( GetTickCount() - m_dwOnlineTick[nAddr - 1] < 60 *1000 && m_dwOnlineTick[nAddr - 1] > 0 )
  258. {
  259. m_devOnline[nAddr - 1] = TRUE;
  260. }
  261. if( m_devOnline[nAddr - 1] == FALSE )
  262. {
  263. return -1;
  264. }
  265. nRet = Get_NXL_42_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  266. nRet = Get_NXL_43_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  267. nRet = Get_NXL_44_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  268. nRet = Get_NXL_E0_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  269. nRet = Get_NXL_E1_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  270. nRet = Get_NXL_E2_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  271. nRet = Get_NXL_E3_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  272. nRet = Get_NXL_EC_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  273. nRet = Get_NXL_EE_VarMsg(nAddr,szCmd,szMsg,nIndex,nLen,szType);
  274. return nRet;
  275. }
  276. //.发送设置设备参数请求;
  277. int CUPS_NXL::SendSetReuest(
  278. char szPath[MAX_PATH], // 1.程序所在路径;
  279. char szIniName[MAX_PATH], // 2.配置文件名称 ;
  280. int nCommPort, // 3.串行端口;
  281. int nAddr, // 4.设备地址;
  282. char szCmd[MAX_CMD], // 5.请求命令;
  283. char szRecvMsg[VAR_MSG], // 6.响应的值;
  284. int nReversed1, // 7.预留整形参数1接口;
  285. int nReversed2, // 8.预留整形参数2接口;
  286. int nReversed3, // 9.预留整形参数3接口;
  287. int nReversed4, // 10.预留整形参数4接口;
  288. int nReversed5, // 11.预留整形参数5接口;
  289. float fReversed1, // 12.预留float参数1接口;
  290. float fReversed2, // 13.预留float参数2接口;
  291. float fReversed3, // 14.预留float参数3接口;
  292. char szReversed1[MAX_RESERVED1], // 15.预留字符数组参数1接口;
  293. char szReversed2[MAX_RESERVED2], // 16.预留字符数组参数2接口;
  294. char szReversed3[MAX_RESERVED3], // 17.预留字符数组参数3接口;
  295. char szReversed4[MAX_RESERVED4], // 18.预留字符数组参数4接口;
  296. char szReversed5[MAX_RESERVED5] // 19.预留字符数组参数5接口;
  297. )
  298. {
  299. return 0;
  300. }
  301. //.0.获取设备传进的请求信息;
  302. int CUPS_NXL::GetEquipmentParamter(
  303. CCommProcess *pCom,
  304. int iAddr,
  305. char szCmd[MAX_CMD],
  306. char szCID2[MAX_CID]
  307. )
  308. {
  309. int nRet = -1;
  310. nRet = Request_ReadStatus(pCom,iAddr,szCmd,szCID2);
  311. if (0 != nRet) return nRet;
  312. nRet = Response_ReadStatus(pCom,iAddr,szCmd);
  313. return nRet;
  314. }
  315. //.1.向设备发送请求命令;
  316. int CUPS_NXL::Request_ReadStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD],char szCID2[MAX_CID])
  317. {
  318. int nRet = -1;
  319. int iLen = sizeof(__request_read);
  320. char checkSum[4] = {0};
  321. __request_read RequestParam;
  322. memset(&RequestParam,0,iLen);
  323. RequestParam.heads.Soi = 0x7e;
  324. RequestParam.heads.Ver[0] = 0x32;
  325. RequestParam.heads.Ver[1] = 0x31;
  326. RequestParam.heads.Adr[0] = ByteToAscii((iAddr>>4) & 0x0f);
  327. RequestParam.heads.Adr[1] = ByteToAscii(iAddr & 0x0f);
  328. RequestParam.heads.Cid1[0] = 0x32;
  329. RequestParam.heads.Cid1[1] = 0x41;
  330. memcpy(RequestParam.Cid2,szCID2,2);
  331. RequestParam.Length[0] = 0x30;
  332. RequestParam.Length[1] = 0x30;
  333. RequestParam.Length[2] = 0x30;
  334. RequestParam.Length[3] = 0x30;
  335. //校验码;
  336. BYTE *pDataBuf = new BYTE[ iLen - sizeof(RequestParam.endof.ChkSum) - 1 ];
  337. memset(pDataBuf, 0, iLen - sizeof(RequestParam.endof.ChkSum) - 1 );
  338. memcpy(pDataBuf, &RequestParam, iLen - sizeof(RequestParam.endof.ChkSum) - 1 );
  339. NxlGetCheckSum((char *)pDataBuf + 1, RequestParam.endof.ChkSum, iLen - sizeof(RequestParam.endof.ChkSum) - 2 );
  340. delete[] pDataBuf;
  341. pDataBuf = NULL;
  342. #if 0
  343. RequestParam.endof.ChkSum[0] = ;
  344. RequestParam.endof.ChkSum[1] = ;
  345. RequestParam.endof.ChkSum[2] = ;
  346. RequestParam.endof.ChkSum[3] = ;
  347. #endif
  348. RequestParam.endof.Eoi = 0x0d;
  349. if( WaitForSingleObject( m_hSemComm, 0 ) == WAIT_OBJECT_0 )
  350. {
  351. int nDataLen = (int)sizeof(RequestParam);
  352. ResetEvent( m_hSemComm );
  353. int nResult = pCom->Write((BYTE *)&RequestParam, nDataLen);
  354. if( nResult == nDataLen )
  355. {
  356. nRet = 0;
  357. }
  358. else
  359. {
  360. SetEvent( m_hSemComm );
  361. return EER_CODE_COM_WRITE_DATA;
  362. }
  363. }
  364. else
  365. {
  366. return ERR_CODE_COM_BUSY;
  367. }
  368. return 0;
  369. }
  370. //.2.接收请求设备响应数据;
  371. int CUPS_NXL::Response_ReadStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD])
  372. {
  373. int iRecvLen = 0;
  374. int iSendLen = sizeof(__respones_read);
  375. __respones_read ResponseParam;
  376. memset(&ResponseParam,0,iSendLen);
  377. char *pBuffer = new char[iSendLen];
  378. iRecvLen = pCom->Read((BYTE *)pBuffer,iSendLen);
  379. if ( iRecvLen <= 0)
  380. {
  381. SetEvent(m_hSemComm);
  382. if (NULL != pBuffer)
  383. {
  384. delete pBuffer;
  385. pBuffer = NULL;
  386. }
  387. return ERR_CODE_COM_READ_NO_DATA;
  388. }
  389. if ( !LengthCheck(pBuffer))
  390. {
  391. SetEvent(m_hSemComm);
  392. if ( NULL != pBuffer)
  393. {
  394. delete pBuffer;
  395. pBuffer = NULL;
  396. }
  397. return RTN_LCHKSUM_EEROR;
  398. }
  399. if ( !Check_RecvMsgCheckSum(pBuffer,iRecvLen) )
  400. {
  401. SetEvent(m_hSemComm);
  402. if ( NULL != pBuffer)
  403. {
  404. delete pBuffer;
  405. pBuffer = NULL;
  406. }
  407. return RTN_CHKSUM_ERROR;
  408. }
  409. if ( 0 != RtnCheck(pBuffer) )
  410. {
  411. SetEvent(m_hSemComm);
  412. if ( NULL != pBuffer)
  413. {
  414. delete pBuffer;
  415. pBuffer = NULL;
  416. }
  417. return RTN_CHKSUM_ERROR;
  418. }
  419. Set_NXL_42_VarMsg(iAddr,szCmd,pBuffer);
  420. Set_NXL_43_VarMsg(iAddr,szCmd,pBuffer);
  421. Set_NXL_44_VarMsg(iAddr,szCmd,pBuffer);
  422. Set_NXL_E0_VarMsg(iAddr,szCmd,pBuffer);
  423. Set_NXL_E1_VarMsg(iAddr,szCmd,pBuffer);
  424. Set_NXL_E2_VarMsg(iAddr,szCmd,pBuffer);
  425. Set_NXL_E3_VarMsg(iAddr,szCmd,pBuffer);
  426. Set_NXL_EC_VarMsg(iAddr,szCmd,pBuffer);
  427. Set_NXL_EE_VarMsg(iAddr,szCmd,pBuffer);
  428. m_dwOnlineTick[iAddr - 1] = GetTickCount();
  429. if ( NULL != pBuffer)
  430. {
  431. delete pBuffer;
  432. pBuffer = NULL;
  433. }
  434. SetEvent(m_hSemComm);
  435. return 0;
  436. }
  437. int SetEquipmentParamter(
  438. CCommProcess *pCom,
  439. int iAddr,
  440. char szCmd[MAX_CMD],
  441. char szCID2[MAX_CID],
  442. char szRecvMsg[RECE_MSG_LENGTH]
  443. ) //.0.获取设备传进的设置信息;
  444. {
  445. return 0;
  446. }
  447. int CUPS_NXL::Request_WirteStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD]) //.1.向设备发送设置命令;
  448. {
  449. return 0;
  450. }
  451. int CUPS_NXL::Respones_WirteStatus(CCommProcess *pCom,int iAddr,char szCmd[MAX_CMD]) //.2.接收设置设备的响应数据;
  452. {
  453. return 0;
  454. }
  455. 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])
  456. {
  457. int iRet = 0;
  458. if (strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 ||
  459. strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 ||
  460. strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 ||
  461. strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 ||
  462. strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0 )
  463. {
  464. #if IS_USE_READMSG_CS
  465. EnterCriticalSection(&m_csReadMsg);
  466. #endif
  467. DataConversion(szTy, m_szNXL_42HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  468. #if IS_USE_READMSG_CS
  469. LeaveCriticalSection(&m_csReadMsg);
  470. #endif
  471. iRet = 0;
  472. }
  473. return iRet;
  474. }
  475. 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])
  476. {
  477. int iRet = 0;
  478. if (strcmp(szCmd,"cmd-15") == 0 ||
  479. strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 ||
  480. strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 ||
  481. strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 ||
  482. strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 ||
  483. strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 ||
  484. strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 ||
  485. strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 ||
  486. strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 ||
  487. strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 ||
  488. strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 ||
  489. strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0 )
  490. {
  491. #if IS_USE_READMSG_CS
  492. EnterCriticalSection(&m_csReadMsg);
  493. #endif
  494. DataConversion(szTy, m_szNXL_43HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  495. #if IS_USE_READMSG_CS
  496. LeaveCriticalSection(&m_csReadMsg);
  497. #endif
  498. iRet = 0;
  499. }
  500. return iRet;
  501. }
  502. 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])
  503. {
  504. int iRet = 0;
  505. if (strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 ||
  506. strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 ||
  507. strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 ||
  508. strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 ||
  509. strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 ||
  510. strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 ||
  511. strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 ||
  512. strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 ||
  513. strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 ||
  514. strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 ||
  515. strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 ||
  516. strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 ||
  517. strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 ||
  518. strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 ||
  519. strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 ||
  520. strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 ||
  521. strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 ||
  522. strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 ||
  523. strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 ||
  524. strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 ||
  525. strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 ||
  526. strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 ||
  527. strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 ||
  528. strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 ||
  529. strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 ||
  530. strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 ||
  531. strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 ||
  532. strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 ||
  533. strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 ||
  534. strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 ||
  535. strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 ||
  536. strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 ||
  537. strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 ||
  538. strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0 )
  539. {
  540. #if IS_USE_READMSG_CS
  541. EnterCriticalSection(&m_csReadMsg);
  542. #endif
  543. DataConversion(szTy, m_szNXL_44HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  544. #if IS_USE_READMSG_CS
  545. LeaveCriticalSection(&m_csReadMsg);
  546. #endif
  547. iRet = 0;
  548. }
  549. return iRet;
  550. }
  551. 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])
  552. {
  553. int iRet = 0;
  554. if (strcmp(szCmd,"cmd-150") == 0 ||
  555. strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 ||
  556. strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 ||
  557. strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 ||
  558. strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 ||
  559. strcmp(szCmd,"cmd-163") == 0 )
  560. {
  561. #if IS_USE_READMSG_CS
  562. EnterCriticalSection(&m_csReadMsg);
  563. #endif
  564. DataConversion(szTy, m_szNXL_E0HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  565. #if IS_USE_READMSG_CS
  566. LeaveCriticalSection(&m_csReadMsg);
  567. #endif
  568. iRet = 0;
  569. }
  570. return iRet;
  571. }
  572. 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])
  573. {
  574. int iRet = 0;
  575. if (strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 ||
  576. strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 ||
  577. strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 ||
  578. strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 ||
  579. strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 ||
  580. strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 ||
  581. strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 ||
  582. strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 ||
  583. strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0 )
  584. {
  585. #if IS_USE_READMSG_CS
  586. EnterCriticalSection(&m_csReadMsg);
  587. #endif
  588. DataConversion(szTy, m_szNXL_E1HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  589. #if IS_USE_READMSG_CS
  590. LeaveCriticalSection(&m_csReadMsg);
  591. #endif
  592. iRet = 0;
  593. }
  594. return iRet;
  595. }
  596. 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])
  597. {
  598. int iRet = 0;
  599. if (strcmp(szCmd,"cmd-189") == 0 ||
  600. strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 ||
  601. strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 ||
  602. strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 ||
  603. strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 ||
  604. strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 ||
  605. strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 ||
  606. strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 ||
  607. strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0 )
  608. {
  609. #if IS_USE_READMSG_CS
  610. EnterCriticalSection(&m_csReadMsg);
  611. #endif
  612. DataConversion(szTy, m_szNXL_E2HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  613. #if IS_USE_READMSG_CS
  614. LeaveCriticalSection(&m_csReadMsg);
  615. #endif
  616. iRet = 0;
  617. }
  618. return iRet;
  619. }
  620. 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])
  621. {
  622. int iRet = 0;
  623. if (strcmp(szCmd,"cmd-213") == 0 ||
  624. strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 ||
  625. strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 ||
  626. strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 ||
  627. strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 ||
  628. strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 ||
  629. strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 ||
  630. strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0 )
  631. {
  632. #if IS_USE_READMSG_CS
  633. EnterCriticalSection(&m_csReadMsg);
  634. #endif
  635. DataConversion(szTy, m_szNXL_E3HMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  636. #if IS_USE_READMSG_CS
  637. LeaveCriticalSection(&m_csReadMsg);
  638. #endif
  639. iRet = 0;
  640. }
  641. return iRet;
  642. }
  643. 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])
  644. {
  645. int iRet = 0;
  646. if ( strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 ||
  647. strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 ||
  648. strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 ||
  649. strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 ||
  650. strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 ||
  651. strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 ||
  652. strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 ||
  653. strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 ||
  654. strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 ||
  655. strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 ||
  656. strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 ||
  657. strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0 )
  658. {
  659. #if IS_USE_READMSG_CS
  660. EnterCriticalSection(&m_csReadMsg);
  661. #endif
  662. DataConversion(szTy, m_szNXL_ECHMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  663. #if IS_USE_READMSG_CS
  664. LeaveCriticalSection(&m_csReadMsg);
  665. #endif
  666. iRet = 0;
  667. }
  668. return iRet;
  669. }
  670. 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])
  671. {
  672. int iRet = 0;
  673. if (strcmp(szCmd,"cmd-270") == 0 ||
  674. strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 ||
  675. strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 ||
  676. strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 ||
  677. strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0 )
  678. {
  679. #if IS_USE_READMSG_CS
  680. EnterCriticalSection(&m_csReadMsg);
  681. #endif
  682. DataConversion(szTy, m_szNXL_EEHMsg[iAddr -1] + iIndex, szRecvMsg, iLen, 0, 0);
  683. #if IS_USE_READMSG_CS
  684. LeaveCriticalSection(&m_csReadMsg);
  685. #endif
  686. iRet = 0;
  687. }
  688. return iRet;
  689. }
  690. int CUPS_NXL::Set_NXL_42_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  691. {
  692. int iRet = 0;
  693. if (strcmp(szCmd,"cmd-1") == 0 || strcmp(szCmd,"cmd-2") == 0 || strcmp(szCmd,"cmd-3") == 0 ||
  694. strcmp(szCmd,"cmd-4") == 0 || strcmp(szCmd,"cmd-5") == 0 || strcmp(szCmd,"cmd-6") == 0 ||
  695. strcmp(szCmd,"cmd-7") == 0 || strcmp(szCmd,"cmd-8") == 0 || strcmp(szCmd,"cmd-9") == 0 ||
  696. strcmp(szCmd,"cmd-10") == 0 || strcmp(szCmd,"cmd-11") == 0 || strcmp(szCmd,"cmd-12") == 0 ||
  697. strcmp(szCmd,"cmd-13") == 0 || strcmp(szCmd,"cmd-14") == 0 )
  698. {
  699. #if IS_USE_READMSG_CS
  700. EnterCriticalSection(&m_csReadMsg);
  701. #endif
  702. memcpy(m_szNXL_42HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_42HMsg[iAddr -1]));
  703. #if IS_USE_READMSG_CS
  704. LeaveCriticalSection(&m_csReadMsg);
  705. #endif
  706. iRet = 0;
  707. }
  708. return iRet;
  709. }
  710. int CUPS_NXL::Set_NXL_43_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  711. {
  712. int iRet = 0;
  713. if (strcmp(szCmd,"cmd-15") == 0 ||
  714. strcmp(szCmd,"cmd-16") == 0 || strcmp(szCmd,"cmd-17") == 0 || strcmp(szCmd,"cmd-18") == 0 ||
  715. strcmp(szCmd,"cmd-19") == 0 || strcmp(szCmd,"cmd-20") == 0 || strcmp(szCmd,"cmd-21") == 0 ||
  716. strcmp(szCmd,"cmd-22") == 0 || strcmp(szCmd,"cmd-23") == 0 || strcmp(szCmd,"cmd-24") == 0 ||
  717. strcmp(szCmd,"cmd-25") == 0 || strcmp(szCmd,"cmd-26") == 0 || strcmp(szCmd,"cmd-27") == 0 ||
  718. strcmp(szCmd,"cmd-28") == 0 || strcmp(szCmd,"cmd-29") == 0 || strcmp(szCmd,"cmd-30") == 0 ||
  719. strcmp(szCmd,"cmd-31") == 0 || strcmp(szCmd,"cmd-32") == 0 || strcmp(szCmd,"cmd-33") == 0 ||
  720. strcmp(szCmd,"cmd-34") == 0 || strcmp(szCmd,"cmd-35") == 0 || strcmp(szCmd,"cmd-36") == 0 ||
  721. strcmp(szCmd,"cmd-37") == 0 || strcmp(szCmd,"cmd-38") == 0 || strcmp(szCmd,"cmd-39") == 0 ||
  722. strcmp(szCmd,"cmd-40") == 0 || strcmp(szCmd,"cmd-41") == 0 || strcmp(szCmd,"cmd-42") == 0 ||
  723. strcmp(szCmd,"cmd-43") == 0 || strcmp(szCmd,"cmd-44") == 0 || strcmp(szCmd,"cmd-45") == 0 ||
  724. strcmp(szCmd,"cmd-46") == 0 || strcmp(szCmd,"cmd-47") == 0 || strcmp(szCmd,"cmd-48") == 0 )
  725. {
  726. #if IS_USE_READMSG_CS
  727. EnterCriticalSection(&m_csReadMsg);
  728. #endif
  729. memcpy(m_szNXL_43HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_43HMsg[iAddr -1]));
  730. #if IS_USE_READMSG_CS
  731. LeaveCriticalSection(&m_csReadMsg);
  732. #endif
  733. iRet = 0;
  734. }
  735. return iRet;
  736. }
  737. int CUPS_NXL::Set_NXL_44_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  738. {
  739. int iRet = 0;
  740. if (strcmp(szCmd,"cmd-49") == 0 || strcmp(szCmd,"cmd-50") == 0 || strcmp(szCmd,"cmd-51") == 0 ||
  741. strcmp(szCmd,"cmd-52") == 0 || strcmp(szCmd,"cmd-53") == 0 || strcmp(szCmd,"cmd-54") == 0 ||
  742. strcmp(szCmd,"cmd-55") == 0 || strcmp(szCmd,"cmd-56") == 0 || strcmp(szCmd,"cmd-57") == 0 ||
  743. strcmp(szCmd,"cmd-58") == 0 || strcmp(szCmd,"cmd-59") == 0 || strcmp(szCmd,"cmd-60") == 0 ||
  744. strcmp(szCmd,"cmd-61") == 0 || strcmp(szCmd,"cmd-62") == 0 || strcmp(szCmd,"cmd-63") == 0 ||
  745. strcmp(szCmd,"cmd-64") == 0 || strcmp(szCmd,"cmd-65") == 0 || strcmp(szCmd,"cmd-66") == 0 ||
  746. strcmp(szCmd,"cmd-67") == 0 || strcmp(szCmd,"cmd-68") == 0 || strcmp(szCmd,"cmd-69") == 0 ||
  747. strcmp(szCmd,"cmd-70") == 0 || strcmp(szCmd,"cmd-71") == 0 || strcmp(szCmd,"cmd-72") == 0 ||
  748. strcmp(szCmd,"cmd-73") == 0 || strcmp(szCmd,"cmd-74") == 0 || strcmp(szCmd,"cmd-75") == 0 ||
  749. strcmp(szCmd,"cmd-76") == 0 || strcmp(szCmd,"cmd-77") == 0 || strcmp(szCmd,"cmd-78") == 0 ||
  750. strcmp(szCmd,"cmd-79") == 0 || strcmp(szCmd,"cmd-80") == 0 || strcmp(szCmd,"cmd-81") == 0 ||
  751. strcmp(szCmd,"cmd-82") == 0 || strcmp(szCmd,"cmd-83") == 0 || strcmp(szCmd,"cmd-84") == 0 ||
  752. strcmp(szCmd,"cmd-85") == 0 || strcmp(szCmd,"cmd-86") == 0 || strcmp(szCmd,"cmd-87") == 0 ||
  753. strcmp(szCmd,"cmd-88") == 0 || strcmp(szCmd,"cmd-89") == 0 || strcmp(szCmd,"cmd-90") == 0 ||
  754. strcmp(szCmd,"cmd-91") == 0 || strcmp(szCmd,"cmd-92") == 0 || strcmp(szCmd,"cmd-93") == 0 ||
  755. strcmp(szCmd,"cmd-94") == 0 || strcmp(szCmd,"cmd-95") == 0 || strcmp(szCmd,"cmd-96") == 0 ||
  756. strcmp(szCmd,"cmd-97") == 0 || strcmp(szCmd,"cmd-98") == 0 || strcmp(szCmd,"cmd-99") == 0 ||
  757. strcmp(szCmd,"cmd-100") == 0 || strcmp(szCmd,"cmd-101") == 0 || strcmp(szCmd,"cmd-102") == 0 ||
  758. strcmp(szCmd,"cmd-103") == 0 || strcmp(szCmd,"cmd-104") == 0 || strcmp(szCmd,"cmd-105") == 0 ||
  759. strcmp(szCmd,"cmd-106") == 0 || strcmp(szCmd,"cmd-107") == 0 || strcmp(szCmd,"cmd-108") == 0 ||
  760. strcmp(szCmd,"cmd-109") == 0 || strcmp(szCmd,"cmd-110") == 0 || strcmp(szCmd,"cmd-111") == 0 ||
  761. strcmp(szCmd,"cmd-112") == 0 || strcmp(szCmd,"cmd-113") == 0 || strcmp(szCmd,"cmd-114") == 0 ||
  762. strcmp(szCmd,"cmd-115") == 0 || strcmp(szCmd,"cmd-116") == 0 || strcmp(szCmd,"cmd-117") == 0 ||
  763. strcmp(szCmd,"cmd-118") == 0 || strcmp(szCmd,"cmd-119") == 0 || strcmp(szCmd,"cmd-120") == 0 ||
  764. strcmp(szCmd,"cmd-121") == 0 || strcmp(szCmd,"cmd-122") == 0 || strcmp(szCmd,"cmd-123") == 0 ||
  765. strcmp(szCmd,"cmd-124") == 0 || strcmp(szCmd,"cmd-125") == 0 || strcmp(szCmd,"cmd-126") == 0 ||
  766. strcmp(szCmd,"cmd-127") == 0 || strcmp(szCmd,"cmd-128") == 0 || strcmp(szCmd,"cmd-129") == 0 ||
  767. strcmp(szCmd,"cmd-130") == 0 || strcmp(szCmd,"cmd-131") == 0 || strcmp(szCmd,"cmd-132") == 0 ||
  768. strcmp(szCmd,"cmd-133") == 0 || strcmp(szCmd,"cmd-134") == 0 || strcmp(szCmd,"cmd-135") == 0 ||
  769. strcmp(szCmd,"cmd-136") == 0 || strcmp(szCmd,"cmd-137") == 0 || strcmp(szCmd,"cmd-138") == 0 ||
  770. strcmp(szCmd,"cmd-139") == 0 || strcmp(szCmd,"cmd-140") == 0 || strcmp(szCmd,"cmd-141") == 0 ||
  771. strcmp(szCmd,"cmd-142") == 0 || strcmp(szCmd,"cmd-143") == 0 || strcmp(szCmd,"cmd-144") == 0 ||
  772. strcmp(szCmd,"cmd-145") == 0 || strcmp(szCmd,"cmd-146") == 0 || strcmp(szCmd,"cmd-147") == 0 ||
  773. strcmp(szCmd,"cmd-148") == 0 || strcmp(szCmd,"cmd-149") == 0 )
  774. {
  775. #if IS_USE_READMSG_CS
  776. EnterCriticalSection(&m_csReadMsg);
  777. #endif
  778. memcpy(m_szNXL_44HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_44HMsg[iAddr -1]));
  779. #if IS_USE_READMSG_CS
  780. LeaveCriticalSection(&m_csReadMsg);
  781. #endif
  782. iRet = 0;
  783. }
  784. return iRet;
  785. }
  786. int CUPS_NXL::Set_NXL_E0_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  787. {
  788. int iRet = 0;
  789. if ( strcmp(szCmd,"cmd-150") == 0 ||
  790. strcmp(szCmd,"cmd-151") == 0 || strcmp(szCmd,"cmd-152") == 0 || strcmp(szCmd,"cmd-153") == 0 ||
  791. strcmp(szCmd,"cmd-154") == 0 || strcmp(szCmd,"cmd-155") == 0 || strcmp(szCmd,"cmd-156") == 0 ||
  792. strcmp(szCmd,"cmd-157") == 0 || strcmp(szCmd,"cmd-158") == 0 || strcmp(szCmd,"cmd-159") == 0 ||
  793. strcmp(szCmd,"cmd-160") == 0 || strcmp(szCmd,"cmd-161") == 0 || strcmp(szCmd,"cmd-162") == 0 ||
  794. strcmp(szCmd,"cmd-163") == 0 )
  795. {
  796. #if IS_USE_READMSG_CS
  797. EnterCriticalSection(&m_csReadMsg);
  798. #endif
  799. memcpy(m_szNXL_E0HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E0HMsg[iAddr -1]));
  800. #if IS_USE_READMSG_CS
  801. LeaveCriticalSection(&m_csReadMsg);
  802. #endif
  803. iRet = 0;
  804. }
  805. return iRet;
  806. }
  807. int CUPS_NXL::Set_NXL_E1_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  808. {
  809. int iRet = 0;
  810. if ( strcmp(szCmd,"cmd-164") == 0 || strcmp(szCmd,"cmd-165") == 0 ||
  811. strcmp(szCmd,"cmd-166") == 0 || strcmp(szCmd,"cmd-167") == 0 || strcmp(szCmd,"cmd-168") == 0 ||
  812. strcmp(szCmd,"cmd-169") == 0 || strcmp(szCmd,"cmd-170") == 0 || strcmp(szCmd,"cmd-171") == 0 ||
  813. strcmp(szCmd,"cmd-172") == 0 || strcmp(szCmd,"cmd-173") == 0 || strcmp(szCmd,"cmd-174") == 0 ||
  814. strcmp(szCmd,"cmd-175") == 0 || strcmp(szCmd,"cmd-176") == 0 || strcmp(szCmd,"cmd-177") == 0 ||
  815. strcmp(szCmd,"cmd-178") == 0 || strcmp(szCmd,"cmd-179") == 0 || strcmp(szCmd,"cmd-180") == 0 ||
  816. strcmp(szCmd,"cmd-181") == 0 || strcmp(szCmd,"cmd-182") == 0 || strcmp(szCmd,"cmd-183") == 0 ||
  817. strcmp(szCmd,"cmd-184") == 0 || strcmp(szCmd,"cmd-185") == 0 || strcmp(szCmd,"cmd-186") == 0 ||
  818. strcmp(szCmd,"cmd-187") == 0 || strcmp(szCmd,"cmd-188") == 0 )
  819. {
  820. #if IS_USE_READMSG_CS
  821. EnterCriticalSection(&m_csReadMsg);
  822. #endif
  823. memcpy(m_szNXL_E1HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E1HMsg[iAddr -1]));
  824. #if IS_USE_READMSG_CS
  825. LeaveCriticalSection(&m_csReadMsg);
  826. #endif
  827. iRet = 0;
  828. }
  829. return iRet;
  830. }
  831. int CUPS_NXL::Set_NXL_E2_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  832. {
  833. int iRet = 0;
  834. if (strcmp(szCmd,"cmd-189") == 0 ||
  835. strcmp(szCmd,"cmd-190") == 0 || strcmp(szCmd,"cmd-191") == 0 || strcmp(szCmd,"cmd-192") == 0 ||
  836. strcmp(szCmd,"cmd-193") == 0 || strcmp(szCmd,"cmd-194") == 0 || strcmp(szCmd,"cmd-195") == 0 ||
  837. strcmp(szCmd,"cmd-196") == 0 || strcmp(szCmd,"cmd-197") == 0 || strcmp(szCmd,"cmd-198") == 0 ||
  838. strcmp(szCmd,"cmd-199") == 0 || strcmp(szCmd,"cmd-200") == 0 || strcmp(szCmd,"cmd-201") == 0 ||
  839. strcmp(szCmd,"cmd-202") == 0 || strcmp(szCmd,"cmd-203") == 0 || strcmp(szCmd,"cmd-204") == 0 ||
  840. strcmp(szCmd,"cmd-205") == 0 || strcmp(szCmd,"cmd-206") == 0 || strcmp(szCmd,"cmd-207") == 0 ||
  841. strcmp(szCmd,"cmd-208") == 0 || strcmp(szCmd,"cmd-209") == 0 || strcmp(szCmd,"cmd-210") == 0 ||
  842. strcmp(szCmd,"cmd-211") == 0 || strcmp(szCmd,"cmd-212") == 0 )
  843. {
  844. #if IS_USE_READMSG_CS
  845. EnterCriticalSection(&m_csReadMsg);
  846. #endif
  847. memcpy(m_szNXL_E2HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E2HMsg[iAddr -1]));
  848. #if IS_USE_READMSG_CS
  849. LeaveCriticalSection(&m_csReadMsg);
  850. #endif
  851. iRet = 0;
  852. }
  853. return iRet;
  854. }
  855. int CUPS_NXL::Set_NXL_E3_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  856. {
  857. int iRet = 0;
  858. if (strcmp(szCmd,"cmd-213") == 0 ||
  859. strcmp(szCmd,"cmd-214") == 0 || strcmp(szCmd,"cmd-215") == 0 || strcmp(szCmd,"cmd-216") == 0 ||
  860. strcmp(szCmd,"cmd-217") == 0 || strcmp(szCmd,"cmd-218") == 0 || strcmp(szCmd,"cmd-219") == 0 ||
  861. strcmp(szCmd,"cmd-220") == 0 || strcmp(szCmd,"cmd-221") == 0 || strcmp(szCmd,"cmd-222") == 0 ||
  862. strcmp(szCmd,"cmd-223") == 0 || strcmp(szCmd,"cmd-224") == 0 || strcmp(szCmd,"cmd-225") == 0 ||
  863. strcmp(szCmd,"cmd-226") == 0 || strcmp(szCmd,"cmd-227") == 0 || strcmp(szCmd,"cmd-228") == 0 ||
  864. strcmp(szCmd,"cmd-229") == 0 || strcmp(szCmd,"cmd-230") == 0 || strcmp(szCmd,"cmd-231") == 0 ||
  865. strcmp(szCmd,"cmd-232") == 0 || strcmp(szCmd,"cmd-233") == 0 || strcmp(szCmd,"cmd-234") == 0 )
  866. {
  867. #if IS_USE_READMSG_CS
  868. EnterCriticalSection(&m_csReadMsg);
  869. #endif
  870. memcpy(m_szNXL_E3HMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_E3HMsg[iAddr -1]));
  871. #if IS_USE_READMSG_CS
  872. LeaveCriticalSection(&m_csReadMsg);
  873. #endif
  874. iRet = 0;
  875. }
  876. return iRet;
  877. }
  878. int CUPS_NXL::Set_NXL_EC_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  879. {
  880. int iRet = 0;
  881. if (strcmp(szCmd,"cmd-235") == 0 || strcmp(szCmd,"cmd-236") == 0 || strcmp(szCmd,"cmd-237") == 0 ||
  882. strcmp(szCmd,"cmd-238") == 0 || strcmp(szCmd,"cmd-239") == 0 || strcmp(szCmd,"cmd-240") == 0 ||
  883. strcmp(szCmd,"cmd-241") == 0 || strcmp(szCmd,"cmd-242") == 0 || strcmp(szCmd,"cmd-243") == 0 ||
  884. strcmp(szCmd,"cmd-244") == 0 || strcmp(szCmd,"cmd-245") == 0 || strcmp(szCmd,"cmd-246") == 0 ||
  885. strcmp(szCmd,"cmd-247") == 0 || strcmp(szCmd,"cmd-248") == 0 || strcmp(szCmd,"cmd-249") == 0 ||
  886. strcmp(szCmd,"cmd-250") == 0 || strcmp(szCmd,"cmd-251") == 0 || strcmp(szCmd,"cmd-252") == 0 ||
  887. strcmp(szCmd,"cmd-253") == 0 || strcmp(szCmd,"cmd-254") == 0 || strcmp(szCmd,"cmd-255") == 0 ||
  888. strcmp(szCmd,"cmd-256") == 0 || strcmp(szCmd,"cmd-257") == 0 || strcmp(szCmd,"cmd-258") == 0 ||
  889. strcmp(szCmd,"cmd-259") == 0 || strcmp(szCmd,"cmd-260") == 0 || strcmp(szCmd,"cmd-261") == 0 ||
  890. strcmp(szCmd,"cmd-262") == 0 || strcmp(szCmd,"cmd-263") == 0 || strcmp(szCmd,"cmd-264") == 0 ||
  891. strcmp(szCmd,"cmd-265") == 0 || strcmp(szCmd,"cmd-266") == 0 || strcmp(szCmd,"cmd-267") == 0 ||
  892. strcmp(szCmd,"cmd-268") == 0 || strcmp(szCmd,"cmd-269") == 0 )
  893. {
  894. #if IS_USE_READMSG_CS
  895. EnterCriticalSection(&m_csReadMsg);
  896. #endif
  897. memcpy(m_szNXL_ECHMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_ECHMsg[iAddr -1]));
  898. #if IS_USE_READMSG_CS
  899. LeaveCriticalSection(&m_csReadMsg);
  900. #endif
  901. iRet = 0;
  902. }
  903. return iRet;
  904. }
  905. int CUPS_NXL::Set_NXL_EE_VarMsg(int iAddr,char szCmd[MAX_CMD],char *szRecvMsg)
  906. {
  907. int iRet = 0;
  908. if (strcmp(szCmd,"cmd-270") == 0 ||
  909. strcmp(szCmd,"cmd-271") == 0 || strcmp(szCmd,"cmd-272") == 0 || strcmp(szCmd,"cmd-273") == 0 ||
  910. strcmp(szCmd,"cmd-274") == 0 || strcmp(szCmd,"cmd-275") == 0 || strcmp(szCmd,"cmd-276") == 0 ||
  911. strcmp(szCmd,"cmd-277") == 0 || strcmp(szCmd,"cmd-278") == 0 || strcmp(szCmd,"cmd-279") == 0 ||
  912. strcmp(szCmd,"cmd-280") == 0 || strcmp(szCmd,"cmd-281") == 0 )
  913. {
  914. #if IS_USE_READMSG_CS
  915. EnterCriticalSection(&m_csReadMsg);
  916. #endif
  917. memcpy(m_szNXL_EEHMsg[iAddr -1], szRecvMsg, sizeof(m_szNXL_EEHMsg[iAddr -1]));
  918. #if IS_USE_READMSG_CS
  919. LeaveCriticalSection(&m_csReadMsg);
  920. #endif
  921. iRet = 0;
  922. }
  923. return iRet;
  924. }
  925. int CUPS_NXL::RtnCheck(char szRecvMsg[RECE_MSG_LENGTH])
  926. {
  927. char ch[2] = {0};
  928. ch[0] = szRecvMsg[7];
  929. ch[1] = szRecvMsg[8];
  930. if (atoi(ch) == 0)
  931. {
  932. return RTN_NORMAL;
  933. }
  934. else if (atoi(ch) ==1)
  935. {
  936. return RTN_VER_ERRROR;
  937. }
  938. else if (atoi(ch) ==2)
  939. {
  940. return RTN_CHKSUM_ERROR;
  941. }
  942. else if (atoi(ch) ==3)
  943. {
  944. return RTN_LCHKSUM_EEROR;
  945. }
  946. else if (atoi(ch) ==4)
  947. {
  948. return RTN_CID2_INVALID;
  949. }
  950. else if (atoi(ch) ==5)
  951. {
  952. return RTN_COMMAND_FORMAT_EEROR;
  953. }
  954. else if (atoi(ch) ==6)
  955. {
  956. return RTN_INVALID_DATA;
  957. }
  958. else if (atoi(ch) ==10)
  959. {
  960. return RTN_INVALID_LIMIT;
  961. }
  962. return -1;
  963. }
  964. int CUPS_NXL::NxlGetCheckSum(char *SendMsg,BYTE *szRecvCheck,int iMsgLen)
  965. {
  966. WORD iSum = 0;;
  967. for(int i=0; i < iMsgLen; i++)
  968. {
  969. iSum += SendMsg[i];
  970. }
  971. WORD iCompliment = iSum;
  972. iCompliment = ~iCompliment;
  973. iCompliment++;
  974. itoa(iCompliment,(char *)szRecvCheck, 16);
  975. szRecvCheck[0] = lowercase2uppercase(szRecvCheck[0]);
  976. szRecvCheck[1] = lowercase2uppercase(szRecvCheck[1]);
  977. szRecvCheck[2] = lowercase2uppercase(szRecvCheck[2]);
  978. szRecvCheck[3] = lowercase2uppercase(szRecvCheck[3]);
  979. return atoi((char *)szRecvCheck);
  980. }
  981. BOOL CUPS_NXL::Check_RecvMsgCheckSum(char *RecvMsg,int iMsgLen)
  982. {
  983. char szConvMsg[5]; /*转换后的消息*/
  984. char ChkSum[5];
  985. int j = 0;
  986. memset(szConvMsg, 0, 5);
  987. memset(ChkSum, 0, 5);
  988. for (int i=(iMsgLen-5); i<(iMsgLen-1); i++)
  989. {
  990. ChkSum[j] = RecvMsg[i];
  991. j++;
  992. }
  993. GetChkSum(RecvMsg, szConvMsg, iMsgLen);
  994. ByteToUpper(szConvMsg);
  995. ByteToUpper(ChkSum);
  996. if (memcmp(szConvMsg, ChkSum, 4) == 0)
  997. {
  998. return TRUE;
  999. }
  1000. return FALSE;
  1001. }
  1002. BOOL CUPS_NXL::LengthCheck(char szRecvMsg[RECE_MSG_LENGTH])
  1003. {
  1004. WORD len ,index , lenID;
  1005. len = 4;
  1006. index = 9;
  1007. char ch[4];
  1008. for (int i=0;i < len;i++)
  1009. {
  1010. ch[i] = szRecvMsg[index+i];
  1011. }
  1012. lenID = AsciiToBYTE(ch[1]) + AsciiToBYTE(ch[2]) + AsciiToBYTE(ch[3]);
  1013. lenID = lenID%16;
  1014. lenID = ~lenID + 1;
  1015. lenID = lenID & 15;
  1016. if (AsciiToBYTE(ch[0]) == lenID)
  1017. {
  1018. return TRUE;
  1019. }
  1020. return FALSE;
  1021. }