1WordLW.B1.0truetrueLOCAL:[本地寄存器]:LW.B1.05942dc1f-588b-4485-88a4-8a07f240b2f815a63eb5-743b-45d1-8f6c-7f5fa91f8a9a165791truetruetruetruetrue1true4Constantlw1LW1trueWordLOCAL:[本地寄存器]:LW15942dc1f-588b-4485-88a4-8a07f240b2f857c236a9-b302-4f5b-81bb-8d4d3c3333f6165791truetruetruetrue1true4Constant2WordLB0truetrueLOCAL:[本地寄存器]:LB05942dc1f-588b-4485-88a4-8a07f240b2f82acfc59f-7eb4-4964-8cad-23dfa08e6de4254truetruetruetruetrue4ConstantLW09LW0trueWordLOCAL:[本地寄存器]:LW05942dc1f-588b-4485-88a4-8a07f240b2f8facafe6c-f8ec-4c7e-9202-a4b1e2e162fc65791truetruetruetrue1true4Constant3WordLB0truetrueLOCAL:[本地寄存器]:LB05942dc1f-588b-4485-88a4-8a07f240b2f89effc23b-314f-4015-aa2a-ba452f8cde86254truetruetruetruetrue4ConstantRW06RW0trueWordLOCAL:[本地寄存器]:RW05942dc1f-588b-4485-88a4-8a07f240b2f8725dfe52-d699-4065-82be-30f2f19268b765789truetruetruetrue1true4Constant4LB0truetrueLOCAL:[本地寄存器]:LB05942dc1f-588b-4485-88a4-8a07f240b2f852a2c3e6-62a7-4103-9bc6-014909550198254truetruetruetruetrue4ConstantLB04LW0trueWordLOCAL:[本地寄存器]:LW05942dc1f-588b-4485-88a4-8a07f240b2f81b5276fa-6f8b-4810-a853-b85540eb384965791truetruetruetrue1true4Constantmacro_1macro_1.ctrue#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]); } }8a0f279b-1824-4547-81b4-f569659e8b721