8a0f279b-1824-4547-81b4-f569659e8b72.cfg 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. <MacroInfo xmlns="http://schemas.flexem.com/fs/model/1" xmlns:i="http://www.w3.org/2001/XMLSchema-instance"><AddressCollection><MacroAddressInfo><AddressIndex>1</AddressIndex><AddressType>Word</AddressType><BitAddress><Abbreviation>LW.B1.0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW.B1.0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>15a63eb5-743b-45d1-8f6c-7f5fa91f8a9a</Id><MainAddress>1</MainAddress><RegisterId>65791</RegisterId><SpeedIsVisible>true</SpeedIsVisible><SysRegIsEnabled>true</SysRegIsEnabled><SysRegIsVisible>true</SysRegIsVisible><UseByteReference>true</UseByteReference><UseStationReferenceIsVisible>true</UseStationReferenceIsVisible><WordCount>1</WordCount><WordCountIsVisible>true</WordCountIsVisible><Version>4</Version><TagName/><NewSubAddressIndexType>Constant</NewSubAddressIndexType></BitAddress><Name>lw1</Name><WordAddress><Abbreviation>LW1</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW1</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>57c236a9-b302-4f5b-81bb-8d4d3c3333f6</Id><MainAddress>1</MainAddress><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>2acfc59f-7eb4-4964-8cad-23dfa08e6de4</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>9</ReferenceCount><WordAddress><Abbreviation>LW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>facafe6c-f8ec-4c7e-9202-a4b1e2e162fc</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>9effc23b-314f-4015-aa2a-ba452f8cde86</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>725dfe52-d699-4065-82be-30f2f19268b7</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><BitAddress><Abbreviation>LB0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><DataTypeIsVisible>true</DataTypeIsVisible><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LB0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>52a2c3e6-62a7-4103-9bc6-014909550198</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>4</ReferenceCount><WordAddress><Abbreviation>LW0</Abbreviation><AddressLabelIsVisible>true</AddressLabelIsVisible><AddressType>Word</AddressType><DeviceAndAbbreviation>LOCAL:[本地寄存器]:LW0</DeviceAndAbbreviation><DeviceId>5942dc1f-588b-4485-88a4-8a07f240b2f8</DeviceId><Id>1b5276fa-6f8b-4810-a853-b85540eb3849</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></AddressCollection><Description/><Name>macro_1</Name><NameWithSuffix>macro_1.c</NameWithSuffix><NeedRebuild>true</NeedRebuild><SourceCode>#include &lt;macro.h&gt;&#xD;
  2. &#xD;
  3. int MacroMain()&#xD;
  4. {&#xD;
  5. unsigned char data20[1000]={0};&#xD;
  6. unsigned char data10[4096]={0};&#xD;
  7. unsigned char data11[4096]={0};&#xD;
  8. unsigned char data12[4096]={0};&#xD;
  9. unsigned char data121[4096]={0};&#xD;
  10. unsigned char data122[4096]={0};&#xD;
  11. unsigned char data123[4096]={0};&#xD;
  12. unsigned char data124[4096]={0};&#xD;
  13. unsigned char data125[4096]={0};&#xD;
  14. unsigned char data126[4096]={0};&#xD;
  15. unsigned short i=0,ii=0;&#xD;
  16. unsigned short data13[4096]={0};&#xD;
  17. unsigned char bb[30]={0};&#xD;
  18. unsigned char cityk[50]={0};&#xD;
  19. unsigned int KK=0,LL=0,ymd=0,high=0,low=0,highdata=0,lowdata=0;&#xD;
  20. unsigned int NONO=0;&#xD;
  21. unsigned char host[50]={0};&#xD;
  22. unsigned short port=0;&#xD;
  23. unsigned short recvL=0;&#xD;
  24. unsigned short data=0;&#xD;
  25. unsigned char nameBuffer[100]; // 临时存储一个name值&#xD;
  26. unsigned char nameBuffers[12][100]; // 存储最多5个name值&#xD;
  27. unsigned short nameBuffersUtf16[12][100]; &#xD;
  28. unsigned char *start = NULL;&#xD;
  29. unsigned char *end = NULL;&#xD;
  30. float temp[12];&#xD;
  31. float humidity[12];&#xD;
  32. int floor = 0;&#xD;
  33. int index = 0;&#xD;
  34. unsigned char YS1[100]="124.221.147.225";&#xD;
  35. //unsigned char YS2[100]="t.weather.sojson.com";&#xD;
  36. SetWord(@LW0@,0,0);&#xD;
  37. SetWord(@LW0@,1,0);&#xD;
  38. SetWord(@LW0@,2,0);&#xD;
  39. if(GetBit(@LB0@,1)){&#xD;
  40. floor = 1;&#xD;
  41. }else if(GetBit(@LB0@,2)){&#xD;
  42. floor = 2;&#xD;
  43. }else if(GetBit(@LB0@,3)){&#xD;
  44. floor = 3;&#xD;
  45. }else if(GetBit(@LB0@,4)){&#xD;
  46. floor = 4;&#xD;
  47. }&#xD;
  48. if(GetDWord(@RW0@,100)==0)&#xD;
  49. {&#xD;
  50. SetMem(YS1,@RW0@,100,strlen(YS1));&#xD;
  51. SetWord(@RW0@,120,58888);&#xD;
  52. SetDWord(@RW0@,122,floor);&#xD;
  53. &#xD;
  54. }&#xD;
  55. &#xD;
  56. &#xD;
  57. //Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0&#xD;
  58. sprintf(data20,"%s%d%s%s","GET /coldchain/targetroom/roomMonitor?floor=",floor,"L"," HTTP/1.1\r\n");&#xD;
  59. strcat(data10, data20);&#xD;
  60. strcat(data10, "Accept: application/json, text/plain, */* \r\n");&#xD;
  61. strcat(data10, "Accept-Language: zh-CN,zh;q=0.9 \r\n");&#xD;
  62. //strcat(data10, "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko\r\n");&#xD;
  63. strcat(data10, "User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0\r\n");&#xD;
  64. strcat(data10, "Accept-Encoding: gzip, deflate, br, zstd\r\n");&#xD;
  65. strcat(data10, "Host: 124.221.147.225:58888\r\n");&#xD;
  66. strcat(data10, "Token: SZrN75oijJZLCgXg3K98zW4fbXT2soio\r\n");&#xD;
  67. strcat(data10, "Connection: Keep-Alive\r\n");&#xD;
  68. strcat(data10, "\r\n");&#xD;
  69. &#xD;
  70. &#xD;
  71. GetMem(host,@RW0@,100,40);&#xD;
  72. port=GetWord(@RW0@,120);&#xD;
  73. NONO=OpenSocket(host,port,1);&#xD;
  74. &#xD;
  75. SetWord(@LW0@,0,NONO);//句柄号&#xD;
  76. &#xD;
  77. if(NONO&gt;=1000)&#xD;
  78. {&#xD;
  79. Debug(0,"socket opened\n");&#xD;
  80. KK=SendSocket(NONO,data10,strlen(data10));&#xD;
  81. SetWord(@LW0@,1,KK);//发送字节&#xD;
  82. LL=RecvSocket(NONO,data11,4096,2000);&#xD;
  83. Delay(200);&#xD;
  84. SetWord(@LW0@,20,LL);//接收字节&#xD;
  85. Debug(0,"%s",data10);&#xD;
  86. Debug(0,"%s",data11);&#xD;
  87. //CloseSocket(NONO);&#xD;
  88. }&#xD;
  89. if(LL&gt;0&amp;&amp;LL&lt;5000)&#xD;
  90. {&#xD;
  91. unsigned char *pos = NULL;&#xD;
  92. int offset = 0;&#xD;
  93. for(i=0;i&lt;12;i++){&#xD;
  94. strcpy(nameBuffers[i],"无");&#xD;
  95. temp[i]=0.0;&#xD;
  96. humidity[i]=0.0;&#xD;
  97. }&#xD;
  98. while (index &lt; 12 &amp;&amp; (pos = strstr(data11 + offset, "\"roomName\":\"")) != NULL)&#xD;
  99. {&#xD;
  100. // 找到 "name":" 的位置&#xD;
  101. offset = pos - data11 + strlen("\"roomName\":\""); // 移动到值的起始位置&#xD;
  102. &#xD;
  103. unsigned char nameBuffer[100];&#xD;
  104. int j = 0;&#xD;
  105. &#xD;
  106. // 提取值直到遇到双引号&#xD;
  107. while (data11[offset + j] != '"' &amp;&amp; j &lt; 99)&#xD;
  108. {&#xD;
  109. nameBuffer[j] = data11[offset + j];&#xD;
  110. j++;&#xD;
  111. }&#xD;
  112. nameBuffer[j] = '\0'; // 添加字符串结束符&#xD;
  113. &#xD;
  114. // 存入 nameBuffers&#xD;
  115. strncpy(nameBuffers[index], nameBuffer, sizeof(nameBuffers[index]) - 1);&#xD;
  116. nameBuffers[index][sizeof(nameBuffers[index]) - 1] = '\0';&#xD;
  117. &#xD;
  118. // 转换为 UTF-16 并写入寄存器&#xD;
  119. Utf8Str2Utf16Str(nameBuffers[index], nameBuffersUtf16[index]);&#xD;
  120. //SetMem(nameBuffersUtf16[index], @LW0@, 100 + index * 100, 10);&#xD;
  121. &#xD;
  122. index++; // 索引递增&#xD;
  123. offset += j + 1; // 更新偏移,跳过当前字段&#xD;
  124. }&#xD;
  125. &#xD;
  126. }&#xD;
  127. // 输出提取结果&#xD;
  128. for (i = 0; i &lt; 12; i++)&#xD;
  129. {&#xD;
  130. SetMem(nameBuffersUtf16[i], @LW0@, 100 + i * 100, 10);&#xD;
  131. SetFloat(@LW0@, 100 + i * 100 + 30, temp[i]);&#xD;
  132. SetFloat(@LW0@, 100 + i * 100 + 50, humidity[i]);&#xD;
  133. }&#xD;
  134. }</SourceCode><UniqueId>8a0f279b-1824-4547-81b4-f569659e8b72</UniqueId><Version>1</Version></MacroInfo>