dac4c744-389f-4d60-a8b6-9530018c8644.cfg 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285
  1. <MacroInfo xmlns="http://schemas.flexem.com/fs/model/1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><AddressCollection><MacroAddressInfo><AddressIndex>1</AddressIndex><BitAddress><Abbreviation>LB0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LB0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>91d6efce-90c6-44a8-98ca-3d5b301a78d5</Id><RegisterId>254</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></BitAddress><Name>LB0</Name><ReferenceCount>24</ReferenceCount><WordAddress><Abbreviation>LW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>b781c462-c60c-473f-8cbb-b7f90a273df2</Id><RegisterId>65791</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCount>1</WordCount><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></WordAddress></MacroAddressInfo><MacroAddressInfo><AddressIndex>2</AddressIndex><AddressType>Word</AddressType><BitAddress><Abbreviation>LB0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LB0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>fe46d884-2838-4b27-b7fc-f07098631817</Id><RegisterId>254</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></BitAddress><Name>LW0</Name><ReferenceCount>38</ReferenceCount><WordAddress><Abbreviation>LW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>67b03913-90d2-4405-ae7f-941a191446cd</Id><RegisterId>65791</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCount>1</WordCount><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></WordAddress></MacroAddressInfo><MacroAddressInfo><AddressIndex>3</AddressIndex><AddressType>Word</AddressType><BitAddress><Abbreviation>LB0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LB0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>71515339-861e-4335-9744-b7cabb9ead0f</Id><RegisterId>254</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></BitAddress><Name>RW0</Name><ReferenceCount>6</ReferenceCount><WordAddress><Abbreviation>RW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:RW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>96e581ea-bc9c-4cd1-b094-d6e621fbf3e3</Id><RegisterId>65789</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCount>1</WordCount><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></WordAddress></MacroAddressInfo><MacroAddressInfo><AddressIndex>4</AddressIndex><AddressType>Word</AddressType><BitAddress><Abbreviation>SRBR0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:SRBR0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>73d53d96-5dd4-494d-8e98-ba41396bdcd0</Id><RegisterId>251</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></BitAddress><Name>SRW0</Name><ReferenceCount>1</ReferenceCount><WordAddress><Abbreviation>SRW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:SRW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>ad5c5ee5-f442-4058-8bae-78cbecc5e5b6</Id><RegisterId>65792</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCount>1</WordCount><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></WordAddress></MacroAddressInfo></AddressCollection><Description/><Name>Test</Name><NameWithSuffix>Test.c</NameWithSuffix><NeedRebuild>true</NeedRebuild><SourceCode>#include &lt;macro.h&gt;&#xD;
  2. #include &lt;string.h&gt;&#xD;
  3. #include &lt;stdio.h&gt;&#xD;
  4. &#xD;
  5. // 定义常量&#xD;
  6. #define MAX_ROOMS 24&#xD;
  7. #define BUFFER_SIZE 4096&#xD;
  8. #define NAME_BUFFER_LEN 100&#xD;
  9. #define VALUE_BUFFER_LEN 20&#xD;
  10. &#xD;
  11. int MacroMain()&#xD;
  12. {&#xD;
  13. //显示加载图片&#xD;
  14. //SetBit(@LB0@,5000,1);&#xD;
  15. // 数据缓冲区&#xD;
  16. unsigned char httpRequest[BUFFER_SIZE] = {0};&#xD;
  17. unsigned char recvBuffer[BUFFER_SIZE] = {0};&#xD;
  18. &#xD;
  19. // 房间信息&#xD;
  20. unsigned char nameBuffers[MAX_ROOMS][NAME_BUFFER_LEN];&#xD;
  21. unsigned short nameBuffersUtf16[MAX_ROOMS][NAME_BUFFER_LEN];&#xD;
  22. unsigned char tempStr[MAX_ROOMS][VALUE_BUFFER_LEN]; // 改为字符串&#xD;
  23. unsigned char humidityStr[MAX_ROOMS][VALUE_BUFFER_LEN]; // 改为字符串&#xD;
  24. unsigned char statusStr[MAX_ROOMS][2];&#xD;
  25. unsigned char alarmStr[MAX_ROOMS][2];&#xD;
  26. unsigned char number[7][4] = {"一","二","三","四","五","六","七"};&#xD;
  27. unsigned int week = GetDWord(@SRW0@,7);&#xD;
  28. &#xD;
  29. // 网络信息&#xD;
  30. unsigned char host[50] = {0};&#xD;
  31. unsigned short port = 0;&#xD;
  32. unsigned int floor = 0;&#xD;
  33. unsigned int NONO = 0;&#xD;
  34. unsigned int KK = 0, LL = 0;&#xD;
  35. int i = 0;&#xD;
  36. &#xD;
  37. // 设置楼层&#xD;
  38. if (GetBit(@LB0@, 1)) {&#xD;
  39. floor = 1;&#xD;
  40. //信标总数&#xD;
  41. SetDWord(@LW0@,1999,10);&#xD;
  42. //基站总数&#xD;
  43. SetDWord(@LW0@,2000,8);&#xD;
  44. //基站在线数&#xD;
  45. SetDWord(@LW0@,2001,8);&#xD;
  46. //基站离线数&#xD;
  47. SetDWord(@LW0@,2002,0);&#xD;
  48. //断电监测在线数&#xD;
  49. SetDWord(@LW0@,2003,12);&#xD;
  50. //断电监测离线数&#xD;
  51. SetDWord(@LW0@,2004,0);&#xD;
  52. } else if (GetBit(@LB0@, 2)) {&#xD;
  53. floor = 2;&#xD;
  54. SetDWord(@LW0@,1999,18);&#xD;
  55. SetDWord(@LW0@,2000,4);&#xD;
  56. //基站在线数&#xD;
  57. SetDWord(@LW0@,2001,4);&#xD;
  58. //基站离线数&#xD;
  59. SetDWord(@LW0@,2002,0);&#xD;
  60. //断电监测在线数&#xD;
  61. SetDWord(@LW0@,2003,17);&#xD;
  62. //断电监测离线数&#xD;
  63. SetDWord(@LW0@,2004,0);&#xD;
  64. } else if (GetBit(@LB0@, 3)) {&#xD;
  65. floor = 3;&#xD;
  66. SetDWord(@LW0@,1999,16);&#xD;
  67. SetDWord(@LW0@,2000,4);&#xD;
  68. //基站在线数&#xD;
  69. SetDWord(@LW0@,2001,4);&#xD;
  70. //基站离线数&#xD;
  71. SetDWord(@LW0@,2002,0);&#xD;
  72. //断电监测在线数&#xD;
  73. SetDWord(@LW0@,2003,10);&#xD;
  74. //断电监测离线数&#xD;
  75. SetDWord(@LW0@,2004,0);&#xD;
  76. } else if (GetBit(@LB0@, 4)) {&#xD;
  77. floor = 4;&#xD;
  78. SetDWord(@LW0@,1999,19);&#xD;
  79. SetDWord(@LW0@,2000,4);&#xD;
  80. //基站在线数&#xD;
  81. SetDWord(@LW0@,2001,4);&#xD;
  82. //基站离线数&#xD;
  83. SetDWord(@LW0@,2002,0);&#xD;
  84. //断电监测在线数&#xD;
  85. SetDWord(@LW0@,2003,8);&#xD;
  86. //断电监测离线数&#xD;
  87. SetDWord(@LW0@,2004,0);&#xD;
  88. }&#xD;
  89. &#xD;
  90. // 初始化寄存器数据&#xD;
  91. SetWord(@LW0@, 0, 0);&#xD;
  92. SetWord(@LW0@, 1, 0);&#xD;
  93. SetWord(@LW0@, 2, 0);&#xD;
  94. &#xD;
  95. &#xD;
  96. &#xD;
  97. // 初始化服务器地址和端口&#xD;
  98. if (GetDWord(@RW0@, 100) == 0) {&#xD;
  99. const unsigned char YS1[] = "124.221.147.225";&#xD;
  100. SetMem(YS1, @RW0@, 100, strlen(YS1));&#xD;
  101. SetWord(@RW0@, 120, 58888);&#xD;
  102. SetDWord(@RW0@, 122, floor);&#xD;
  103. }&#xD;
  104. &#xD;
  105. // 获取服务器地址和端口&#xD;
  106. GetMem(host, @RW0@, 100, 40);&#xD;
  107. port = GetWord(@RW0@, 120);&#xD;
  108. &#xD;
  109. // 构建 HTTP 请求&#xD;
  110. snprintf(httpRequest, sizeof(httpRequest),&#xD;
  111. "GET /coldchain/hmi/roomMonitor?floor=%d&amp;createOrg=1947099553009520642 HTTP/1.1\r\n"&#xD;
  112. "Accept: application/json, text/plain, */*\r\n"&#xD;
  113. "Accept-Language: zh-CN,zh;q=0.9\r\n"&#xD;
  114. "User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0\r\n"&#xD;
  115. "Accept-Encoding: gzip, deflate, br, zstd\r\n"&#xD;
  116. "Host: 124.221.147.225:58888\r\n"&#xD;
  117. "Token: SZrN75oijJZLCgXg3K98zW4fbXT2soio\r\n"&#xD;
  118. "Connection: Keep-Alive\r\n"&#xD;
  119. "\r\n",&#xD;
  120. floor);&#xD;
  121. &#xD;
  122. // 建立连接并发送请求&#xD;
  123. NONO = OpenSocket(host, port, 1);&#xD;
  124. SetWord(@LW0@, 0, NONO); // 保存句柄&#xD;
  125. &#xD;
  126. if (NONO &gt;= 1000) {&#xD;
  127. Debug(0, "socket opened\n");&#xD;
  128. KK = SendSocket(NONO, httpRequest, strlen(httpRequest));&#xD;
  129. SetWord(@LW0@, 1, KK); // 发送字节数&#xD;
  130. &#xD;
  131. Delay(500);&#xD;
  132. LL = RecvSocket(NONO, recvBuffer, sizeof(recvBuffer), 2000);&#xD;
  133. SetWord(@LW0@, 20, LL); // 接收字节数&#xD;
  134. &#xD;
  135. Debug(0, "Request: %s", httpRequest);&#xD;
  136. Debug(0, "Response: %s", recvBuffer);&#xD;
  137. &#xD;
  138. for(i=0;i&lt;MAX_ROOMS;i++){&#xD;
  139. strcpy(nameBuffers[i]," ");&#xD;
  140. strcpy(tempStr[i]," ");&#xD;
  141. strcpy(humidityStr[i]," ");&#xD;
  142. }&#xD;
  143. // 解析 JSON 数据&#xD;
  144. int index = 0;&#xD;
  145. unsigned char *pos = recvBuffer;&#xD;
  146. &#xD;
  147. while (index &lt; MAX_ROOMS &amp;&amp; (pos = strstr(pos, "\"monitorName\":\"")) != NULL) {&#xD;
  148. int offset = pos - recvBuffer + strlen("\"monitorName\":\"");&#xD;
  149. int j = 0;&#xD;
  150. unsigned char nameBuffer[NAME_BUFFER_LEN];&#xD;
  151. &#xD;
  152. // 提取 roomName&#xD;
  153. while (recvBuffer[offset + j] != '"' &amp;&amp; j &lt; NAME_BUFFER_LEN - 1) {&#xD;
  154. nameBuffer[j] = recvBuffer[offset + j];&#xD;
  155. j++;&#xD;
  156. }&#xD;
  157. nameBuffer[j] = '\0';&#xD;
  158. strncpy(nameBuffers[index], nameBuffer, NAME_BUFFER_LEN - 1);&#xD;
  159. nameBuffers[index][NAME_BUFFER_LEN - 1] = '\0';&#xD;
  160. &#xD;
  161. // 转换为 UTF-16&#xD;
  162. //Utf8Str2Utf16Str(nameBuffers[index], nameBuffersUtf16[index]);&#xD;
  163. &#xD;
  164. // 提取 temp&#xD;
  165. unsigned char *tempPos = strstr(pos, "\"temp\":");&#xD;
  166. if (tempPos) {&#xD;
  167. int k = 0;&#xD;
  168. int start = tempPos - recvBuffer + strlen("\"temp\":\"");&#xD;
  169. while (recvBuffer[start + k] != '"'&amp;&amp;recvBuffer[start + k] != ',' &amp;&amp; recvBuffer[start + k] != '}' &amp;&amp; k &lt; VALUE_BUFFER_LEN - 1) {&#xD;
  170. tempStr[index][k] = recvBuffer[start + k];&#xD;
  171. k++;&#xD;
  172. }&#xD;
  173. tempStr[index][k] = '\0';&#xD;
  174. } else {&#xD;
  175. strcpy(tempStr[index], "0");&#xD;
  176. }&#xD;
  177. &#xD;
  178. // 提取 humidity&#xD;
  179. unsigned char *humidPos = strstr(pos, "\"humidity\":");&#xD;
  180. if (humidPos) {&#xD;
  181. int k = 0;&#xD;
  182. int start = humidPos - recvBuffer + strlen("\"humidity\":\"");&#xD;
  183. while (recvBuffer[start + k] != '"'&amp;&amp;recvBuffer[start + k] != ',' &amp;&amp; recvBuffer[start + k] != '}' &amp;&amp; k &lt; VALUE_BUFFER_LEN - 1) {&#xD;
  184. humidityStr[index][k] = recvBuffer[start + k];&#xD;
  185. k++;&#xD;
  186. }&#xD;
  187. humidityStr[index][k] = '\0';&#xD;
  188. } else {&#xD;
  189. strcpy(humidityStr[index], "0");&#xD;
  190. }&#xD;
  191. // 提取 status&#xD;
  192. unsigned char *statusPos = strstr(pos, "\"status\":");&#xD;
  193. if (statusPos) {&#xD;
  194. int k = 0;&#xD;
  195. int start = statusPos - recvBuffer + strlen("\"status\":");&#xD;
  196. while (recvBuffer[start + k] != ',' &amp;&amp; recvBuffer[start + k] != '}' &amp;&amp; k &lt; VALUE_BUFFER_LEN - 1) {&#xD;
  197. statusStr[index][k] = recvBuffer[start + k];&#xD;
  198. k++;&#xD;
  199. }&#xD;
  200. statusStr[index][k] = '\0';&#xD;
  201. } else {&#xD;
  202. strcpy(statusStr[index], "1");&#xD;
  203. }&#xD;
  204. // 提取 alarm&#xD;
  205. unsigned char *alarmPos = strstr(pos, "\"alarm\":");&#xD;
  206. if (alarmPos) {&#xD;
  207. int k = 0;&#xD;
  208. int start = alarmPos - recvBuffer + strlen("\"alarm\":");&#xD;
  209. while (recvBuffer[start + k] != ',' &amp;&amp; recvBuffer[start + k] != '}' &amp;&amp; k &lt; VALUE_BUFFER_LEN - 1) {&#xD;
  210. alarmStr[index][k] = recvBuffer[start + k];&#xD;
  211. k++;&#xD;
  212. }&#xD;
  213. alarmStr[index][k] = '\0';&#xD;
  214. } else {&#xD;
  215. strcpy(alarmStr[index], "0");&#xD;
  216. }&#xD;
  217. index++;&#xD;
  218. &#xD;
  219. // 移动 pos 到当前字段结束位置,继续查找下一个 "monitorName"&#xD;
  220. pos = pos + strlen("\"monitorName\":\"") + j + 1; // +1 是跳过结尾的引号&#xD;
  221. }&#xD;
  222. if(index&gt;12){&#xD;
  223. SetBit(@LB0@,2222,1);&#xD;
  224. }else{&#xD;
  225. SetBit(@LB0@,2222,0);&#xD;
  226. }&#xD;
  227. // 写入寄存器&#xD;
  228. for (i = 0; i &lt; 12; i++) {&#xD;
  229. // 转换为 UTF-16&#xD;
  230. if(GetBit(@LB0@,10)&amp;&amp;index&gt;12){&#xD;
  231. if(i+12&lt;index){&#xD;
  232. SetBit(@LB0@,100 + i*100 + 75,1);&#xD;
  233. SetBit(@LB0@,100 + i*100 + 85,1);&#xD;
  234. }else{&#xD;
  235. SetBit(@LB0@,100 + i*100 + 75,0);&#xD;
  236. SetBit(@LB0@,100 + i*100 + 85,0);&#xD;
  237. }&#xD;
  238. Utf8Str2Utf16Str(nameBuffers[i+12], nameBuffersUtf16[i+12]);&#xD;
  239. SetMem(nameBuffersUtf16[i+12], @LW0@, 100 + i * 100, NAME_BUFFER_LEN / 2);&#xD;
  240. SetMem(tempStr[i+12], @LW0@, 100 + i * 100 + 30, strlen(tempStr[i+12]) + 7);&#xD;
  241. SetMem(humidityStr[i+12], @LW0@, 100 + i * 100 + 50, strlen(humidityStr[i+12]) + 7);&#xD;
  242. if(strcmp(statusStr[i+12],"1") == 0){&#xD;
  243. SetBit(@LB0@,100 + i*100 + 70,0);&#xD;
  244. }else{&#xD;
  245. SetBit(@LB0@,100 + i*100 + 70,1);&#xD;
  246. }&#xD;
  247. if(strcmp(alarmStr[i+12],"0") == 0){&#xD;
  248. SetBit(@LB0@,100 + i*100 + 80,0);&#xD;
  249. }else{&#xD;
  250. SetBit(@LB0@,100 + i*100 + 80,1);&#xD;
  251. }&#xD;
  252. }else{&#xD;
  253. if(i&lt;index){&#xD;
  254. SetBit(@LB0@,100 + i*100 + 75,1);&#xD;
  255. SetBit(@LB0@,100 + i*100 + 85,1);&#xD;
  256. }else{&#xD;
  257. SetBit(@LB0@,100 + i*100 + 75,0);&#xD;
  258. SetBit(@LB0@,100 + i*100 + 85,0);&#xD;
  259. }&#xD;
  260. Utf8Str2Utf16Str(nameBuffers[i], nameBuffersUtf16[i]);&#xD;
  261. SetMem(nameBuffersUtf16[i], @LW0@, 100 + i * 100, NAME_BUFFER_LEN / 2);&#xD;
  262. SetMem(tempStr[i], @LW0@, 100 + i * 100 + 30, strlen(tempStr[i]) + 7);&#xD;
  263. SetMem(humidityStr[i], @LW0@, 100 + i * 100 + 50, strlen(humidityStr[i]) + 7);&#xD;
  264. if(strcmp(statusStr[i],"1") == 0){&#xD;
  265. SetBit(@LB0@,100 + i*100 + 70,0);&#xD;
  266. }else{&#xD;
  267. SetBit(@LB0@,100 + i*100 + 70,1);&#xD;
  268. }&#xD;
  269. if(strcmp(alarmStr[i],"0") == 0){&#xD;
  270. SetBit(@LB0@,100 + i*100 + 80,0);&#xD;
  271. }else{&#xD;
  272. SetBit(@LB0@,100 + i*100 + 80,1);&#xD;
  273. }&#xD;
  274. }&#xD;
  275. }&#xD;
  276. }&#xD;
  277. SetString(@LW0@,12,UNICODE,number[floor-1]);&#xD;
  278. SetString(@LW0@,7,UNICODE,number[week-1]);&#xD;
  279. //关闭加载图片&#xD;
  280. SetBit(@LB0@,5000,0);&#xD;
  281. // 关闭连接(建议取消注释)&#xD;
  282. if (NONO &gt;= 1000) CloseSocket(NONO);&#xD;
  283. &#xD;
  284. return 0;&#xD;
  285. }</SourceCode><UniqueId>dac4c744-389f-4d60-a8b6-9530018c8644</UniqueId><Version>1</Version></MacroInfo>