| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- <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 <macro.h>
- 
- int MacroMain()
- {
- unsigned char data20[1000]={0};
- unsigned char data10[4096]={0};
- unsigned char data11[4096]={0};
- unsigned char data12[4096]={0};
- unsigned char data121[4096]={0};
- unsigned char data122[4096]={0};
- unsigned char data123[4096]={0};
- unsigned char data124[4096]={0};
- unsigned char data125[4096]={0};
- unsigned char data126[4096]={0};
- unsigned short i=0,ii=0;
- unsigned short data13[4096]={0};
- unsigned char bb[30]={0};
- unsigned char cityk[50]={0};
- unsigned int KK=0,LL=0,ymd=0,high=0,low=0,highdata=0,lowdata=0;
- unsigned int NONO=0;
- unsigned char host[50]={0};
- unsigned short port=0;
- unsigned short recvL=0;
- unsigned short data=0;
- unsigned char nameBuffer[100]; // 临时存储一个name值
- unsigned char nameBuffers[12][100]; // 存储最多5个name值
- unsigned short nameBuffersUtf16[12][100]; 
- unsigned char *start = NULL;
- unsigned char *end = NULL;
- float temp[12];
- float humidity[12];
- int floor = 0;
- int index = 0;
- unsigned char YS1[100]="124.221.147.225";
- //unsigned char YS2[100]="t.weather.sojson.com";
- SetWord(@LW0@,0,0);
- SetWord(@LW0@,1,0);
- SetWord(@LW0@,2,0);
- if(GetBit(@LB0@,1)){
- floor = 1;
- }else if(GetBit(@LB0@,2)){
- floor = 2;
- }else if(GetBit(@LB0@,3)){
- floor = 3;
- }else if(GetBit(@LB0@,4)){
- floor = 4;
- }
- if(GetDWord(@RW0@,100)==0)
- {
- SetMem(YS1,@RW0@,100,strlen(YS1));
- SetWord(@RW0@,120,58888);
- SetDWord(@RW0@,122,floor);
- 
- }
- 
- 
- //Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0
- sprintf(data20,"%s%d%s%s","GET /coldchain/targetroom/roomMonitor?floor=",floor,"L"," HTTP/1.1\r\n");
- strcat(data10, data20);
- strcat(data10, "Accept: application/json, text/plain, */* \r\n");
- strcat(data10, "Accept-Language: zh-CN,zh;q=0.9 \r\n");
- //strcat(data10, "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; rv:11.0) like Gecko\r\n");
- strcat(data10, "User-Agent:Mozilla/5.0 (Windows NT 6.1; rv:22.0) Gecko/20100101 Firefox/22.0\r\n");
- strcat(data10, "Accept-Encoding: gzip, deflate, br, zstd\r\n");
- strcat(data10, "Host: 124.221.147.225:58888\r\n");
- strcat(data10, "Token: SZrN75oijJZLCgXg3K98zW4fbXT2soio\r\n");
- strcat(data10, "Connection: Keep-Alive\r\n");
- strcat(data10, "\r\n");
- 
- 
- GetMem(host,@RW0@,100,40);
- port=GetWord(@RW0@,120);
- NONO=OpenSocket(host,port,1);
- 
- SetWord(@LW0@,0,NONO);//句柄号
- 
- if(NONO>=1000)
- {
- Debug(0,"socket opened\n");
- KK=SendSocket(NONO,data10,strlen(data10));
- SetWord(@LW0@,1,KK);//发送字节
- LL=RecvSocket(NONO,data11,4096,2000);
- Delay(200);
- SetWord(@LW0@,20,LL);//接收字节
- Debug(0,"%s",data10);
- Debug(0,"%s",data11);
- //CloseSocket(NONO);
- }
- if(LL>0&&LL<5000)
- {
- unsigned char *pos = NULL;
- int offset = 0;
- for(i=0;i<12;i++){
- strcpy(nameBuffers[i],"无");
- temp[i]=0.0;
- humidity[i]=0.0;
- }
- while (index < 12 && (pos = strstr(data11 + offset, "\"roomName\":\"")) != NULL)
- {
- // 找到 "name":" 的位置
- offset = pos - data11 + strlen("\"roomName\":\""); // 移动到值的起始位置
- 
- unsigned char nameBuffer[100];
- int j = 0;
- 
- // 提取值直到遇到双引号
- while (data11[offset + j] != '"' && j < 99)
- {
- nameBuffer[j] = data11[offset + j];
- j++;
- }
- nameBuffer[j] = '\0'; // 添加字符串结束符
- 
- // 存入 nameBuffers
- strncpy(nameBuffers[index], nameBuffer, sizeof(nameBuffers[index]) - 1);
- nameBuffers[index][sizeof(nameBuffers[index]) - 1] = '\0';
- 
- // 转换为 UTF-16 并写入寄存器
- Utf8Str2Utf16Str(nameBuffers[index], nameBuffersUtf16[index]);
- //SetMem(nameBuffersUtf16[index], @LW0@, 100 + index * 100, 10);
- 
- index++; // 索引递增
- offset += j + 1; // 更新偏移,跳过当前字段
- }
- 
- }
- // 输出提取结果
- for (i = 0; i < 12; i++)
- {
- SetMem(nameBuffersUtf16[i], @LW0@, 100 + i * 100, 10);
- SetFloat(@LW0@, 100 + i * 100 + 30, temp[i]);
- SetFloat(@LW0@, 100 + i * 100 + 50, humidity[i]);
- }
- }</SourceCode><UniqueId>8a0f279b-1824-4547-81b4-f569659e8b72</UniqueId><Version>1</Version></MacroInfo>
|