HttpHelper.cs 99 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594
  1. using System;
  2. using System.Collections;
  3. using System.Collections.Generic;
  4. using System.IO;
  5. using System.Threading.Tasks;
  6. using UnityAsync;
  7. using Best.HTTP;
  8. using Best.HTTP.JSON;
  9. using Newtonsoft.Json;
  10. using Newtonsoft.Json.Serialization;
  11. using Newtonsoft.Json.Linq;
  12. using UnityEngine;
  13. using UnityEngine.Networking;
  14. using Unity.VisualScripting;
  15. using static System.Net.WebRequestMethods;
  16. using System.Linq;
  17. using UniTask = Cysharp.Threading.Tasks.UniTask;
  18. using UniTaskVoid = Cysharp.Threading.Tasks.UniTaskVoid;
  19. public class HttpHelper : MonoBehaviour
  20. {
  21. public Action OnSWYJRefresh;
  22. public static bool useAes = false;
  23. public static HttpHelper _Instance;
  24. public const int timeOut = 3;
  25. class DYServerAddress
  26. {
  27. public string YZTServerAddress;
  28. public string YZTServerPYAddress;
  29. public string Server_UploadPath;
  30. public string ModbusSeverAddress;
  31. public string ObsSeverAddress;
  32. public string ObsSeverM3U8Address;
  33. }
  34. void ChangeServerAddress()
  35. {
  36. //if (System.IO.File.Exists(Application.streamingAssetsPath + "/serverPath.json"))
  37. //{
  38. // string serverAddressContent = System.IO.File.ReadAllText(Application.streamingAssetsPath + "/serverPath.json");
  39. // Debug.Log(serverAddressContent);
  40. // DYServerAddress address = JsonConvert.DeserializeObject<DYServerAddress>(serverAddressContent);
  41. // ServerAddress.YZTServerAddress = address.YZTServerAddress;
  42. // ServerAddress.YZTServerPYAddress = address.YZTServerPYAddress;
  43. // ServerAddress.Server_UploadPath = address.Server_UploadPath;
  44. // ServerAddress.ModbusSeverAddress = address.ModbusSeverAddress;
  45. // ServerAddress.ObsSeverAddress = address.ObsSeverAddress;
  46. // Debug.Log(ServerAddress.ObsSeverAddress);
  47. // ServerAddress.ObsSeverM3U8Address = address.ObsSeverM3U8Address;
  48. //}
  49. }
  50. private async UniTaskVoid Awake()
  51. {
  52. _Instance = this;
  53. ChangeServerAddress();
  54. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page2 ||
  55. GlobalData.pageIndex == PageIndex.Page3)
  56. {
  57. Debug.Log("HttpInitYZTData");
  58. //可以并行,无需等待
  59. InitYZTData();
  60. }
  61. if (GlobalData._devicesIdDatas.Count < 1)
  62. {
  63. await GetSensorList();
  64. }
  65. if (GlobalData.pageIndex == PageIndex.Page1)
  66. {
  67. SendBuYuan_GetSensorData();
  68. SendTaoKou_GetSensorData();
  69. GetBuYuanDevicesGroupInfo();
  70. GetTaoKouDevicesGroupInfo();
  71. }
  72. if (GlobalData.pageIndex == PageIndex.Page2)
  73. {
  74. SendBuYuan_GetSensorData();
  75. SendTaoKou_GetSensorData();
  76. }
  77. if (GlobalData.pageIndex == PageIndex.Page1)
  78. {
  79. Debug.Log("InitXHGKData");
  80. //可以并行,无需等待
  81. InitXHGKData(); //已完成迁移
  82. }
  83. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page2)
  84. {
  85. Debug.Log("HttpInitGCJKData");
  86. //可以并行,无需等待
  87. InitGCJKData();
  88. InitGCJKData2();
  89. InitGCJKData1h();
  90. }
  91. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page3)
  92. {
  93. Debug.Log("HttpInitXHDDData");
  94. //可以并行,无需等待
  95. InitXHDDData0();
  96. InitXHDDData1();
  97. InitXHDDData2();
  98. InitXHDDData3();
  99. }
  100. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page3)
  101. {
  102. Debug.Log("HttpInitRKZYData");
  103. //可以并行,无需等待
  104. InitRKZYData();
  105. }
  106. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page2 || GlobalData.pageIndex == PageIndex.Page3)
  107. {
  108. Debug.Log("HttpInitSWYJData");
  109. //可以并行,无需等待
  110. InitSWYJData();
  111. }
  112. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page2)
  113. {
  114. GetGCYW_Station().Forget();
  115. Debug.Log("HttpInitGCYWData1");
  116. //可以并行,无需等待
  117. InitGCYWData1(0);
  118. }
  119. if (GlobalData.pageIndex == PageIndex.Page1 || GlobalData.pageIndex == PageIndex.Page2 ||
  120. GlobalData.pageIndex == PageIndex.Page3)
  121. {
  122. Debug.Log("HttpInitFloorGateData");
  123. InitFloorGateData();
  124. }
  125. if (GlobalData.pageIndex == PageIndex.Page2)
  126. {
  127. Debug.Log("HttpInitDPSWData");
  128. //InitDPSWData();
  129. InitDPXHQData();
  130. }
  131. if (GlobalData.pageIndex == PageIndex.Page2)
  132. {
  133. Debug.Log("HttpInitGCYWData2");
  134. InitGCYWData2();
  135. }
  136. if (GlobalData.pageIndex == PageIndex.Page2)
  137. {
  138. Debug.Log("HttpInitYJSJData2");
  139. InitYJSJData2();
  140. }
  141. }
  142. private async Task InitGCYWData2()
  143. {
  144. bool successInternet = true;
  145. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetInspectionStatistics);
  146. requestData.timeout = timeOut;
  147. await requestData.SendWebRequest();
  148. try
  149. {
  150. if (requestData.result != UnityWebRequest.Result.Success)
  151. {
  152. Debug.LogWarning("大屏运维数据联网不成功,读本地缓存数据,原因:返request不成功");
  153. successInternet = false;
  154. }
  155. else
  156. {
  157. string postResult = requestData.downloadHandler.text;
  158. if (useAes)
  159. {
  160. postResult = AESCrypto.Decrypt(postResult);
  161. }
  162. JObject jsonObject = JObject.Parse(postResult);
  163. // 提取data字段的值
  164. JToken dataToken = jsonObject["data"];
  165. JToken codeToken = jsonObject["code"];
  166. if (codeToken.ToString() == "200")
  167. {
  168. GlobalData.InspectionStat =
  169. JsonConvert.DeserializeObject<List<StationInspection>>(dataToken.ToString());
  170. }
  171. else
  172. {
  173. Debug.LogWarning("大屏运维数据联网不成功,读本地缓存数据,原因:返序列化失败");
  174. successInternet = false;
  175. }
  176. }
  177. }
  178. catch (Exception e)
  179. {
  180. successInternet = false;
  181. Debug.LogWarning("大屏运维数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  182. }
  183. requestData.Dispose();
  184. if (!successInternet)
  185. {
  186. WWW www = new WWW(Application.streamingAssetsPath + "/inspectionStatistics.json");
  187. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  188. GlobalData.InspectionStat = JsonConvert.DeserializeObject<List<StationInspection>>(www.text);
  189. www.Dispose();
  190. }
  191. }
  192. private async Task InitYJSJData2()
  193. {
  194. bool successInternet = true;
  195. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetAlertData);
  196. requestData.timeout = timeOut;
  197. await requestData.SendWebRequest();
  198. try
  199. {
  200. if (requestData.result != UnityWebRequest.Result.Success)
  201. {
  202. Debug.LogWarning("大屏预警数据联网不成功,读本地缓存数据,原因:返request不成功");
  203. successInternet = false;
  204. }
  205. else
  206. {
  207. string postResult = requestData.downloadHandler.text;
  208. if (useAes)
  209. {
  210. postResult = AESCrypto.Decrypt(postResult);
  211. }
  212. JObject jsonObject = JObject.Parse(postResult);
  213. // 提取data字段的值
  214. JToken dataToken = jsonObject["data"];
  215. JToken codeToken = jsonObject["code"];
  216. if (codeToken.ToString() == "200")
  217. {
  218. GlobalData.alertData = JsonConvert.DeserializeObject<AlertData>(dataToken.ToString());
  219. GlobalData.alertData.success = true;
  220. }
  221. else
  222. {
  223. Debug.LogWarning("大屏预警数据联网不成功,读本地缓存数据,原因:返序列化失败");
  224. successInternet = false;
  225. }
  226. }
  227. }
  228. catch (Exception e)
  229. {
  230. successInternet = false;
  231. Debug.LogWarning("大屏预警数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  232. }
  233. requestData.Dispose();
  234. if (!successInternet)
  235. {
  236. WWW www = new WWW(Application.streamingAssetsPath + "/alertData.json");
  237. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  238. Debug.Log(www.text);
  239. GlobalData.alertData = JsonConvert.DeserializeObject<AlertData>(www.text.ToString());
  240. GlobalData.alertData.success = true;
  241. Debug.Log(GlobalData.alertData.alerts.threeLineWarnings[0].title);
  242. www.Dispose();
  243. }
  244. }
  245. private async Task InitFloorGateData()
  246. {
  247. bool successInternet = true;
  248. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetFloodGateData);
  249. requestData.timeout = timeOut;
  250. await requestData.SendWebRequest();
  251. try
  252. {
  253. if (requestData.result != UnityWebRequest.Result.Success)
  254. {
  255. Debug.LogWarning("大屏闸口数据联网不成功,读本地缓存数据,原因:返request不成功");
  256. successInternet = false;
  257. }
  258. else
  259. {
  260. string postResult = requestData.downloadHandler.text;
  261. Debug.Log("大屏闸口数据:" + postResult);
  262. if (useAes)
  263. {
  264. postResult = AESCrypto.Decrypt(postResult);
  265. }
  266. JObject jsonObject = JObject.Parse(postResult);
  267. // 提取data字段的值
  268. JToken dataToken = jsonObject["data"];
  269. JToken codeToken = jsonObject["code"];
  270. if (codeToken.ToString() == "200")
  271. {
  272. Debug.Log(dataToken);
  273. GlobalData.floorGateData = JsonConvert.DeserializeObject<FloodGateStatusData>(dataToken.ToString());
  274. GlobalData.floorGateData.success = true;
  275. //Debug.Log("GlobalData.floorGateData.success:" + GlobalData.floorGateData.success);
  276. }
  277. else
  278. {
  279. Debug.LogWarning("大屏闸口数据联网不成功,读本地缓存数据,原因:返序列化失败");
  280. successInternet = false;
  281. }
  282. }
  283. }
  284. catch (Exception e)
  285. {
  286. successInternet = false;
  287. Debug.LogWarning("大屏闸口数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  288. }
  289. requestData.Dispose();
  290. if (!successInternet)
  291. {
  292. WWW www = new WWW(Application.streamingAssetsPath + "/floodGateStatusData.json");
  293. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  294. Debug.Log(www.text);
  295. GlobalData.floorGateData = JsonConvert.DeserializeObject<FloodGateStatusData>(www.text.ToString());
  296. GlobalData.floorGateData.success = true;
  297. www.Dispose();
  298. }
  299. }
  300. public async Task InitDPXHQData()
  301. {
  302. GlobalData.floodStorageArea = new FloodStorageArea();
  303. bool successInternet = true;
  304. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetDPXHQData);
  305. requestData.timeout = timeOut;
  306. await requestData.SendWebRequest();
  307. try
  308. {
  309. if (requestData.result != UnityWebRequest.Result.Success)
  310. {
  311. Debug.LogWarning("大屏蓄洪区数据联网不成功,读本地缓存数据,原因:返request不成功");
  312. successInternet = false;
  313. }
  314. else
  315. {
  316. string postResult = requestData.downloadHandler.text;
  317. if (useAes)
  318. {
  319. postResult = AESCrypto.Decrypt(postResult);
  320. }
  321. JObject jsonObject = JObject.Parse(postResult);
  322. // 提取data字段的值
  323. JToken dataToken = jsonObject["data"];
  324. JToken codeToken = jsonObject["code"];
  325. if (codeToken.ToString() == "200")
  326. {
  327. //LocationWeatherData data1 =
  328. // JsonConvert.DeserializeObject<LocationWeatherData>(dataToken.ToString());
  329. //GlobalData.locationWeatherData.Add(data1);
  330. }
  331. else
  332. {
  333. Debug.LogWarning("大屏蓄洪区数据联网不成功,读本地缓存数据,原因:返序列化失败");
  334. successInternet = false;
  335. }
  336. }
  337. }
  338. catch (Exception e)
  339. {
  340. successInternet = false;
  341. Debug.LogWarning("大屏蓄洪区数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  342. }
  343. if (!successInternet)
  344. {
  345. WWW www = new WWW(Application.streamingAssetsPath + "/xhq.json");
  346. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  347. // Debug.Log(www.text);
  348. GlobalData.floodStorageArea =
  349. JsonConvert.DeserializeObject<FloodStorageArea>(www.text.ToString());
  350. GlobalData.floodStorageArea.done = true;
  351. www.Dispose();
  352. //Debug.Log(GlobalData.floodStorageArea.pumpStations.value);
  353. }
  354. requestData.Dispose();
  355. }
  356. private async Task InitDPSWData()
  357. {
  358. GlobalData.locationWeatherData = new List<LocationWeatherData>();
  359. bool successInternet = true;
  360. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetHydrologicalData + "?projectType=1");
  361. requestData.timeout = timeOut;
  362. await requestData.SendWebRequest();
  363. try
  364. {
  365. if (requestData.result != UnityWebRequest.Result.Success)
  366. {
  367. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:返request不成功");
  368. successInternet = false;
  369. }
  370. else
  371. {
  372. string postResult = requestData.downloadHandler.text;
  373. if (useAes)
  374. {
  375. postResult = AESCrypto.Decrypt(postResult);
  376. }
  377. JObject jsonObject = JObject.Parse(postResult);
  378. // 提取data字段的值
  379. JToken dataToken = jsonObject["data"];
  380. JToken codeToken = jsonObject["code"];
  381. if (codeToken.ToString() == "200")
  382. {
  383. LocationWeatherData data1 =
  384. JsonConvert.DeserializeObject<LocationWeatherData>(dataToken.ToString());
  385. GlobalData.locationWeatherData.Add(data1);
  386. }
  387. else
  388. {
  389. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:返序列化失败");
  390. successInternet = false;
  391. }
  392. }
  393. }
  394. catch (Exception e)
  395. {
  396. successInternet = false;
  397. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  398. }
  399. UnityWebRequest requestData1 = UnityWebRequest.Get(ServerAddress.APIGetHydrologicalData + "?projectType=2");
  400. requestData1.timeout = timeOut;
  401. await requestData1.SendWebRequest();
  402. try
  403. {
  404. if (requestData1.result != UnityWebRequest.Result.Success)
  405. {
  406. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:返request不成功");
  407. successInternet = false;
  408. }
  409. else
  410. {
  411. JObject jsonObject = JObject.Parse(requestData1.downloadHandler.text);
  412. // 提取data字段的值
  413. JToken dataToken = jsonObject["data"];
  414. JToken codeToken = jsonObject["code"];
  415. if (codeToken.ToString() == "200")
  416. {
  417. LocationWeatherData data2 =
  418. JsonConvert.DeserializeObject<LocationWeatherData>(dataToken.ToString());
  419. GlobalData.locationWeatherData.Add(data2);
  420. }
  421. else
  422. {
  423. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:返序列化失败");
  424. successInternet = false;
  425. }
  426. }
  427. }
  428. catch (Exception e)
  429. {
  430. successInternet = false;
  431. Debug.LogWarning("大屏水文数据联网不成功,读本地缓存数据,原因:" + e.ToString());
  432. }
  433. requestData.Dispose();
  434. if (!successInternet)
  435. {
  436. WWW www = new WWW(Application.streamingAssetsPath + "/hydrologicalData.json");
  437. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  438. Debug.Log(www.text);
  439. GlobalData.locationWeatherData =
  440. JsonConvert.DeserializeObject<List<LocationWeatherData>>(www.text.ToString());
  441. www.Dispose();
  442. }
  443. }
  444. public async void InitYZTData()
  445. {
  446. await InitYZTData1(); //已完成迁移
  447. InitYZTData_BY_Obs(); //已完成迁移
  448. InitYZTData_TK_Obs(); //新增
  449. InitYZTData3(); //已完成迁移
  450. InitGCGKData();
  451. InitJKYJData();
  452. }
  453. public async Task InitYZTData1()
  454. {
  455. bool successInternet = true;
  456. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetWaterManagerProject);
  457. requestData.timeout = timeOut;
  458. await requestData.SendWebRequest();
  459. try
  460. {
  461. if (true)
  462. {
  463. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:返request不成功");
  464. successInternet = false;
  465. }
  466. else
  467. {
  468. string postResult = requestData.downloadHandler.text;
  469. if (useAes)
  470. {
  471. postResult = AESCrypto.Decrypt(postResult);
  472. }
  473. JObject jsonObject = JObject.Parse(postResult);
  474. // 提取data字段的值
  475. JToken dataToken = jsonObject["data"];
  476. JToken codeToken = jsonObject["code"];
  477. if (codeToken.ToString() == "200")
  478. {
  479. GlobalData.layerUnitDatas =
  480. JsonConvert.DeserializeObject<List<LayerUnitData>>(dataToken.ToString());
  481. }
  482. else
  483. {
  484. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:返序列化失败");
  485. successInternet = false;
  486. }
  487. }
  488. }
  489. catch (Exception e)
  490. {
  491. successInternet = false;
  492. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:" + e.ToString());
  493. }
  494. requestData.Dispose();
  495. if (!successInternet)
  496. {
  497. WWW www = new WWW(Application.streamingAssetsPath + "/layerUnitDatas.json");
  498. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  499. GlobalData.layerUnitDatas = JsonConvert.DeserializeObject<List<LayerUnitData>>(www.text);
  500. www.Dispose();
  501. }
  502. for (int i = 0; i < GlobalData.layerUnitDatas.Count; i++)
  503. {
  504. if (GlobalData.layerUnitDatas[i].type == LayerUnitType.JK)
  505. {
  506. if (!GlobalData.obsCameraLib.ContainsKey(GlobalData.layerUnitDatas[i].name))
  507. GlobalData.obsCameraLib.Add(GlobalData.layerUnitDatas[i].name, GlobalData.layerUnitDatas[i].namePri);
  508. }
  509. }
  510. }
  511. public async Task InitYZTData_BY_Obs()
  512. {
  513. bool successInternet = true;
  514. string sendUrl = ServerAddress.API_GetDevicesInfo;
  515. Debug.Log(ServerAddress.ObsSeverAddress);
  516. sendUrl += "/34020000001180000001/channels?page=1&count=100";
  517. Debug.Log(sendUrl);
  518. UnityWebRequest requestData = UnityWebRequest.Get(sendUrl);
  519. requestData.timeout = timeOut;
  520. await requestData.SendWebRequest();
  521. try
  522. {
  523. if (requestData.result != UnityWebRequest.Result.Success)
  524. {
  525. Debug.LogWarning("补元监控数据联网不成功,原因:返request不成功:" + requestData.error);
  526. successInternet = false;
  527. }
  528. else
  529. {
  530. Debug.Log("补元监控数据返回:" + requestData.downloadHandler.text);
  531. string postResult = requestData.downloadHandler.text;
  532. if (useAes)
  533. {
  534. postResult = AESCrypto.Decrypt(postResult);
  535. }
  536. JObject jsonObject = JObject.Parse(postResult);
  537. // 提取data字段的值
  538. JToken dataToken = jsonObject["data"];
  539. JToken codeToken = jsonObject["code"];
  540. if (codeToken.ToString() == "0")
  541. {
  542. GlobalData.obsDatas_by = new List<ObsData>();
  543. ServerObsDatas serverObsDatas = JsonConvert.DeserializeObject<ServerObsDatas>(dataToken.ToString());
  544. for (int i = 0; i < serverObsDatas.list.Count; i++)
  545. {
  546. ObsData obsData = new ObsData();
  547. string originName = serverObsDatas.list[i].name;
  548. obsData.name = "BY_" + serverObsDatas.list[i].name;
  549. //Debug.Log("111" + obsData.name);
  550. if (GlobalData.obsCameraLib.TryGetValue(obsData.name, out var value))
  551. {
  552. obsData.targetName = value;
  553. }
  554. obsData.type = obsType.BuYuanObs;
  555. obsData.deviceId = serverObsDatas.list[i].deviceId;
  556. obsData.channelId = serverObsDatas.list[i].channelId;
  557. GlobalData.obsDeviceIDLib.Add(obsData.name, obsData.channelId);
  558. obsData.status = serverObsDatas.list[i].status;
  559. GlobalData.obsDatas_by.Add(obsData);
  560. }
  561. }
  562. else
  563. {
  564. Debug.LogWarning("补元监控数据联网不成功,原因:返序列化失败");
  565. successInternet = false;
  566. }
  567. }
  568. }
  569. catch (Exception e)
  570. {
  571. successInternet = false;
  572. Debug.LogWarning("补元监控数据联网不成功,原因:" + e.ToString());
  573. }
  574. requestData.Dispose();
  575. if (!successInternet)
  576. {
  577. WWW www = new WWW(Application.streamingAssetsPath + "/ObsDatas_BY.json");
  578. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  579. Debug.Log($"缓存数据:{www.text}");
  580. GlobalData.obsDatas_by = JsonConvert.DeserializeObject<List<ObsData>>(www.text);
  581. www.Dispose();
  582. }
  583. }
  584. public async Task InitYZTData_TK_Obs()
  585. {
  586. bool successInternet = true;
  587. string sendUrl = ServerAddress.API_GetDevicesInfo;
  588. sendUrl += "/34020000001180000002/channels?page=1&count=100";
  589. Debug.Log(sendUrl);
  590. UnityWebRequest requestData = UnityWebRequest.Get(sendUrl);
  591. requestData.timeout = timeOut;
  592. await requestData.SendWebRequest();
  593. try
  594. {
  595. if (requestData.result != UnityWebRequest.Result.Success)
  596. {
  597. Debug.LogWarning("套口监控数据联网不成功,原因:返request不成功:" + requestData.error);
  598. successInternet = false;
  599. }
  600. else
  601. {
  602. Debug.Log("套口监控数据返回:" + requestData.downloadHandler.text);
  603. string postResult = requestData.downloadHandler.text;
  604. if (useAes)
  605. {
  606. postResult = AESCrypto.Decrypt(postResult);
  607. }
  608. JObject jsonObject = JObject.Parse(postResult);
  609. // 提取data字段的值
  610. JToken dataToken = jsonObject["data"];
  611. JToken codeToken = jsonObject["code"];
  612. if (codeToken.ToString() == "0")
  613. {
  614. GlobalData.obsDatas_tk = new List<ObsData>();
  615. ServerObsDatas serverObsDatas = JsonConvert.DeserializeObject<ServerObsDatas>(dataToken.ToString());
  616. for (int i = 0; i < serverObsDatas.list.Count; i++)
  617. {
  618. ObsData obsData = new ObsData();
  619. string originName = serverObsDatas.list[i].name;
  620. //Debug.Log("111111111111111:" + originName);
  621. obsData.name = "TK_" + serverObsDatas.list[i].name;
  622. if (GlobalData.obsCameraLib.TryGetValue(obsData.name, out var value))
  623. {
  624. obsData.targetName = value;
  625. }
  626. //obsData.url = await GetObsUrl(serverObsDatas.list[i].deviceId,serverObsDatas.list[i].channelId);
  627. //ServerAddress.ObsSeverM3U8Address + string.Format("/rtp/{0}_{1}/hls.m3u8", serverObsDatas.list[i].deviceId, serverObsDatas.list[i].channelId);
  628. //}
  629. obsData.type = obsType.TaoKouObs;
  630. obsData.deviceId = serverObsDatas.list[i].deviceId;
  631. obsData.channelId = serverObsDatas.list[i].channelId;
  632. GlobalData.obsDeviceIDLib.Add(obsData.name, obsData.channelId);
  633. obsData.status = serverObsDatas.list[i].status;
  634. GlobalData.obsDatas_tk.Add(obsData);
  635. }
  636. }
  637. else
  638. {
  639. Debug.LogWarning("套口监控数据联网不成功,原因:返序列化失败");
  640. successInternet = false;
  641. }
  642. }
  643. }
  644. catch (Exception e)
  645. {
  646. successInternet = false;
  647. Debug.LogWarning("套口监控数据联网不成功,原因:" + e.ToString());
  648. }
  649. requestData.Dispose();
  650. if (!successInternet)
  651. {
  652. WWW www = new WWW(Application.streamingAssetsPath + "/ObsDatas_TK.json");
  653. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  654. Debug.Log($"缓存数据:{www.text}");
  655. GlobalData.obsDatas_tk = JsonConvert.DeserializeObject<List<ObsData>>(www.text);
  656. www.Dispose();
  657. }
  658. }
  659. public async Task<string> GetObsUrl(string deviceId, string channelId)
  660. {
  661. string result = "";
  662. string cmdUrl = ServerAddress.API_PlayStart;
  663. cmdUrl += $"/{deviceId}/{channelId}?token=12345678";
  664. Debug.Log($"send:{cmdUrl}");
  665. UnityWebRequest requestData = UnityWebRequest.Get(cmdUrl);
  666. await requestData.SendWebRequest();
  667. if (requestData.result != UnityWebRequest.Result.Success)
  668. {
  669. Debug.LogWarning($"获取监控播放地址不成功,原因:返request不成功:" + requestData.downloadHandler.text);
  670. }
  671. else
  672. {
  673. Debug.Log(requestData.downloadHandler.text);
  674. string postResult = requestData.downloadHandler.text;
  675. if (useAes)
  676. {
  677. postResult = AESCrypto.Decrypt(postResult);
  678. }
  679. JObject jsonObject = JObject.Parse(postResult);
  680. // 提取data字段的值
  681. JToken dataToken = jsonObject["data"];
  682. ObsPlayUrlData urlData = JsonConvert.DeserializeObject<ObsPlayUrlData>(dataToken.ToString());
  683. if (urlData != null)
  684. {
  685. result = urlData.hls;
  686. Debug.Log("获取到监控播放路径:" + result);
  687. }
  688. }
  689. requestData.Dispose();
  690. return result;
  691. }
  692. public async Task InitYZTData3()
  693. {
  694. bool successInternet = true;
  695. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetWaterHotPoint);
  696. requestData.timeout = timeOut;
  697. await requestData.SendWebRequest();
  698. try
  699. {
  700. if (true)
  701. //if (requestData.result != UnityWebRequest.Result.Success)
  702. {
  703. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:返request不成功");
  704. successInternet = false;
  705. }
  706. else
  707. {
  708. string postResult = requestData.downloadHandler.text;
  709. if (useAes)
  710. {
  711. postResult = AESCrypto.Decrypt(postResult);
  712. }
  713. JObject jsonObject = JObject.Parse(postResult);
  714. // 提取data字段的值
  715. JToken dataToken = jsonObject["data"];
  716. JToken codeToken = jsonObject["code"];
  717. if (codeToken.ToString() == "200")
  718. {
  719. GlobalData.hotPointDatas = JsonConvert.DeserializeObject<List<HotPointData>>(dataToken.ToString());
  720. }
  721. else
  722. {
  723. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:返序列化失败");
  724. successInternet = false;
  725. }
  726. }
  727. }
  728. catch (Exception e)
  729. {
  730. successInternet = false;
  731. Debug.LogWarning("YZTLayer联网不成功,读本地缓存数据,原因:" + e.ToString());
  732. }
  733. requestData.Dispose();
  734. if (!successInternet)
  735. {
  736. WWW www = new WWW(Application.streamingAssetsPath + "/hotPoints.json");
  737. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  738. GlobalData.hotPointDatas = JsonConvert.DeserializeObject<List<HotPointData>>(www.text);
  739. Debug.Log(GlobalData.hotPointDatas.Count);
  740. www.Dispose();
  741. }
  742. }
  743. public async Task InitXHGKData()
  744. {
  745. bool successInternet = true;
  746. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetGetProjectMilestones);
  747. requestData.timeout = timeOut;
  748. await requestData.SendWebRequest();
  749. try
  750. {
  751. if (true)
  752. {
  753. Debug.LogWarning("XHGKLayer联网不成功,读本地缓存数据,原因:返request不成功");
  754. successInternet = false;
  755. }
  756. else
  757. {
  758. string postResult = requestData.downloadHandler.text;
  759. if (useAes)
  760. {
  761. postResult = AESCrypto.Decrypt(postResult);
  762. }
  763. JObject jsonObject = JObject.Parse(postResult);
  764. // ȡdata ֶε ֵ
  765. JToken dataToken = jsonObject["data"];
  766. //Debug.Log(dataToken.ToString());
  767. JToken codeToken = jsonObject["code"];
  768. if (codeToken.ToString() == "200")
  769. {
  770. GlobalData.dsjContents = JsonConvert.DeserializeObject<List<DSJData>>(dataToken.ToString());
  771. }
  772. else
  773. {
  774. Debug.LogWarning("XHGKLayer联网不成功,读本地缓存数据,原因:返序列化失败");
  775. successInternet = false;
  776. }
  777. }
  778. }
  779. catch (Exception e)
  780. {
  781. successInternet = false;
  782. Debug.LogWarning("XHGKLayer联网不成功,读本地缓存数据,原因:" + e.ToString());
  783. }
  784. requestData.Dispose();
  785. if (!successInternet)
  786. {
  787. WWW www = new WWW(Application.streamingAssetsPath + "/dsj.json");
  788. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  789. GlobalData.dsjContents = JsonConvert.DeserializeObject<List<DSJData>>(www.text);
  790. www.Dispose();
  791. }
  792. }
  793. /// <summary>
  794. /// 一张图首页工程概况
  795. /// </summary>
  796. /// <returns></returns>
  797. public async Task InitGCGKData()
  798. {
  799. bool successInternet = true;
  800. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetWaterGaiKuang);
  801. requestData.timeout = timeOut;
  802. await requestData.SendWebRequest();
  803. try
  804. {
  805. if (requestData.result != UnityWebRequest.Result.Success)
  806. {
  807. Debug.LogWarning("GCGK联网不成功,读本地缓存数据,原因:返request不成功");
  808. successInternet = false;
  809. }
  810. else
  811. {
  812. string postResult = requestData.downloadHandler.text;
  813. if (useAes)
  814. {
  815. postResult = AESCrypto.Decrypt(postResult);
  816. }
  817. JObject jsonObject = JObject.Parse(postResult);
  818. JToken dataToken = jsonObject["data"];
  819. //Debug.Log(dataToken.ToString());
  820. JToken codeToken = jsonObject["code"];
  821. if (codeToken.ToString() == "200")
  822. {
  823. //Debug.Log("1111111111:" + dataToken.ToString());
  824. GlobalData.gcgkContents = JsonConvert.DeserializeObject<List<GCGKData>>(dataToken.ToString());
  825. }
  826. else
  827. {
  828. Debug.LogWarning("GCGK联网不成功,读本地缓存数据,原因:返序列化失败");
  829. successInternet = false;
  830. }
  831. }
  832. }
  833. catch (Exception e)
  834. {
  835. successInternet = false;
  836. Debug.LogWarning("GCGK联网不成功,读本地缓存数据,原因:" + e.ToString());
  837. }
  838. requestData.Dispose();
  839. }
  840. /// <summary>
  841. /// 一张图首页监控预警
  842. /// </summary>
  843. /// <returns></returns>
  844. public async Task InitJKYJData()
  845. {
  846. bool successInternet = true;
  847. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetJKYJ + "buyuan");
  848. requestData.timeout = timeOut;
  849. await requestData.SendWebRequest();
  850. try
  851. {
  852. if (requestData.result != UnityWebRequest.Result.Success)
  853. {
  854. Debug.LogWarning("JKYJ-buyuan联网不成功,读本地缓存数据,原因:返request不成功");
  855. successInternet = false;
  856. }
  857. else
  858. {
  859. string postResult = requestData.downloadHandler.text;
  860. if (useAes)
  861. {
  862. postResult = AESCrypto.Decrypt(postResult);
  863. }
  864. JObject jsonObject = JObject.Parse(postResult);
  865. JToken dataToken = jsonObject["data"];
  866. //Debug.Log(dataToken.ToString());
  867. JToken codeToken = jsonObject["code"];
  868. if (codeToken.ToString() == "200")
  869. {
  870. //Debug.Log("1111111111:" + dataToken.ToString());
  871. GlobalData.byJKYJContents = JsonConvert.DeserializeObject<JKYJData>(dataToken.ToString());
  872. }
  873. else
  874. {
  875. Debug.LogWarning("JKYJ-buyuan联网不成功,读本地缓存数据,原因:返序列化失败");
  876. successInternet = false;
  877. }
  878. }
  879. }
  880. catch (Exception e)
  881. {
  882. successInternet = false;
  883. Debug.LogWarning("JKYJ-buyuan联网不成功,读本地缓存数据,原因:" + e.ToString());
  884. }
  885. requestData.Dispose();
  886. successInternet = true;
  887. UnityWebRequest requestData1 = UnityWebRequest.Get(ServerAddress.APIGetJKYJ + "taokou");
  888. requestData1.timeout = timeOut;
  889. await requestData1.SendWebRequest();
  890. try
  891. {
  892. if (requestData1.result != UnityWebRequest.Result.Success)
  893. {
  894. Debug.LogWarning("JKYJ-TAOKOU联网不成功,读本地缓存数据,原因:返request不成功");
  895. successInternet = false;
  896. }
  897. else
  898. {
  899. string postResult = requestData1.downloadHandler.text;
  900. Debug.Log(postResult);
  901. if (useAes)
  902. {
  903. postResult = AESCrypto.Decrypt(postResult);
  904. }
  905. JObject jsonObject = JObject.Parse(postResult);
  906. JToken dataToken = jsonObject["data"];
  907. //Debug.Log(dataToken.ToString());
  908. JToken codeToken = jsonObject["code"];
  909. if (codeToken.ToString() == "200")
  910. {
  911. //Debug.Log("1111111111:" + dataToken.ToString());
  912. GlobalData.tkJKYJContents = JsonConvert.DeserializeObject<JKYJData>(dataToken.ToString());
  913. }
  914. else
  915. {
  916. Debug.LogWarning("JKYJ-TAOKOU联网不成功,读本地缓存数据,原因:返序列化失败");
  917. successInternet = false;
  918. }
  919. }
  920. }
  921. catch (Exception e)
  922. {
  923. successInternet = false;
  924. Debug.LogWarning("JKYJ-TAOKOU联网不成功,读本地缓存数据,原因:" + e.ToString());
  925. }
  926. requestData1.Dispose();
  927. }
  928. public async Task InitGCJKData()
  929. {
  930. bool successInternet = true;
  931. //UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetGeQXZData);
  932. //requestData.timeout = timeOut;
  933. //await requestData.SendWebRequest();
  934. //try
  935. //{
  936. // if (requestData.result != UnityWebRequest.Result.Success)
  937. // {
  938. // Debug.LogWarning("水文站联网不成功,原因:返request不成功");
  939. // successInternet = false;
  940. // }
  941. // else
  942. // {
  943. // string postResult = requestData.downloadHandler.text;
  944. // if (useAes)
  945. // {
  946. // postResult = AESCrypto.Decrypt(postResult);
  947. // }
  948. // JObject jsonObject = JObject.Parse(postResult);
  949. // // 提取data字段的值
  950. // JToken dataToken = jsonObject["data"];
  951. // JToken codeToken = jsonObject["code"];
  952. // if (codeToken.ToString() == "200")
  953. // {
  954. // GlobalData.qXZDatas = JsonConvert.DeserializeObject<List<QXZData>>(dataToken.ToString());
  955. // }
  956. // else
  957. // {
  958. // Debug.LogWarning("水文站联网不成功,原因:返序列化失败");
  959. // successInternet = false;
  960. // }
  961. // }
  962. //}
  963. //catch (Exception e)
  964. //{
  965. // successInternet = false;
  966. // Debug.LogWarning("水文站联网不成功,原因:" + e.ToString());
  967. //}
  968. //requestData.Dispose();
  969. successInternet = true;
  970. UnityWebRequest requestData1 = UnityWebRequest.Get(ServerAddress.APIGetGeSWZData);
  971. await requestData1.SendWebRequest();
  972. try
  973. {
  974. if (requestData1.result != UnityWebRequest.Result.Success)
  975. {
  976. Debug.LogWarning("水文站联网不成功,原因:返request不成功");
  977. successInternet = false;
  978. }
  979. else
  980. {
  981. JObject jsonObject = JObject.Parse(requestData1.downloadHandler.text);
  982. // 提取data字段的值
  983. JToken dataToken = jsonObject["data"];
  984. JToken codeToken = jsonObject["code"];
  985. if (codeToken.ToString() == "200")
  986. {
  987. GlobalData.sWZDatas = JsonConvert.DeserializeObject<List<SWZData>>(dataToken.ToString());
  988. }
  989. else
  990. {
  991. Debug.LogWarning("水文站联网不成功,原因:返序列化失败");
  992. successInternet = false;
  993. }
  994. }
  995. }
  996. catch (Exception e)
  997. {
  998. successInternet = false;
  999. Debug.LogWarning("水文站联网不成功,原因:" + e.ToString());
  1000. }
  1001. requestData1.Dispose();
  1002. successInternet = true;
  1003. UnityWebRequest requestData2 = UnityWebRequest.Get(ServerAddress.APIGetGeSWZData6H);
  1004. await requestData2.SendWebRequest();
  1005. try
  1006. {
  1007. if (requestData2.result != UnityWebRequest.Result.Success)
  1008. {
  1009. Debug.LogWarning("水文站联网不成功,原因:返request不成功");
  1010. successInternet = false;
  1011. }
  1012. else
  1013. {
  1014. JObject jsonObject = JObject.Parse(requestData2.downloadHandler.text);
  1015. // 提取data字段的值
  1016. JToken dataToken = jsonObject["data"];
  1017. JToken codeToken = jsonObject["code"];
  1018. if (codeToken.ToString() == "200")
  1019. {
  1020. GlobalData.sWZDatas6H = JsonConvert.DeserializeObject<List<SWZData>>(dataToken.ToString());
  1021. }
  1022. else
  1023. {
  1024. Debug.LogWarning("水文站联网不成功,原因:返序列化失败");
  1025. successInternet = false;
  1026. }
  1027. }
  1028. }
  1029. catch (Exception e)
  1030. {
  1031. successInternet = false;
  1032. Debug.LogWarning("水文站联网不成功,原因:" + e.ToString());
  1033. }
  1034. requestData2.Dispose();
  1035. }
  1036. public async Task InitGCJKData1h()
  1037. {
  1038. bool successInternet = true;
  1039. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetGeQXZOneHourData);
  1040. requestData.timeout = timeOut;
  1041. await requestData.SendWebRequest();
  1042. try
  1043. {
  1044. if (requestData.result != UnityWebRequest.Result.Success)
  1045. {
  1046. Debug.LogWarning("水文站联网不成功,原因:返request不成功");
  1047. successInternet = false;
  1048. }
  1049. else
  1050. {
  1051. string postResult = requestData.downloadHandler.text;
  1052. if (useAes)
  1053. {
  1054. postResult = AESCrypto.Decrypt(postResult);
  1055. }
  1056. JObject jsonObject = JObject.Parse(postResult);
  1057. // 提取data字段的值
  1058. JToken dataToken = jsonObject["data"];
  1059. JToken codeToken = jsonObject["code"];
  1060. if (codeToken.ToString() == "200")
  1061. {
  1062. GlobalData.qXZDatas1h = JsonConvert.DeserializeObject<List<QXZData>>(dataToken.ToString());
  1063. }
  1064. else
  1065. {
  1066. Debug.LogWarning("水文站联网不成功,原因:返序列化失败");
  1067. successInternet = false;
  1068. }
  1069. }
  1070. }
  1071. catch (Exception e)
  1072. {
  1073. successInternet = false;
  1074. Debug.LogWarning("水文站联网不成功,原因:" + e.ToString());
  1075. }
  1076. requestData.Dispose();
  1077. }
  1078. public async Task InitGCJKData2()
  1079. {
  1080. GlobalData.sensorAlertDone = false;
  1081. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetSensorAlerts);
  1082. requestData.timeout = 2;
  1083. await requestData.SendWebRequest();
  1084. try
  1085. {
  1086. if (requestData.result != UnityWebRequest.Result.Success)
  1087. {
  1088. Debug.LogWarning("工程告警联网不成功,原因:返request不成功");
  1089. }
  1090. else
  1091. {
  1092. string postResult = requestData.downloadHandler.text;
  1093. if (useAes)
  1094. {
  1095. postResult = AESCrypto.Decrypt(postResult);
  1096. }
  1097. JObject jsonObject = JObject.Parse(postResult);
  1098. Debug.LogError(postResult.ToString());
  1099. // 提取data字段的值
  1100. JToken dataToken = jsonObject["data"];
  1101. JToken codeToken = jsonObject["code"];
  1102. if (codeToken.ToString() == "200")
  1103. {
  1104. GlobalData.sensorAlert = JsonConvert.DeserializeObject<SensorAlert>(dataToken.ToString());
  1105. GlobalData.sensorAlertDone = true;
  1106. }
  1107. else
  1108. {
  1109. Debug.LogWarning("工程告警联网不成功,原因:返序列化失败");
  1110. }
  1111. }
  1112. }
  1113. catch (Exception e)
  1114. {
  1115. Debug.LogWarning("工程告警联网不成功,原因:" + e.ToString());
  1116. }
  1117. }
  1118. public async Task InitXHDDData0()
  1119. {
  1120. WWW www = new WWW(Application.streamingAssetsPath + "/scheduling.json");
  1121. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  1122. GlobalData.schedulingData = JsonConvert.DeserializeObject<SchedulingData>(www.text);
  1123. www.Dispose();
  1124. }
  1125. public async Task InitXHDDData1()
  1126. {
  1127. WWW www = new WWW(Application.streamingAssetsPath + "/allAlert.json");
  1128. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  1129. GlobalData.xHDDAlertData = JsonConvert.DeserializeObject<XHDDAlertData>(www.text);
  1130. www.Dispose();
  1131. }
  1132. public async Task InitXHDDData2()
  1133. {
  1134. WWW www = new WWW(Application.streamingAssetsPath + "/rkzyld.json");
  1135. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  1136. GlobalData.emergencyResponseData = JsonConvert.DeserializeObject<EmergencyResponseData>(www.text);
  1137. www.Dispose();
  1138. }
  1139. public async Task InitXHDDData3()
  1140. {
  1141. WWW www = new WWW(Application.streamingAssetsPath + "/rkzygb.json");
  1142. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  1143. GlobalData.allRegionData = JsonConvert.DeserializeObject<AllRegionData>(www.text);
  1144. www.Dispose();
  1145. }
  1146. public async Task InitRKZYData()
  1147. {
  1148. bool successInternet = true;
  1149. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetGetMovePlans);
  1150. requestData.timeout = timeOut;
  1151. await requestData.SendWebRequest();
  1152. try
  1153. {
  1154. if (true)
  1155. {
  1156. Debug.LogWarning("RKZYLayer联网不成功,读本地缓存数据,原因:返request不成功");
  1157. successInternet = false;
  1158. }
  1159. else
  1160. {
  1161. string postResult = requestData.downloadHandler.text;
  1162. if (useAes)
  1163. {
  1164. postResult = AESCrypto.Decrypt(postResult);
  1165. }
  1166. JObject jsonObject = JObject.Parse(postResult);
  1167. // 提取data字段的值
  1168. JToken dataToken = jsonObject["data"];
  1169. JToken codeToken = jsonObject["code"];
  1170. if (codeToken.ToString() == "200")
  1171. {
  1172. GlobalData.allServerMovePlans =
  1173. JsonConvert.DeserializeObject<List<ServerMovePlan>>(dataToken.ToString());
  1174. }
  1175. else
  1176. {
  1177. successInternet = false;
  1178. Debug.LogWarning("XHGKLayer联网不成功,读本地缓存数据,原因:返序列化失败");
  1179. }
  1180. }
  1181. }
  1182. catch (Exception e)
  1183. {
  1184. successInternet = false;
  1185. Debug.LogWarning("RKZYLayer联网不成功,读本地缓存数据,原因:" + e.ToString());
  1186. }
  1187. if (!successInternet)
  1188. {
  1189. WWW www = new WWW(Application.streamingAssetsPath + "/moveplan.json");
  1190. await new UnityAsync.WaitUntil(() => { return www.isDone; });
  1191. GlobalData.allServerMovePlans = JsonConvert.DeserializeObject<List<ServerMovePlan>>(www.text);
  1192. www.Dispose();
  1193. }
  1194. }
  1195. public async Task InitSWYJData()
  1196. {
  1197. InitSWYJData0();
  1198. await InitSWYJData1();
  1199. await InitSWYJData2();
  1200. await InitSWYJData3();
  1201. await InitSWYJData4();
  1202. OnSWYJRefresh?.Invoke();
  1203. }
  1204. /// <summary>
  1205. /// 获取补元的水位
  1206. /// </summary>
  1207. /// <returns></returns>
  1208. public async Task InitSWYJData1()
  1209. {
  1210. var devicesInfo = GlobalData._devicesIdDatas["上游水位计"];
  1211. string sw1Result = await GetSingleDevicesInfo(2, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1212. "d", 10000);
  1213. //Debug.Log("sw1Resultsw1Resultsw1Result上游水位计:" + sw1Result);
  1214. try
  1215. {
  1216. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(sw1Result);
  1217. if (tempData != null)
  1218. {
  1219. bool findData = false;
  1220. foreach (var VARIABLE in GlobalData.BuYuanShuiWeiDataList)
  1221. {
  1222. if (VARIABLE.name.Equals("补元上游水位"))
  1223. {
  1224. VARIABLE.value = float.Parse(tempData.data[0].avgS1);
  1225. VARIABLE.datas = tempData.data.ToArray();
  1226. findData = true;
  1227. }
  1228. }
  1229. if (!findData)
  1230. {
  1231. GlobalData.BuYuanShuiWeiDataList.Add(new ShuiWeiData()
  1232. {
  1233. name = "补元上游水位",
  1234. targetName = "BY_ShuiWei_Up",
  1235. value = float.Parse(tempData.data[0].avgS1),
  1236. type = shuiWeiType.BuYuanShuiWei,
  1237. datas = tempData.data.ToArray(),
  1238. sid = devicesInfo.dataSid.ToString(),
  1239. gid = devicesInfo.dataGid.ToString()
  1240. });
  1241. }
  1242. }
  1243. }
  1244. catch (Exception e)
  1245. {
  1246. Debug.LogWarning("补元上游水位不成功,原因:" + e.ToString());
  1247. }
  1248. var devicesInfo1 = GlobalData._devicesIdDatas["下游水位计"];
  1249. string sw2Result = await GetSingleDevicesInfo(2, devicesInfo1.dataGid.ToString(), devicesInfo1.dataSid.ToString(),
  1250. "d", 100000);
  1251. Debug.Log("sw1Resultsw1Resultsw1Result下游水位计:" + sw2Result);
  1252. try
  1253. {
  1254. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(sw2Result);
  1255. if (tempData != null)
  1256. {
  1257. bool findData = false;
  1258. foreach (var VARIABLE in GlobalData.BuYuanShuiWeiDataList)
  1259. {
  1260. if (VARIABLE.name.Equals("补元下游水位"))
  1261. {
  1262. VARIABLE.value = float.Parse(tempData.data[0].avgS1);
  1263. VARIABLE.datas = tempData.data.ToArray();
  1264. findData = true;
  1265. }
  1266. }
  1267. if (!findData)
  1268. {
  1269. GlobalData.BuYuanShuiWeiDataList.Add(new ShuiWeiData()
  1270. {
  1271. name = "补元下游水位",
  1272. targetName = "BY_ShuiWei_Down",
  1273. value = float.Parse(tempData.data[0].avgS1),
  1274. type = shuiWeiType.BuYuanShuiWei,
  1275. datas = tempData.data.ToArray(),
  1276. sid = devicesInfo.dataSid.ToString(),
  1277. gid = devicesInfo.dataGid.ToString()
  1278. });
  1279. }
  1280. }
  1281. }
  1282. catch (Exception e)
  1283. {
  1284. Debug.LogWarning("补元下游水位不成功,原因:" + e.ToString());
  1285. }
  1286. string dayResult = await GetSingleDevicesInfo(2, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1287. "d", 6);
  1288. try
  1289. {
  1290. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(dayResult);
  1291. GlobalData.buYuanShuiWei_day = new ShuiWeiBianHuaData();
  1292. GlobalData.buYuanShuiWei_day.name = new string[tempData.data.Count];
  1293. GlobalData.buYuanShuiWei_day.value = new double[tempData.data.Count];
  1294. for (int i = 0; i < tempData.data.Count; i++)
  1295. {
  1296. GlobalData.buYuanShuiWei_day.name[i] = tempData.data[i].timeGroup;
  1297. GlobalData.buYuanShuiWei_day.value[i] = double.Parse(tempData.data[i].avgS1);
  1298. }
  1299. }
  1300. catch (Exception e)
  1301. {
  1302. Debug.LogWarning("获取6天平均数据不成功,原因:" + e.ToString());
  1303. }
  1304. string monthResult = await GetSingleDevicesInfo(2, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1305. "d", 90);
  1306. try
  1307. {
  1308. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(monthResult);
  1309. GlobalData.buYuanShuiWei_month = new ShuiWeiBianHuaData();
  1310. GlobalData.buYuanShuiWei_month.name = new string[tempData.data.Count];
  1311. GlobalData.buYuanShuiWei_month.value = new double[tempData.data.Count];
  1312. for (int i = 0; i < tempData.data.Count; i++)
  1313. {
  1314. GlobalData.buYuanShuiWei_month.name[i] = tempData.data[i].timeGroup;
  1315. GlobalData.buYuanShuiWei_month.value[i] = double.Parse(tempData.data[i].avgS1);
  1316. }
  1317. }
  1318. catch (Exception e)
  1319. {
  1320. Debug.LogWarning("获取6月平均数据不成功,原因:" + e.ToString());
  1321. }
  1322. string hourResult = await GetSingleDevicesInfo(2, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1323. "h", 6);
  1324. try
  1325. {
  1326. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(hourResult);
  1327. GlobalData.buYuanShuiWei_hour = new ShuiWeiBianHuaData();
  1328. GlobalData.buYuanShuiWei_hour.name = new string[tempData.data.Count];
  1329. GlobalData.buYuanShuiWei_hour.value = new double[tempData.data.Count];
  1330. for (int i = 0; i < tempData.data.Count; i++)
  1331. {
  1332. GlobalData.buYuanShuiWei_hour.name[i] = tempData.data[i].timeGroup;
  1333. GlobalData.buYuanShuiWei_hour.value[i] = double.Parse(tempData.data[i].avgS1);
  1334. }
  1335. }
  1336. catch (Exception e)
  1337. {
  1338. Debug.LogWarning("获取6小时平均数据不成功,原因:" + e.ToString());
  1339. }
  1340. }
  1341. public async Task InitSWYJData2()
  1342. {
  1343. var devicesInfo = GlobalData._devicesIdDatas["SWJ01YQ"];
  1344. Debug.Log(devicesInfo.dataGid);
  1345. Debug.Log(devicesInfo.dataSid);
  1346. string sw1Result = await GetSingleDevicesInfo(1, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(), "d", 10000);
  1347. try
  1348. {
  1349. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(sw1Result);
  1350. if (tempData != null)
  1351. {
  1352. bool findData = false;
  1353. foreach (var VARIABLE in GlobalData.TaoKouShuiWeiDataList)
  1354. {
  1355. if (VARIABLE.name.Equals("套口上游水位"))
  1356. {
  1357. VARIABLE.value = float.Parse(tempData.data[0].avgS1);
  1358. VARIABLE.datas = tempData.data.ToArray();
  1359. findData = true;
  1360. }
  1361. }
  1362. if (!findData)
  1363. {
  1364. GlobalData.TaoKouShuiWeiDataList.Add(new ShuiWeiData()
  1365. {
  1366. name = "套口上游水位",
  1367. targetName = "TK_ShuiWei_Up",
  1368. value = float.Parse(tempData.data[0].avgS1),
  1369. type = shuiWeiType.TaoKouShuiWei,
  1370. datas = tempData.data.ToArray(),
  1371. sid = devicesInfo.dataSid.ToString(),
  1372. gid = devicesInfo.dataGid.ToString()
  1373. });
  1374. }
  1375. }
  1376. }
  1377. catch (Exception e)
  1378. {
  1379. Debug.LogWarning("套口上游水位不成功,原因:" + e.ToString());
  1380. }
  1381. var devicesInfo1 = GlobalData._devicesIdDatas["SWJ02YQ"];
  1382. string sw2Result = await GetSingleDevicesInfo(1, devicesInfo1.dataGid.ToString(), devicesInfo1.dataSid.ToString(),
  1383. "d", 100000);
  1384. //Debug.Log("sw1Resultsw1Resultsw1Result下游水位计:" + sw2Result);
  1385. try
  1386. {
  1387. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(sw2Result);
  1388. if (tempData != null)
  1389. {
  1390. bool findData = false;
  1391. foreach (var VARIABLE in GlobalData.TaoKouShuiWeiDataList)
  1392. {
  1393. if (VARIABLE.name.Equals("套口下游水位"))
  1394. {
  1395. VARIABLE.value = float.Parse(tempData.data[0].avgS1);
  1396. VARIABLE.datas = tempData.data.ToArray();
  1397. findData = true;
  1398. }
  1399. }
  1400. if (!findData)
  1401. {
  1402. GlobalData.TaoKouShuiWeiDataList.Add(new ShuiWeiData()
  1403. {
  1404. name = "套口下游水位",
  1405. targetName = "TK_ShuiWei_Down",
  1406. value = float.Parse(tempData.data[0].avgS1),
  1407. type = shuiWeiType.TaoKouShuiWei,
  1408. datas = tempData.data.ToArray(),
  1409. sid = devicesInfo.dataSid.ToString(),
  1410. gid = devicesInfo.dataGid.ToString()
  1411. });
  1412. }
  1413. }
  1414. }
  1415. catch (Exception e)
  1416. {
  1417. Debug.LogWarning("套口下游水位不成功,原因:" + e.ToString());
  1418. }
  1419. string dayResult = await GetSingleDevicesInfo(1, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1420. "d", 6);
  1421. try
  1422. {
  1423. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(dayResult);
  1424. GlobalData.taoKouShuiWei_day = new ShuiWeiBianHuaData();
  1425. GlobalData.taoKouShuiWei_day.name = new string[tempData.data.Count];
  1426. GlobalData.taoKouShuiWei_day.value = new double[tempData.data.Count];
  1427. for (int i = 0; i < tempData.data.Count; i++)
  1428. {
  1429. GlobalData.taoKouShuiWei_day.name[i] = tempData.data[i].timeGroup;
  1430. GlobalData.taoKouShuiWei_day.value[i] = double.Parse(tempData.data[i].avgS1);
  1431. }
  1432. }
  1433. catch (Exception e)
  1434. {
  1435. Debug.LogWarning("获取6天平均数据不成功,原因:" + e.ToString());
  1436. }
  1437. string monthResult = await GetSingleDevicesInfo(1, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1438. "d", 90);
  1439. try
  1440. {
  1441. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(monthResult);
  1442. GlobalData.taoKouShuiWei_month = new ShuiWeiBianHuaData();
  1443. GlobalData.taoKouShuiWei_month.name = new string[tempData.data.Count];
  1444. GlobalData.taoKouShuiWei_month.value = new double[tempData.data.Count];
  1445. for (int i = 0; i < tempData.data.Count; i++)
  1446. {
  1447. GlobalData.taoKouShuiWei_month.name[i] = tempData.data[i].timeGroup;
  1448. GlobalData.taoKouShuiWei_month.value[i] = double.Parse(tempData.data[i].avgS1);
  1449. }
  1450. }
  1451. catch (Exception e)
  1452. {
  1453. Debug.LogWarning("获取6月平均数据不成功,原因:" + e.ToString());
  1454. }
  1455. string hourResult = await GetSingleDevicesInfo(1, devicesInfo.dataGid.ToString(), devicesInfo.dataSid.ToString(),
  1456. "h", 6);
  1457. try
  1458. {
  1459. GetSingleDevicesRequest tempData = JsonConvert.DeserializeObject<GetSingleDevicesRequest>(hourResult);
  1460. GlobalData.taoKouShuiWei_hour = new ShuiWeiBianHuaData();
  1461. GlobalData.taoKouShuiWei_hour.name = new string[tempData.data.Count];
  1462. GlobalData.taoKouShuiWei_hour.value = new double[tempData.data.Count];
  1463. for (int i = 0; i < tempData.data.Count; i++)
  1464. {
  1465. GlobalData.taoKouShuiWei_hour.name[i] = tempData.data[i].timeGroup;
  1466. GlobalData.taoKouShuiWei_hour.value[i] = double.Parse(tempData.data[i].avgS1);
  1467. }
  1468. }
  1469. catch (Exception e)
  1470. {
  1471. Debug.LogWarning("获取6小时平均数据不成功,原因:" + e.ToString());
  1472. }
  1473. }
  1474. public async Task InitSWYJData3()
  1475. {
  1476. bool successInternet = true;
  1477. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetGeSWData);
  1478. requestData.timeout = 6;
  1479. await requestData.SendWebRequest();
  1480. try
  1481. {
  1482. if (requestData.result != UnityWebRequest.Result.Success)
  1483. {
  1484. Debug.LogWarning("水位高度联网不成功,原因:返request不成功");
  1485. successInternet = false;
  1486. }
  1487. else
  1488. {
  1489. string postResult = requestData.downloadHandler.text;
  1490. if (useAes)
  1491. {
  1492. postResult = AESCrypto.Decrypt(postResult);
  1493. }
  1494. JObject jsonObject = JObject.Parse(postResult);
  1495. // 提取data字段的值
  1496. JToken dataToken = jsonObject["data"];
  1497. JToken codeToken = jsonObject["code"];
  1498. //Debug.LogError(dataToken);
  1499. if (codeToken.ToString() == "200")
  1500. {
  1501. //Debug.LogError(200);
  1502. GlobalData.swDatas = JsonConvert.DeserializeObject<List<StationData>>(dataToken.ToString());
  1503. //Debug.LogError(GlobalData.swDatas.Count);
  1504. for (int i = 0; i < GlobalData.swDatas.Count; i++)
  1505. {
  1506. GlobalData.swDatas[i].stnm = GlobalData.swDatas[i].stnm.Replace("(", "(").Replace(")", ")");
  1507. }
  1508. }
  1509. else
  1510. {
  1511. Debug.LogWarning("水位高度联网不成功,原因:返序列化失败");
  1512. successInternet = false;
  1513. }
  1514. //for (int i = 0; i < GlobalData.BuYuanShuiWeiDataList.Count; i++)
  1515. //{
  1516. // StationData stationData = new StationData();
  1517. // stationData.LGTD = 113.910187f;
  1518. // stationData.LTTD = 30.1765823f;
  1519. // stationData.STNM = GlobalData.BuYuanShuiWeiDataList[i].name;
  1520. // stationData.upz = GlobalData.BuYuanShuiWeiDataList[i].name.Contains("上")
  1521. // ? GlobalData.BuYuanShuiWeiDataList[i].value
  1522. // : -1;
  1523. // stationData.dwz = GlobalData.BuYuanShuiWeiDataList[i].name.Contains("下")
  1524. // ? GlobalData.BuYuanShuiWeiDataList[i].value
  1525. // : -1;
  1526. // GlobalData.swDatas.Add(stationData);
  1527. //}
  1528. }
  1529. }
  1530. catch (Exception e)
  1531. {
  1532. successInternet = false;
  1533. Debug.LogWarning("水位高度联网不成功,原因:" + e.ToString());
  1534. }
  1535. }
  1536. public async Task InitSWYJData4()
  1537. {
  1538. GlobalData.sWAlertDone = false;
  1539. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetAlerts);
  1540. requestData.timeout = 2;
  1541. await requestData.SendWebRequest();
  1542. try
  1543. {
  1544. if (requestData.result != UnityWebRequest.Result.Success)
  1545. {
  1546. Debug.LogWarning("水位告警联网不成功,原因:返request不成功");
  1547. }
  1548. else
  1549. {
  1550. string postResult = requestData.downloadHandler.text;
  1551. if (useAes)
  1552. {
  1553. postResult = AESCrypto.Decrypt(postResult);
  1554. }
  1555. JObject jsonObject = JObject.Parse(postResult);
  1556. // 提取data字段的值
  1557. JToken dataToken = jsonObject["rows"];
  1558. GlobalData.sWAlerts = JsonConvert.DeserializeObject<List<SWAlert>>(dataToken.ToString());
  1559. GlobalData.sWAlertDone = true;
  1560. }
  1561. }
  1562. catch (Exception e)
  1563. {
  1564. Debug.LogWarning("水位告警联网不成功,原因:" + e.ToString());
  1565. }
  1566. }
  1567. public async Task InitSWYJData0()
  1568. {
  1569. bool successInternet = true;
  1570. UnityWebRequest requestData = UnityWebRequest.Get(ServerAddress.APIGetThreeLevel);
  1571. requestData.timeout = timeOut;
  1572. await requestData.SendWebRequest();
  1573. try
  1574. {
  1575. if (requestData.result != UnityWebRequest.Result.Success)
  1576. {
  1577. Debug.LogWarning("三线水位联网不成功,原因:返request不成功");
  1578. successInternet = false;
  1579. }
  1580. else
  1581. {
  1582. string postResult = requestData.downloadHandler.text;
  1583. if (useAes)
  1584. {
  1585. postResult = AESCrypto.Decrypt(postResult);
  1586. }
  1587. JObject jsonObject = JObject.Parse(postResult);
  1588. // 提取data字段的值
  1589. JToken dataToken = jsonObject["data"];
  1590. JToken codeToken = jsonObject["code"];
  1591. if (codeToken.ToString() == "200")
  1592. {
  1593. GlobalData.threeLevelShuiWeiDatas =
  1594. JsonConvert.DeserializeObject<List<ThreeLevelShuiWeiData>>(dataToken.ToString());
  1595. }
  1596. else
  1597. {
  1598. Debug.LogWarning("三线水位联网不成功,原因:返序列化失败");
  1599. successInternet = false;
  1600. }
  1601. }
  1602. }
  1603. catch (Exception e)
  1604. {
  1605. successInternet = false;
  1606. Debug.LogWarning("三线水位联网不成功,原因:" + e.ToString());
  1607. }
  1608. }
  1609. public async Task SendBuYuan_GetSensorData()
  1610. {
  1611. UnityWebRequest www = UnityWebRequest.Get(ServerAddress.API_BuYuan_GetSensorData);
  1612. await www.SendWebRequest();
  1613. try
  1614. {
  1615. if (www.result != UnityWebRequest.Result.Success)
  1616. {
  1617. Debug.LogWarning("获取补元闸门设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1618. }
  1619. else
  1620. {
  1621. // Debug.Log("11111111111111111111:" + www.downloadHandler.text);
  1622. GlobalData.buYuanSensorData = JsonUtility.FromJson<SensorDataResult>(www.downloadHandler.text);
  1623. }
  1624. }
  1625. catch (Exception e)
  1626. {
  1627. Debug.LogWarning("获取补元闸门设备数据不成功,原因:" + e.ToString());
  1628. }
  1629. www.Dispose();
  1630. }
  1631. public async void GetBuYuanDevicesGroupInfo()
  1632. {
  1633. Debug.Log("获取补元所有渗压记");
  1634. //获取所有渗压记
  1635. //GetDevicesData tempData = new GetDevicesData();
  1636. //tempData.idsList = new List<DevicesMessage>();
  1637. foreach (var device in GlobalData._devicesIdDatas.Values)
  1638. {
  1639. if (device.stationName.Equals("补元") && device.sensorType.Equals("渗压计"))
  1640. {
  1641. GlobalData.BuYuanShuiYaDataList.Add(new ShuiYaData()
  1642. {
  1643. name = device.sensorName,
  1644. value = device.realtimeValue1,
  1645. type = shuiYaType.BuYuanShuiYa,
  1646. targetName = $"BY_{device.sensorName}",
  1647. gid = device.dataGid.ToString(),
  1648. sid = device.dataSid.ToString()
  1649. });
  1650. }
  1651. }
  1652. Debug.Log("添加补元渗压记:" + GlobalData.BuYuanShuiYaDataList.Count);
  1653. Debug.Log("获取补元所有位移记");
  1654. //获取所有位移记
  1655. foreach (var device in GlobalData._devicesIdDatas.Values)
  1656. {
  1657. if (device.stationName.Equals("补元") && device.sensorType.Equals("静力水准仪"))
  1658. {
  1659. GlobalData.BuYuanWeiYiDataList.Add(new WeiYiData()
  1660. {
  1661. name = device.sensorName,
  1662. value = device.realtimeValue1,
  1663. type = weiYiType.BuYuanWeiYi,
  1664. targetName = $"BY_{device.sensorName}",
  1665. gid = device.dataGid.ToString(),
  1666. sid = device.dataSid.ToString()
  1667. });
  1668. }
  1669. }
  1670. Debug.Log("添加补元位移记:" + GlobalData.BuYuanWeiYiDataList.Count);
  1671. }
  1672. public async void GetTaoKouDevicesGroupInfo()
  1673. {
  1674. Debug.Log("获取套口所有渗压记");
  1675. //获取所有渗压记
  1676. foreach (var device in GlobalData._devicesIdDatas.Values)
  1677. {
  1678. if (device.stationName.Equals("套口") && device.sensorType.Equals("渗压计"))
  1679. {
  1680. GlobalData.TaoKouShuiYaDataList.Add(new ShuiYaData()
  1681. {
  1682. name = device.sensorName,
  1683. value = device.realtimeValue1,
  1684. type = shuiYaType.TaoKouShuiYa,
  1685. targetName = $"TK_{device.sensorName}",
  1686. gid = device.dataGid.ToString(),
  1687. sid = device.dataSid.ToString()
  1688. });
  1689. }
  1690. }
  1691. Debug.Log("添加套口渗压记:" + GlobalData.TaoKouShuiYaDataList.Count);
  1692. Debug.Log("获取套口所有位移记");
  1693. //获取所有位移记
  1694. foreach (var device in GlobalData._devicesIdDatas.Values)
  1695. {
  1696. if (device.stationName.Equals("补元") && device.sensorType.Equals("静力水准仪"))
  1697. {
  1698. GlobalData.TaoKouWeiYiDataList.Add(new WeiYiData()
  1699. {
  1700. name = device.sensorName,
  1701. value = device.realtimeValue1,
  1702. type = weiYiType.TaoKouWeiYi,
  1703. targetName = $"TK_{device.sensorName}",
  1704. gid = device.dataGid.ToString(),
  1705. sid = device.dataSid.ToString()
  1706. });
  1707. }
  1708. }
  1709. Debug.Log("添加套口位移记:" + GlobalData.TaoKouWeiYiDataList.Count);
  1710. }
  1711. public async Task SendTaoKou_GetSensorData()
  1712. {
  1713. UnityWebRequest www = UnityWebRequest.Get(ServerAddress.API_TaoKou_GetSensorData);
  1714. await www.SendWebRequest();
  1715. try
  1716. {
  1717. if (www.result != UnityWebRequest.Result.Success)
  1718. {
  1719. Debug.LogWarning("获取套口闸门设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1720. }
  1721. else
  1722. {
  1723. GlobalData.taoKouSensorData = JsonUtility.FromJson<SensorDataResult>(www.downloadHandler.text);
  1724. Debug.Log($"获取套口闸门设备数据:{GlobalData.taoKouSensorData.data.Count}");
  1725. }
  1726. }
  1727. catch (Exception e)
  1728. {
  1729. Debug.LogWarning("获取套口闸门设备数据不成功,原因:" + e.ToString());
  1730. }
  1731. www.Dispose();
  1732. }
  1733. /// <summary>
  1734. /// 获取设备趋势数据
  1735. /// </summary>
  1736. /// <param name="type">0:补元 1:套口</param>
  1737. /// <param name="gid">=devicesID 套口都传一样=sid</param>
  1738. /// <param name="sid">=ChannelID 套口都传一样=sid</param>
  1739. /// <param name="beginTime">yyyy-MM-dd 最大183天</param>
  1740. /// <param name="endTime"></param>
  1741. /// <returns></returns>
  1742. public async Task<string> GetDeviceTrend(int type, string gid, string sid, string beginTime, string endTime)
  1743. {
  1744. string cmdUrl = ServerAddress.APIGetDeviceTrend;
  1745. cmdUrl += $"/{(type == 0 ? "buyuan" : "taokou")}/{gid}/{sid}?beginTime={beginTime}&endTime={endTime}";
  1746. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  1747. www.downloadHandler = new DownloadHandlerBuffer();
  1748. www.SetRequestHeader("Content-Type", "application/json");
  1749. Debug.Log("send:" + cmdUrl);
  1750. await www.SendWebRequest();
  1751. if (www.result != UnityWebRequest.Result.Success)
  1752. {
  1753. Debug.LogWarning("获取设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1754. }
  1755. string result = www.downloadHandler.text;
  1756. www.Dispose();
  1757. return result;
  1758. }
  1759. // /// <summary>
  1760. // /// 获取补元硬件组数据
  1761. // /// </summary>
  1762. // /// <param name="sendData"></param>
  1763. // /// <returns></returns>
  1764. // public async Task<string> Devices(GetDevicesData sendData)
  1765. // {
  1766. // string cmdUrl = ServerAddress.API_BuYuan_GetDevicesGroupInfo;
  1767. // string tempStr = JsonConvert.SerializeObject(sendData);
  1768. // var sendByte = System.Text.Encoding.UTF8.GetBytes(tempStr);
  1769. // UnityWebRequest www = new UnityWebRequest(cmdUrl, "POST");
  1770. // www.uploadHandler = new UploadHandlerRaw(sendByte);
  1771. // www.downloadHandler = new DownloadHandlerBuffer();
  1772. // www.SetRequestHeader("Content-Type", "application/json");
  1773. // await www.SendWebRequest();
  1774. // if (www.result != UnityWebRequest.Result.Success)
  1775. // {
  1776. // Debug.LogWarning($"获取设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1777. // }
  1778. // string result = www.downloadHandler.text;
  1779. // www.Dispose();
  1780. // return result;
  1781. // }
  1782. /// <summary>
  1783. /// 获取设备的最近N条记录
  1784. /// </summary>
  1785. /// <param name="channelId=gid"></param>
  1786. /// <param name="deviceId=sid"></param>
  1787. /// <param name="count"></param>
  1788. /// <returns></returns>
  1789. public async Task<string> GetSingleDevicesInfo(int type, string gid, string sid, string timeUnit, int count)
  1790. {
  1791. string cmdUrl = ServerAddress.API_BuYuan_GetSingleDevicesInfo;
  1792. cmdUrl += $"?dataFrom={type}&dataSid={sid}&dataGid={gid}&timeUnit={timeUnit}&number={count}";
  1793. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  1794. www.downloadHandler = new DownloadHandlerBuffer();
  1795. www.SetRequestHeader("Content-Type", "application/json");
  1796. await www.SendWebRequest();
  1797. if (www.result != UnityWebRequest.Result.Success)
  1798. {
  1799. Debug.LogWarning("获取设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1800. }
  1801. string result = www.downloadHandler.text;
  1802. www.Dispose();
  1803. return result;
  1804. }
  1805. /// <summary>
  1806. /// 获取设备最近几天的平均数据
  1807. /// </summary>
  1808. /// <param name="channelId"></param>
  1809. /// <param name="deviceId"></param>
  1810. /// <param name="count"></param>
  1811. /// <returns></returns>
  1812. public async Task<string> GetSingleDevicesInfo_day(int channelId, int deviceId, int count)
  1813. {
  1814. string cmdUrl = ServerAddress.API_BuYuan_GetSingleDevicesInfo_avg;
  1815. GetSingleDeviceData_AvgType sendData = new GetSingleDeviceData_AvgType();
  1816. sendData.ChannelID = channelId;
  1817. sendData.DeviceID = deviceId;
  1818. sendData.AvgType = "day";
  1819. sendData.N = count;
  1820. string tempStr = JsonConvert.SerializeObject(sendData);
  1821. var sendByte = System.Text.Encoding.UTF8.GetBytes(tempStr);
  1822. UnityWebRequest www = new UnityWebRequest(cmdUrl, "POST");
  1823. www.uploadHandler = new UploadHandlerRaw(sendByte);
  1824. www.downloadHandler = new DownloadHandlerBuffer();
  1825. www.SetRequestHeader("Content-Type", "application/json");
  1826. await www.SendWebRequest();
  1827. if (www.result != UnityWebRequest.Result.Success)
  1828. {
  1829. Debug.LogWarning("获取设备天平均数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1830. }
  1831. string result = www.downloadHandler.text;
  1832. www.Dispose();
  1833. return result;
  1834. }
  1835. /// <summary>
  1836. /// 获取设备最近几小时的平均数据
  1837. /// </summary>
  1838. /// <param name="channelId"></param>
  1839. /// <param name="deviceId"></param>
  1840. /// <param name="count"></param>
  1841. /// <returns></returns>
  1842. public async Task<string> GetSingleDevicesInfo_hour(int channelId, int deviceId, int count)
  1843. {
  1844. string cmdUrl = ServerAddress.API_BuYuan_GetSingleDevicesInfo_avg;
  1845. GetSingleDeviceData_AvgType sendData = new GetSingleDeviceData_AvgType();
  1846. sendData.ChannelID = channelId;
  1847. sendData.DeviceID = deviceId;
  1848. sendData.AvgType = "hour";
  1849. sendData.N = count;
  1850. string tempStr = JsonConvert.SerializeObject(sendData);
  1851. var sendByte = System.Text.Encoding.UTF8.GetBytes(tempStr);
  1852. UnityWebRequest www = new UnityWebRequest(cmdUrl, "POST");
  1853. www.uploadHandler = new UploadHandlerRaw(sendByte);
  1854. www.downloadHandler = new DownloadHandlerBuffer();
  1855. www.SetRequestHeader("Content-Type", "application/json");
  1856. await www.SendWebRequest();
  1857. if (www.result != UnityWebRequest.Result.Success)
  1858. {
  1859. Debug.LogWarning("获取设备小时平均数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1860. }
  1861. string result = www.downloadHandler.text;
  1862. www.Dispose();
  1863. return result;
  1864. }
  1865. /// <summary>
  1866. /// 获取设备最近几个月的平均数据
  1867. /// </summary>
  1868. /// <param name="channelId"></param>
  1869. /// <param name="deviceId"></param>
  1870. /// <param name="count"></param>
  1871. /// <returns></returns>
  1872. public async Task<string> GetSingleDevicesInfo_month(int channelId, int deviceId, int count)
  1873. {
  1874. string cmdUrl = ServerAddress.API_BuYuan_GetSingleDevicesInfo_avg;
  1875. GetSingleDeviceData_AvgType sendData = new GetSingleDeviceData_AvgType();
  1876. sendData.ChannelID = channelId;
  1877. sendData.DeviceID = deviceId;
  1878. sendData.AvgType = "month";
  1879. sendData.N = count;
  1880. string tempStr = JsonConvert.SerializeObject(sendData);
  1881. var sendByte = System.Text.Encoding.UTF8.GetBytes(tempStr);
  1882. UnityWebRequest www = new UnityWebRequest(cmdUrl, "POST");
  1883. www.uploadHandler = new UploadHandlerRaw(sendByte);
  1884. www.downloadHandler = new DownloadHandlerBuffer();
  1885. www.SetRequestHeader("Content-Type", "application/json");
  1886. await www.SendWebRequest();
  1887. if (www.result != UnityWebRequest.Result.Success)
  1888. {
  1889. Debug.LogWarning("获取设备月平均数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1890. }
  1891. string result = www.downloadHandler.text;
  1892. www.Dispose();
  1893. return result;
  1894. }
  1895. public async UniTaskVoid GetGCYW_Station()
  1896. {
  1897. Debug.Log("获取B08GCYW 站点列表");
  1898. using UnityWebRequest www = UnityWebRequest.Get(ServerAddress.API_B08_getStationList);
  1899. www.downloadHandler = new DownloadHandlerBuffer();
  1900. www.SetRequestHeader("Content-Type", "application/json");
  1901. await www.SendWebRequest();
  1902. if (www.result != UnityWebRequest.Result.Success)
  1903. {
  1904. Debug.LogWarning($"获取{ServerAddress.API_B08_getStationList}数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  1905. }
  1906. var jsonStr = www.downloadHandler.text;
  1907. www.Dispose();
  1908. Debug.Log(jsonStr);
  1909. var datas = JsonConvert.DeserializeObject<B08_StationListData>(jsonStr);
  1910. foreach (var data in datas.data)
  1911. {
  1912. GlobalData.B08StationList.TryAdd(data.name, data.id);
  1913. foreach (var chiles in data.children)
  1914. {
  1915. GlobalData.B08StationList.TryAdd(chiles.name, chiles.id);
  1916. foreach (var chilesChile in chiles.children)
  1917. {
  1918. GlobalData.B08StationList.TryAdd(chilesChile.name, chilesChile.id);
  1919. foreach (var chilesChilesChild in chiles.children)
  1920. {
  1921. GlobalData.B08StationList.TryAdd(chilesChilesChild.name, chilesChilesChild.id);
  1922. //三层应该没有儿子了吧 拉屎谁不会呢
  1923. }
  1924. }
  1925. }
  1926. }
  1927. //懒得搞直接获取所有属性
  1928. foreach (var key in GlobalData.B08StationList.Keys)
  1929. {
  1930. var StatisticsStr = await GetStatistics(GlobalData.B08StationList[key]);
  1931. B08_StatisticsInfo saveInfo = new B08_StatisticsInfo();
  1932. saveInfo.dates = new List<string>();
  1933. saveInfo.valueOfDates = new List<int>();
  1934. JObject jsonObject = JObject.Parse(StatisticsStr);
  1935. // 提取data字段的值
  1936. JToken dataToken = jsonObject["data"];
  1937. JToken statusCount = dataToken["statusCount"];
  1938. saveInfo.waitDispatch = statusCount?["0"] != null ? statusCount["0"].ToString() : "0";
  1939. saveInfo.waitPatrol = statusCount?["0"] != null ? statusCount["1"].ToString() : "0";
  1940. saveInfo.onPatrol = statusCount?["0"] != null ? statusCount["2"].ToString() : "0";
  1941. saveInfo.patrolCompleted = statusCount?["0"] != null ? statusCount["3"].ToString() : "0";
  1942. JObject dailyCountObj=(JObject)dataToken["dailyCount"];
  1943. foreach (var property in dailyCountObj.Properties())
  1944. {
  1945. saveInfo.dates.Add(property.Name);
  1946. saveInfo.valueOfDates.Add((int)property.Value);
  1947. }
  1948. GlobalData.B08StatisticsInfo.TryAdd(key, saveInfo);
  1949. }
  1950. Debug.Log("获取站点信息完毕");
  1951. }
  1952. public async Cysharp.Threading.Tasks.UniTask<string> GetStatistics(string stationId)
  1953. {
  1954. var result="";
  1955. var sendData = new PostStatisticsData
  1956. {
  1957. timeRange = new string[]
  1958. {
  1959. "2025-11-13", "2025-11-19"
  1960. },
  1961. startTime = "2025-11-13 00:00:00",
  1962. endTime = "2025-11-19 23:59:59",
  1963. ids = stationId
  1964. };
  1965. string tempStr = JsonConvert.SerializeObject(sendData);
  1966. var sendByte = System.Text.Encoding.UTF8.GetBytes(tempStr);
  1967. using UnityWebRequest www = new UnityWebRequest("http://58.19.230.46:9180/prod-api/project/workOrder/statistics","POST");
  1968. www.uploadHandler = new UploadHandlerRaw(sendByte);
  1969. www.downloadHandler = new DownloadHandlerBuffer();
  1970. www.SetRequestHeader("Content-Type", "application/json");
  1971. await www.SendWebRequest();
  1972. result = www.downloadHandler.text;
  1973. www.Dispose();
  1974. return result;
  1975. }
  1976. /// <summary>
  1977. /// 0 补元 1套口
  1978. /// </summary>
  1979. /// <param name="type"></param>
  1980. public async Task InitGCYWData1(int type)
  1981. {
  1982. Debug.Log($"获取B08GCYW 数据:{(type == 0 ? "补元" : "套口")}");
  1983. GlobalData.B08_Type = type;
  1984. string jsonStr;
  1985. try
  1986. {
  1987. jsonStr = await B08_API_data(ServerAddress.API_B08_dataStatis, type);
  1988. Debug.Log("API_B08_dataStatis" + jsonStr);
  1989. GlobalData.B08DataStatis = JsonConvert.DeserializeObject<B08_dataStatis>(jsonStr);
  1990. }
  1991. catch (Exception e)
  1992. {
  1993. Debug.LogWarning("获取API_B08_dataStatis数据不成功,原因:" + e.ToString());
  1994. }
  1995. try
  1996. {
  1997. jsonStr = await B08_API_data(ServerAddress.API_B08_inspectResult, type);
  1998. Debug.Log("API_B08_inspectResult" + jsonStr);
  1999. GlobalData.B08InspectResult = JsonConvert.DeserializeObject<B08_inspectResult>(jsonStr);
  2000. }
  2001. catch (Exception e)
  2002. {
  2003. Debug.LogWarning("获取API_B08_inspectResult数据不成功,原因:" + e.ToString());
  2004. }
  2005. try
  2006. {
  2007. jsonStr = await B08_API_data(ServerAddress.API_B08_projectExamine, type);
  2008. Debug.Log("API_B08_projectExamine" + jsonStr);
  2009. GlobalData.B08ProjectExamine = JsonConvert.DeserializeObject<B08_projectExamine>(jsonStr);
  2010. }
  2011. catch (Exception e)
  2012. {
  2013. Debug.LogWarning("获取API_B08_projectExamine数据不成功,原因:" + e.ToString());
  2014. }
  2015. try
  2016. {
  2017. jsonStr = await B08_API_data(ServerAddress.API_B08_event, type);
  2018. Debug.Log("API_B08_event" + jsonStr);
  2019. GlobalData.B08Event = JsonConvert.DeserializeObject<B08_event>(jsonStr);
  2020. }
  2021. catch (Exception e)
  2022. {
  2023. Debug.LogWarning("获取API_B08_event数据不成功,原因:" + e.ToString());
  2024. }
  2025. // try
  2026. // {
  2027. // jsonStr = await B08_API_data(ServerAddress.API_B08_questionStatis, type);
  2028. // Debug.Log("API_B08_questionStatis" + jsonStr);
  2029. // GlobalData.B08QuestionStatis = JsonConvert.DeserializeObject<B08_questionStatis>(jsonStr);
  2030. // }
  2031. // catch (Exception e)
  2032. // {
  2033. // Debug.LogWarning("获取API_B08_questionStatis数据不成功,原因:" + e.ToString());
  2034. // }
  2035. }
  2036. public async Task B08_GetTaskList()
  2037. {
  2038. string jsonStr;
  2039. try
  2040. {
  2041. jsonStr = await B08_API_GetToken();
  2042. GetToken tokenResult= JsonConvert.DeserializeObject<GetToken>(jsonStr);
  2043. //Debug.Log("GetToken:" + tokenResult.data.token);
  2044. token = tokenResult.data.token;
  2045. }
  2046. catch (Exception e)
  2047. {
  2048. Debug.LogWarning("GetToken不成功,原因:" + e.ToString());
  2049. }
  2050. try
  2051. {
  2052. jsonStr = await B08_API_TaskInfoList(1,999);
  2053. //Debug.Log("B08_API_TaskInfoList" + jsonStr);
  2054. GlobalData.B08TaskListData = JsonConvert.DeserializeObject<B08_TaskListInfoData>(jsonStr);
  2055. //Debug.Log("GlobalData.B08TaskListData: "+GlobalData.B08TaskListData.rows.Length);
  2056. // GlobalData.B08TaskListInfos = new B08_TaskListInfoData[GlobalData.B08InspectType.data.Length];
  2057. for (int i = 0; i < GlobalData.B08TaskListData.rows.Length; i++)
  2058. {
  2059. string tempResult = await B08_API_TaskInfo(GlobalData.B08TaskListData.rows[i].id);
  2060. //Debug.Log($"B08_API_TaskInfo id={GlobalData.B08TaskListData.rows[i].id}:" + tempResult);
  2061. var tempInfo= JsonConvert.DeserializeObject<B08_TaskInfo>(tempResult);
  2062. if (tempInfo != null)
  2063. {
  2064. GlobalData.B08TaskListData.rows[i].infoData = tempInfo.Data;
  2065. }
  2066. else
  2067. {
  2068. Debug.Log("tempInfo null! :"+tempResult);
  2069. }
  2070. string taskLocationResult = await B08_API_TaskLocation(GlobalData.B08TaskListData.rows[i].id);
  2071. Debug.Log($"taskLocationResult id={GlobalData.B08TaskListData.rows[i].id}:" + taskLocationResult);
  2072. GlobalData.B08TaskListData.rows[i].infoData.Locations = JsonConvert.DeserializeObject<B08_TaskLocationData>(taskLocationResult).data.locations;
  2073. }
  2074. }
  2075. catch (Exception e)
  2076. {
  2077. Debug.LogWarning("获取B08_API_TaskInfo数据不成功,原因:" + e.ToString());
  2078. }
  2079. }
  2080. public string token;
  2081. public async Task<string> B08_API_data(string cmdUrl, int type)
  2082. {
  2083. if (type == 0)
  2084. {
  2085. cmdUrl += "1794245918999351298";
  2086. }
  2087. else if (type == 1)
  2088. {
  2089. cmdUrl += "1798366756789653505";
  2090. }
  2091. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2092. www.downloadHandler = new DownloadHandlerBuffer();
  2093. www.SetRequestHeader("Content-Type", "application/json");
  2094. await www.SendWebRequest();
  2095. if (www.result != UnityWebRequest.Result.Success)
  2096. {
  2097. Debug.LogWarning($"获取{cmdUrl}数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2098. }
  2099. string result = www.downloadHandler.text;
  2100. www.Dispose();
  2101. return result;
  2102. }
  2103. // public async Task<string> B08_API_TaskInfo(int type, int xunjian_type)
  2104. // {
  2105. // string cmdUrl = ServerAddress.API_B08_taskInfo;
  2106. // if (type == 0)
  2107. // {
  2108. // cmdUrl += "1794245918999351298";
  2109. // }
  2110. // else if (type == 1)
  2111. // {
  2112. // cmdUrl += "1798366756789653505";
  2113. // }
  2114. //
  2115. // cmdUrl += "&xunjian_type=" + xunjian_type;
  2116. // Debug.Log("!!!:" + cmdUrl);
  2117. // UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2118. // www.downloadHandler = new DownloadHandlerBuffer();
  2119. // www.SetRequestHeader("Content-Type", "application/json");
  2120. // await www.SendWebRequest();
  2121. // if (www.result != UnityWebRequest.Result.Success)
  2122. // {
  2123. // Debug.LogWarning($"获取B08_API_TaskInfo type={type} 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2124. // }
  2125. // string result = www.downloadHandler.text;
  2126. // www.Dispose();
  2127. // return result;
  2128. // }
  2129. public async Task<string> B08_API_GetToken()
  2130. {
  2131. string cmdUrl = ServerAddress.API_GetToken;
  2132. //Debug.Log("!!!:" + cmdUrl);
  2133. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Post");
  2134. www.downloadHandler = new DownloadHandlerBuffer();
  2135. www.SetRequestHeader("Content-Type", "application/json");
  2136. await www.SendWebRequest();
  2137. if (www.result != UnityWebRequest.Result.Success)
  2138. {
  2139. Debug.LogWarning($"获取API_GetToken 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2140. }
  2141. string result = www.downloadHandler.text;
  2142. www.Dispose();
  2143. return result;
  2144. }
  2145. public async Task<string> B08_API_TaskInfoList(int page,int pageSize)
  2146. {
  2147. string cmdUrl = ServerAddress.API_B08_taskInfoList;
  2148. cmdUrl += $"?pageNum={page}&pageSize={pageSize}";
  2149. Debug.Log("!!!:" + cmdUrl +" token:"+token);
  2150. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2151. www.downloadHandler = new DownloadHandlerBuffer();
  2152. www.SetRequestHeader("Content-Type", "application/json");
  2153. www.SetRequestHeader("Authorization", "Bearer "+token);
  2154. await www.SendWebRequest();
  2155. if (www.result != UnityWebRequest.Result.Success)
  2156. {
  2157. Debug.LogWarning($"获取B08_API_TaskInfoList page={page} pageSize={pageSize} 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2158. }
  2159. string result = www.downloadHandler.text;
  2160. www.Dispose();
  2161. return result;
  2162. }
  2163. public async Task<string> B08_API_TaskInfo(string id)
  2164. {
  2165. string cmdUrl = ServerAddress.API_B08_taskInfo;
  2166. cmdUrl += $"/{id}";
  2167. Debug.Log("!!!:" + cmdUrl +" token:"+token);
  2168. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2169. www.downloadHandler = new DownloadHandlerBuffer();
  2170. www.SetRequestHeader("Content-Type", "application/json");
  2171. www.SetRequestHeader("Authorization", "Bearer "+token);
  2172. await www.SendWebRequest();
  2173. if (www.result != UnityWebRequest.Result.Success)
  2174. {
  2175. Debug.LogWarning($"获取API_B08_taskInfo id={id} 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2176. }
  2177. string result = www.downloadHandler.text;
  2178. www.Dispose();
  2179. return result;
  2180. }
  2181. public async Task<string> B08_API_TaskInfoItems(string id)
  2182. {
  2183. string cmdUrl = ServerAddress.API_B08_taskItems;
  2184. cmdUrl += $"/{id}/taskItems";
  2185. //Debug.Log("!!!:" + cmdUrl +" token:"+token);
  2186. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2187. www.downloadHandler = new DownloadHandlerBuffer();
  2188. www.SetRequestHeader("Content-Type", "application/json");
  2189. www.SetRequestHeader("Authorization", "Bearer "+token);
  2190. await www.SendWebRequest();
  2191. if (www.result != UnityWebRequest.Result.Success)
  2192. {
  2193. Debug.LogWarning($"获取B08_API_TaskInfoItems id={id} 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2194. }
  2195. string result = www.downloadHandler.text;
  2196. www.Dispose();
  2197. return result;
  2198. }
  2199. public async Task<string> B08_API_TaskLocation(string id)
  2200. {
  2201. string cmdUrl = ServerAddress.API_B08_taskLocation;
  2202. cmdUrl += $"/{id}?useOptimized=true&includeWorkOrderInfo=true&limit=100";
  2203. Debug.Log("!!!:" + cmdUrl +" token:"+token);
  2204. UnityWebRequest www = new UnityWebRequest(cmdUrl, "Get");
  2205. www.downloadHandler = new DownloadHandlerBuffer();
  2206. www.SetRequestHeader("Content-Type", "application/json");
  2207. www.SetRequestHeader("Authorization", "Bearer "+token);
  2208. await www.SendWebRequest();
  2209. if (www.result != UnityWebRequest.Result.Success)
  2210. {
  2211. Debug.LogWarning($"获取API_B08_taskLocation id={id} 数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2212. }
  2213. string result = www.downloadHandler.text;
  2214. www.Dispose();
  2215. return result;
  2216. }
  2217. /// <summary>
  2218. /// 获取站点水位图表
  2219. /// </summary>
  2220. /// <param name="stcd"></param>
  2221. /// <returns></returns>
  2222. public async Task<string> GetWaterTrend_Chart(string stcd,string startDate,string endDate)
  2223. {
  2224. UnityWebRequest www = new UnityWebRequest(ServerAddress.API_GetWaterTrend_chart + stcd + "&startDate=" + startDate + "&endDate=" + endDate, "Get");
  2225. Debug.Log(ServerAddress.API_GetWaterTrend_chart + stcd + "&startDate=" + startDate + "&endDate=" + endDate);
  2226. www.downloadHandler = new DownloadHandlerBuffer();
  2227. www.SetRequestHeader("Content-Type", "application/json");
  2228. await www.SendWebRequest();
  2229. if (www.result != UnityWebRequest.Result.Success)
  2230. {
  2231. Debug.LogWarning($"获取stcd:{stcd},水位统计信息数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2232. }
  2233. string result = www.downloadHandler.text;
  2234. www.Dispose();
  2235. return result;
  2236. }
  2237. public async Task<string> GetDropTrend_Chart(string stcd, string startDate, string endDate)
  2238. {
  2239. UnityWebRequest www = new UnityWebRequest(ServerAddress.API_GetDropTrend_chart + stcd + "&startDate=" + startDate + "&endDate=" + endDate, "Get");
  2240. www.downloadHandler = new DownloadHandlerBuffer();
  2241. www.SetRequestHeader("Content-Type", "application/json");
  2242. await www.SendWebRequest();
  2243. if (www.result != UnityWebRequest.Result.Success)
  2244. {
  2245. Debug.LogWarning($"获取stcd:{stcd},水位统计信息数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2246. }
  2247. string result = www.downloadHandler.text;
  2248. www.Dispose();
  2249. return result;
  2250. }
  2251. public async Task<string> GetWaterTrend_Info(string stcd)
  2252. {
  2253. UnityWebRequest www = new UnityWebRequest(ServerAddress.API_GetWaterTrend_info + stcd, "Get");
  2254. www.downloadHandler = new DownloadHandlerBuffer();
  2255. www.SetRequestHeader("Content-Type", "application/json");
  2256. await www.SendWebRequest();
  2257. if (www.result != UnityWebRequest.Result.Success)
  2258. {
  2259. Debug.LogWarning($"获取stcd:{stcd},水位统计信息数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2260. }
  2261. string result = www.downloadHandler.text;
  2262. www.Dispose();
  2263. return result;
  2264. }
  2265. public void SaveFirstFrame(byte[] uploadData, string fileName, string _targetName)
  2266. {
  2267. StartCoroutine(SendSaveFirstFrame(uploadData, fileName, _targetName));
  2268. }
  2269. IEnumerator SendSaveFirstFrame(byte[] uploadData, string fileName, string _targetName)
  2270. {
  2271. //fileName = "1.jpg";
  2272. WWWForm form = new WWWForm();
  2273. form.AddBinaryData("file", uploadData, fileName);
  2274. UnityWebRequest www = UnityWebRequest.Post(ServerAddress.API_TextureUploadPath, form);
  2275. yield return www.SendWebRequest();
  2276. if (www.result == UnityWebRequest.Result.Success)
  2277. {
  2278. ActionInstance._Instance.obsFmUpdata?.Invoke(_targetName);
  2279. }
  2280. Debug.Log(www.downloadHandler.text);
  2281. www.Dispose();
  2282. }
  2283. #region 摄像头远程控制
  2284. public void GetDeviceChannelId(string deviceId, Action<string> callBack)
  2285. {
  2286. StartCoroutine(SendGetDevicesChannel(deviceId, 1, 1, callBack));
  2287. }
  2288. IEnumerator SendGetDevicesChannel(string deviceId, int page, int count, Action<string> call)
  2289. {
  2290. string sendUrl = ServerAddress.API_GetDevicesInfo;
  2291. sendUrl += $"/{deviceId}/channels?page={page}&count={count}&query&online&channelType&catalogUnderDevice";
  2292. UnityWebRequest www = UnityWebRequest.Get(sendUrl);
  2293. yield return www.SendWebRequest();
  2294. ObsHttpRequestData tempData = JsonConvert.DeserializeObject<ObsHttpRequestData>(www.downloadHandler.text);
  2295. GetObsChannelRequestData channelData = tempData.data.ToObject<GetObsChannelRequestData>();
  2296. call?.Invoke(channelData.list[0].channelId);
  2297. www.Dispose();
  2298. }
  2299. IEnumerator SendStartRTSP(string deviceId, string channelId)
  2300. {
  2301. string sendUrl = ServerAddress.API_PlayStart;
  2302. sendUrl += $"/{deviceId}/{channelId}";
  2303. UnityWebRequest www = UnityWebRequest.Get(sendUrl);
  2304. yield return www.SendWebRequest();
  2305. Debug.Log(www.downloadHandler.text);
  2306. www.Dispose();
  2307. }
  2308. public void SendObsCameraCtrlCmd(string deviceId, string channelId, ObsCtrlType type)
  2309. {
  2310. StartCoroutine(SendCameraCtrl(deviceId, channelId, type.ToString()));
  2311. }
  2312. IEnumerator SendCameraCtrl(string deviceId, string channelId, string command)
  2313. {
  2314. string sendUrl = ServerAddress.API_CameraCtrl;
  2315. sendUrl += $"/{deviceId}/{channelId}?command={command}&horizonSpeed=10&verticalSpeed=10&zoomSpeed=10";
  2316. UnityWebRequest www = UnityWebRequest.Post(sendUrl, "");
  2317. Debug.Log("send:" + sendUrl);
  2318. yield return www.SendWebRequest();
  2319. Debug.Log(www.downloadHandler.text);
  2320. www.Dispose();
  2321. }
  2322. #endregion
  2323. // /// <summary>
  2324. // /// 所有硬件设备的获取信息
  2325. // /// </summary>
  2326. public async Task GetSensorList()
  2327. {
  2328. bool successInternet = true;
  2329. UnityWebRequest www = UnityWebRequest.Get(ServerAddress.API_GetAllSensorList);
  2330. www.timeout = timeOut;
  2331. await www.SendWebRequest();
  2332. try
  2333. {
  2334. if (www.result != UnityWebRequest.Result.Success)
  2335. {
  2336. successInternet = false;
  2337. Debug.LogWarning("获取设备数据不成功,原因:返request不成功:" + www.downloadHandler.text);
  2338. }
  2339. else
  2340. {
  2341. Debug.Log($"设备列表json :{www.downloadHandler.text}");
  2342. SensorListResult tempData = JsonUtility.FromJson<SensorListResult>(www.downloadHandler.text);
  2343. GlobalData._devicesIdDatas = new Dictionary<string, DevicesId_Data>();
  2344. for (int i = 0; i < tempData.rows.Count; i++)
  2345. {
  2346. GlobalData._devicesIdDatas.Add(tempData.rows[i].sensorName, tempData.rows[i]);
  2347. }
  2348. Debug.Log($"初始化设备列表成功!!! count:{tempData.total}");
  2349. }
  2350. }
  2351. catch (Exception e)
  2352. {
  2353. successInternet = false;
  2354. Debug.LogWarning("获取设备数据不成功,原因:" + e.ToString());
  2355. }
  2356. www.Dispose();
  2357. if (!successInternet)
  2358. {
  2359. WWW localWWW = new WWW(Application.streamingAssetsPath + "/SensorList.json");
  2360. await new UnityAsync.WaitUntil(() => { return localWWW.isDone; });
  2361. SensorListResult tempData = JsonUtility.FromJson<SensorListResult>(localWWW.text);
  2362. GlobalData._devicesIdDatas = new Dictionary<string, DevicesId_Data>();
  2363. for (int i = 0; i < tempData.rows.Count; i++)
  2364. {
  2365. GlobalData._devicesIdDatas.Add(tempData.rows[i].sensorName, tempData.rows[i]);
  2366. }
  2367. Debug.Log($"读取本地初始化设备列表成功!!! count:{tempData.total}");
  2368. www.Dispose();
  2369. }
  2370. }
  2371. }