GQ_Communicate/GQ_URP/GQ/Assets/Scripts/WJ/Robot/RobotDataManager.cs

1008 lines
111 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using System;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Net.WebSockets;
using System.Text;
using System.Threading;
using UnityEngine;
using static InterfaceManager;
public class RobotDataManager : MonoBehaviour
{
public static RobotDataManager Inst;
[Header("响应成功码")]
public string rtCode = "0";
#region
/// <summary>
/// 开始获取下发指令按键获取监听
/// </summary>
[HideInInspector] public bool obtainListening = false;
/// <summary>
/// 是否初始化数据
/// </summary>
private bool init_data;
/// <summary>
/// 是否已获取【机器人列表】
/// </summary>
private bool get_robot_list_done;
/// <summary>
/// 是否已获取【机柜列表】
/// </summary>
private bool get_catrbin_list_done;
/// <summary>
/// 是否已获取【机器人地图数据】
/// </summary>
private bool get_robot_map_done;
/// <summary>
/// 是否已获取【定点任务-巡检点列表获取】、【机器人地图数据】
/// </summary>
private bool get_data_after_init_robot;
/// <summary>
/// 机器人信息接收次数
/// </summary>
private int get_info_times = 0;
#endregion
#region
/// <summary>
///
/// </summary>
[Header("【机器人列表】数据")]
public string ResponseDataJson;
#endregion
#region
/// <summary>
/// 【机器人列表】数据集合
/// </summary>
[Header("【机器人列表】数据集合")] public List<RobotClass> RobotList = new List<RobotClass>();
/// <summary>
/// 【机器人列表】数据集合
/// </summary>
[Header("【巡检数据】数据集合")] public List<Inspection> InspectionList = new List<Inspection>();
/// <summary>
/// 【机柜列表】数据集合
/// </summary>
[Header("【机柜列表】数据集合")] public List<CabinClass> CarbinList = new List<CabinClass>();
/// <summary>
/// 【定点任务-巡检点列表】数据集合
/// </summary>
[Header("【定点任务-巡检点列表】数据集合")] public List<RobotFixedPointins> RobotFixedPointsins = new List<RobotFixedPointins>();
[Header("【机柜&巡检点】数据集合")]
public RootCabinDictionary rootCabinDictionary = new RootCabinDictionary();
/// <summary>
/// 【机器人地图】数据
/// </summary>
[Header("【机器人地图】数据")] public RobotMap RobotMap = new RobotMap();
/// <summary>
/// 【机器人任务队列】数据
/// </summary>
[Header("【机器人任务队列】数据")] public RobotTask RobotTask = new RobotTask();
/// <summary>
/// 【巡检报表数据】
/// </summary>
[Header("【巡检报表数据】")] public InsReport InsReport = new InsReport();
///// <summary>
///// 【机器人位置状态信息】数据队列
///// </summary>
//public Queue<RobotPos> RobotPosQueue = new Queue<RobotPos>();
/// <summary>
/// 【机器人信息】
/// </summary>
[Header("【机器人信息】")] public Queue<RobotInfo[]> RobotInfosQueue = new Queue<RobotInfo[]>();
#endregion
#region
/// <summary>
/// 机器人对象
/// </summary>
public RobotObject RobotObject;
#endregion
#region
public Action<string, string> action_Base64;
#endregion
bool restart_WS;
public WebSocketT socketT = new WebSocketT();
/// <summary>
/// 机器人ID与机器人任务ID
/// </summary>
public Dictionary<string, string> id_insId = new Dictionary<string, string>();
private void Awake()
{
Inst = this;
}
// Start is called before the first frame update
void Start()
{
///获取配置信息
StartCoroutine(GetRequest(Path.Combine(Application.streamingAssetsPath, "robot.txt"), null, null, (_error, _json) =>
{
if (_error != null)
{
Debug.Log("请求【配置信息】错误:" + _error);
return;
}
JObject _j = JObject.Parse(_json);
http_ip_address = _j["http"].ToString();
ws_ip_address = _j["ws"].ToString();
http_ip_ma_address = _j["http_ma"].ToString();
isLive = true;
}));
///存储Base64
action_Base64 = EncodeBase64;
}
private void EncodeBase64(string _base64, string _id)
{
if (string.IsNullOrEmpty(_base64) || string.IsNullOrEmpty(_id))
return;
Debug.Log("准备上传热成像至数据库!");
BASE64_INTERFACE bASE64_ = new BASE64_INTERFACE
{
instructId = _id,
inspectionResult = _base64,
};
_base64 = JsonConvert.SerializeObject(bASE64_);
StartCoroutine(CombineJSON.UpdateJson_POST(GameManager.Inst.Jk_URL.jqr_bctp, GameManager.Inst.arguments.token, _base64, (x) =>
{
if (x != null)
{
Debug.Log("上传热成像至数据库成功!");
}
else
Debug.Log("上传热成像至数据库失败!");
}));
}
//public List<string> _pno;
// Update is called once per frame
void Update()
{
Init();
//if (Input.GetKeyUp(KeyCode.Y))
//{
// //UsageExample(_pno);
// for (int i = 0; i < RobotFixedPointsins.Count; i++)
// {
// Debug.Log(RobotFixedPointsins[i].pointNo);
// }
//}
//if (Input.GetKeyUp(KeyCode.J))
//{
// UsageExample(rootCabinDictionary.cabinDictionaries[0].pointNos);
//}
}
/// <summary>
/// 需要Start中获取的数据在此执行
/// 等待Start完成本地文件读取后执行
/// </summary>
public void Init()
{
if (!init_data && isLive)
{
init_data = true;
Debug.Log("初始化数据");
//获取机器人列表
StartCoroutine(GetRequest(http_ip_address + get_robot_list, request_header, null, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("请求【机器人列表】错误:" + _error);
return;
//_data = "{\"rtCode\":\"0\",\"rtMsg\":\"机器人配置列表获取成功\",\"rtData\":{\"pageNum\":1,\"pageSize\":15,\"size\":1,\"startRow\":1,\"endRow\":1,\"total\":1,\"pages\":1,\"list\":[{\"statusStr\":\"任务中\",\"modelId\":1,\"robotName\":\"巡检机器人\",\"updateTime\":\"2023-12-15 13:16:47\",\"remark\":null,\"modelType\":\"1\",\"ipAddr\":\"192.168.8.198\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"roomName\":\"H1\",\"pileout_time\":\"\",\"picUrl\":\"\",\"robot_status\":\"\",\"taskScheduStatus\":null,\"robot_id\":\"56ce6c39b8144d91ac3767e757933955\",\"name\":\"巡检机器人\",\"onOffLineStatus\":\"1\",\"model\":\"WI-100\",\"id\":\"56ce6c39b8144d91ac3767e757933955\",\"power\":\"46\",\"runStatus\":\"运行中\",\"status\":\"5\"}],\"prePage\":0,\"nextPage\":0,\"isFirstPage\":true,\"isLastPage\":true,\"hasPreviousPage\":false,\"hasNextPage\":false,\"navigatePages\":8,\"navigatepageNums\":[1],\"navigateFirstPage\":1,\"navigateLastPage\":1,\"firstPage\":1,\"lastPage\":1}}";
_data = ResponseDataJson;
}
Debug.Log("获取机器人列表:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
Debug.Log(_response.rtMsg);
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
if (_jobject != null)
{
Debug.Log("获取机器人列表2" + _jobject["list"]);
RobotList = _jobject["list"].ToObject<List<RobotClass>>();
//实例化实体机器人
//RobotObject.RobotClass = RobotList[0];
if (RobotList.Count > 0)
RobotObject.robotClass = RobotList[0];
Debug.Log($"实例化实体机器人成功,RobotClass__robot_id{RobotObject.robotClass.robot_id},RobotList_robot_id{RobotList[0].robot_id} ,RobotClass{RobotObject.robotClass != null}");
}
else
{
Debug.Log("实例化实体机器人失败");
}
}
get_robot_list_done = true;
}));
Dictionary<string, string> request_headerlist = new Dictionary<string, string>();
request_headerlist.Add("Authorization", "none");
Dictionary<string, string> request_querylist = new Dictionary<string, string>();
request_querylist.Add("pageSize", "10");
request_querylist.Add("currentPage", "1");
request_querylist.Add("robotId", "56ce6c39b8144d91ac3767e757933955");
request_querylist.Add("taskType", "fixed");
request_querylist.Add("isExport", "false");
request_querylist.Add("startTime", "");
request_querylist.Add("endTime", "");
//获取巡检报告接口
StartCoroutine(GetRequest(http_ip_address + get_record_list, request_headerlist, request_querylist, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("请求【获取巡检报告接口】错误:" + _error);
return; // 打包取消注释
_data = WebInteraction.Inst.inspectionData;//测试数据 打包注释
}
Debug.Log("获取巡检报告接口:" + _data);
var _response = JsonConvert.DeserializeObject<InspectionData>(_data);
Debug.Log(_response.rtMsg);
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
if (_jobject != null)
{
InspectionList = _jobject["list"].ToObject<List<Inspection>>();
RobotReturnData.Inst.initInspection(InspectionList);
}
else
{
Debug.Log("实例化巡检报告失败");
}
}
}));
//获取机柜列表
StartCoroutine(GetRequest(http_ip_address + get_cabin_list, request_header, new Dictionary<string, string>() { { "isExport", "false" }, { "pageSize", "200" } }, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("请求【机柜列表】错误:" + _error);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"机柜列表获取成功\",\"rtData\":{\"pageNum\":1,\"pageSize\":15,\"size\":15,\"startRow\":1,\"endRow\":15,\"total\":71,\"pages\":5,\"list\":[{\"id\":\"e4d661e0931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R72\",\"name\":\"R72省网/5.8G LTE/LoRa设备屏\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:52\",\"updateTime\":\"2023-12-05 10:27:52\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d64bad931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R71\",\"name\":\"R71 省网/5G MEC设备屏\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:51\",\"updateTime\":\"2023-12-05 10:27:51\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d63351931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R70\",\"name\":\"UPS电源屏2\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:50\",\"updateTime\":\"2023-12-05 10:27:50\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d60b53931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R69\",\"name\":\"UPS电源屏1\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:49\",\"updateTime\":\"2023-12-05 10:27:49\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d5ed7d931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R68\",\"name\":\"R68 省网/通信专用UPS电源屏\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:48\",\"updateTime\":\"2023-12-05 10:27:48\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d5d019931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R67\",\"name\":\"R67 省网/中兴OTN屏II\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:47\",\"updateTime\":\"2023-12-05 10:27:47\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d5b309931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R66\",\"name\":\"R66 省网/中兴OTN屏I\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:46\",\"updateTime\":\"2023-12-05 10:27:46\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d59500931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R65\",\"name\":\"光传输SDH中兴S385\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:45\",\"updateTime\":\"2023-12-05 14:12:11\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d56d14931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R64\",\"name\":\"智能穿戴屏\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:44\",\"updateTime\":\"2023-12-05 10:27:44\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d54edc931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R63\",\"name\":\"智能巡检屏3\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:43\",\"updateTime\":\"2023-12-05 10:27:43\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d52d8f931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R62\",\"name\":\"智能巡检屏2\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:42\",\"updateTime\":\"2023-12-05 10:27:42\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d50b98931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R61\",\"name\":\"智能巡检屏1\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:41\",\"updateTime\":\"2023-12-05 10:27:41\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d4ecce931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R60\",\"name\":\"三维系统屏\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:40\",\"updateTime\":\"2023-12-05 10:27:40\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d4c565931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R59\",\"name\":\"R59 省检/辅助设备运检网关机\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:39\",\"updateTime\":\"2023-12-05 10:27:39\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0},{\"id\":\"e4d4a702931511ee8ea90242ac0a0006\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"serialNo\":\"H1R58\",\"name\":\"R58 省检/变电站设备采控装置\",\"type\":\"01\",\"description\":null,\"baseUrl\":null,\"unum\":\"02200059\",\"widthHeight\":\"0x0x0\",\"createUid\":\"1\",\"status\":\"0\",\"createTime\":\"2023-12-05 10:27:38\",\"updateTime\":\"2023-12-05 10:27:38\",\"width\":null,\"height\":null,\"deep\":null,\"borderSize\":\"02200059\",\"typeCode\":null,\"typeName\":\"IT机柜\",\"roomName\":\"H1\",\"deviceNum\":0}],\"prePage\":0,\"nextPage\":2,\"isFirstPage\":true,\"isLastPage\":false,\"hasPreviousPage\":false,\"hasNextPage\":true,\"navigatePages\":8,\"navigatepageNums\":[1,2,3,4,5],\"navigateFirstPage\":1,\"navigateLastPage\":5,\"firstPage\":1,\"lastPage\":5}}";
}
Debug.Log("获取机柜列表:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
Debug.Log(_response.rtMsg);
List<CabinDictionary> _cabinDictionaries = new List<CabinDictionary>();
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
if (_jobject != null)
{
CarbinList = _jobject["list"].ToObject<List<CabinClass>>();
}
}
for (int i = 0; i < CarbinList.Count; i++)
{
_cabinDictionaries.Add(new CabinDictionary
{
id = CarbinList[i].id,
name = (CarbinList[i].serialNo.ToString()).Replace(CarbinList[i].roomName.ToString(), "")
});
}
rootCabinDictionary.cabinDictionaries = _cabinDictionaries;
get_catrbin_list_done = true;
}));
}
if (get_robot_list_done && get_catrbin_list_done && !get_data_after_init_robot)
{
get_data_after_init_robot = true;
if (RobotList.Count < 1)
{
Debug.Log("机器人列表小于1");
return;
}
//获取定点任务-巡检点列表
StartCoroutine(GetRequest(http_ip_address + get_robot_fixed_pointins, request_header, new Dictionary<string, string>() { { "roomId", RobotList[0].roomId }, { "pageSize", "200" } }, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("请求【定点任务-巡检点列表】错误:" + _error);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"定点巡检数据获取成功!\",\"rtData\":[{\"cabinId\":\"e4d59500931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj01\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R65\",\"sequence\":1,\"cabinTypeName\":\"IT机柜\",\"id\":\"113d8cab8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"光传输SDH中兴S385\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d5b309931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj02\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R66\",\"sequence\":2,\"cabinTypeName\":\"IT机柜\",\"id\":\"113e4da38ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R66 省网/中兴OTN屏I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d5d019931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj03\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R67\",\"sequence\":3,\"cabinTypeName\":\"IT机柜\",\"id\":\"113e6cfc8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R67 省网/中兴OTN屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d5ed7d931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj04\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R68\",\"sequence\":4,\"cabinTypeName\":\"IT机柜\",\"id\":\"113e7fb78ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R68 省网/通信专用UPS电源屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d64bad931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj06\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R71\",\"sequence\":5,\"cabinTypeName\":\"IT机柜\",\"id\":\"113e93d78ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R71 省网/5G MEC设备屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d661e0931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj07\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R72\",\"sequence\":6,\"cabinTypeName\":\"IT机柜\",\"id\":\"113ea4848ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R72省网/5.8G LTE/LoRa设备屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"cs03\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":7,\"cabinTypeName\":null,\"id\":\"113eb52f8ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":\"e4d421a0931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj08\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R54\",\"sequence\":8,\"cabinTypeName\":\"IT机柜\",\"id\":\"113ec74d8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R54 省检/全光纤式电流互感器运行状态监视屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d4473f931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj09\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R55\",\"sequence\":9,\"cabinTypeName\":\"IT机柜\",\"id\":\"113eda318ffb11eeb00f0242ac0a0005\",\"cabinName\":\"GNS800在线监测系统屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d0924d931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj10\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R33\",\"sequence\":10,\"cabinTypeName\":\"IT机柜\",\"id\":\"113efb6f8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R33国网/宾金线SDH设备屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d0d06f931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj11\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R34\",\"sequence\":11,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f0f918ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R34宾金线光路子系统屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d0fda6931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj12\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R35\",\"sequence\":12,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f23968ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R35宾金线光路子系统光迅\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d129df931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj14\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"PPCK97Y02\",\"sequence\":13,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f35c18ffb11eeb00f0242ac0a0005\",\"cabinName\":\"II区通信网关机柜\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d16669931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj15\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"PPCK97Y01\",\"sequence\":14,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f443e8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"I区通信网关机柜\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d1ce56931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj16\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R40\",\"sequence\":15,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f535d8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R40 变电站智能运检管控一体化\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4c5daa8931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj17\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R01\",\"sequence\":16,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f71548ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R01省网/高频开关电源屏I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ca0db9931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj18\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R02\",\"sequence\":17,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f8d038ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R02-省网/直流配电屏I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ca6aa7931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj19\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R03\",\"sequence\":18,\"cabinTypeName\":\"IT机柜\",\"id\":\"113f9ae28ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R03省网/直流配电屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cace1a931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj20\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R04\",\"sequence\":19,\"cabinTypeName\":\"IT机柜\",\"id\":\"113facee8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R04省网/高频开关电源屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cafeea931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj21\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R05\",\"sequence\":20,\"cabinTypeName\":\"IT机柜\",\"id\":\"113fc2ca8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R05省检/扩音广播呼叫系统屏I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cb3b92931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj22\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R06\",\"sequence\":21,\"cabinTypeName\":\"IT机柜\",\"id\":\"113fd6228ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R06省检/扩音广播呼叫系统屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cb6cc7931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj23\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R07\",\"sequence\":22,\"cabinTypeName\":\"IT机柜\",\"id\":\"113fe9e08ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R07省检网络配线屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cba2e1931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj24\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R08\",\"sequence\":23,\"cabinTypeName\":\"IT机柜\",\"id\":\"113ffdd88ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R08省检综合数据网屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl01\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":24,\"cabinTypeName\":null,\"id\":\"1140144d8ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl02\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":25,\"cabinTypeName\":null,\"id\":\"114031778ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":\"e4cbefbf931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj25\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R09\",\"sequence\":26,\"cabinTypeName\":\"IT机柜\",\"id\":\"114042b78ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R09省网/调度交换机/广哈MAP512\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cc246a931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj26\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R10\",\"sequence\":27,\"cabinTypeName\":\"IT机柜\",\"id\":\"1140538f8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R10省检调度录音系统屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ccc342931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj28\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R13\",\"sequence\":28,\"cabinTypeName\":\"IT机柜\",\"id\":\"114062c08ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R13省网/双母线交流配电屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ccef66931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj29\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R14\",\"sequence\":29,\"cabinTypeName\":\"IT机柜\",\"id\":\"114073ad8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R14省网/双母线直流分配屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cd2d73931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj30\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R15\",\"sequence\":30,\"cabinTypeName\":\"IT机柜\",\"id\":\"114088818ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R15国网/二平面/中兴S385\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cd5df8931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj31\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R16\",\"sequence\":31,\"cabinTypeName\":\"IT机柜\",\"id\":\"11409b4d8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R16华东网/诺基亚TSS324H\",\"direction\":\"01\",\"status\":1},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl03\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":32,\"cabinTypeName\":null,\"id\":\"1140b4058ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl04\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":33,\"cabinTypeName\":null,\"id\":\"1140d11d8ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":\"e4cdf3d7931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj32\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R19\",\"sequence\":34,\"cabinTypeName\":\"IT机柜\",\"id\":\"1140e56a8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R19国网/光传输SDH/中兴S385-1\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ce2022931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj33\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R20\",\"sequence\":35,\"cabinTypeName\":\"IT机柜\",\"id\":\"1140f9858ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R20国网/光传输扩展子架I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ce5b80931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj34\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R21\",\"sequence\":36,\"cabinTypeName\":\"IT机柜\",\"id\":\"11410b008ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R21国网/光路子系统屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ce884c931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj35\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R22\",\"sequence\":37,\"cabinTypeName\":\"IT机柜\",\"id\":\"114125228ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R22国网/光传输SDH/中兴S385-6\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ceecec931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj37\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R24\",\"sequence\":38,\"cabinTypeName\":\"IT机柜\",\"id\":\"11413a5d8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R24国网/光路子系统屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl05\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":39,\"cabinTypeName\":null,\"id\":\"114150ee8ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl06\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":40,\"cabinTypeName\":null,\"id\":\"11416df78ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":\"e4cf1934931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj38\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R25\",\"sequence\":41,\"cabinTypeName\":\"IT机柜\",\"id\":\"114180928ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R25华东网/爱立信OMS1684\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cf44aa931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj39\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R26\",\"sequence\":42,\"cabinTypeName\":\"IT机柜\",\"id\":\"114191368ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R26-省网/光传输SDH/中兴S389\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cf7f70931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj40\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R27\",\"sequence\":43,\"cabinTypeName\":\"IT机柜\",\"id\":\"1141a2a68ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R27省网/数字配线屏I\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cfa899931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj41\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R28\",\"sequence\":44,\"cabinTypeName\":\"IT机柜\",\"id\":\"1141b75f8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R28省网/数字配线屏II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl07\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":45,\"cabinTypeName\":null,\"id\":\"1141c97b8ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":null,\"remark\":\"\",\"directionName\":null,\"cabinType\":null,\"pointNo\":\"gl08\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":null,\"sequence\":46,\"cabinTypeName\":null,\"id\":\"1141dad58ffb11eeb00f0242ac0a0005\",\"cabinName\":null,\"direction\":null,\"status\":0},{\"cabinId\":\"e4d20fff931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj42\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R41\",\"sequence\":47,\"cabinTypeName\":\"IT机柜\",\"id\":\"1141f53e8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R41省检/站间通信及线路故障测距屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d24225931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj43\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"GOTEC2M08\",\"sequence\":48,\"cabinTypeName\":\"IT机柜\",\"id\":\"114205758ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R42省检/1000kV线路第二套保护屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d26cc7931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj44\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"PMUX2MD08\",\"sequence\":49,\"cabinTypeName\":\"IT机柜\",\"id\":\"114214d98ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R43省检/1000kV线路第一套保护屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d2a6c3931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj45\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R44\",\"sequence\":50,\"cabinTypeName\":\"IT机柜\",\"id\":\"114222d18ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R44省检/505kV线路第二套保护B屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d2d0c3931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj46\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R45\",\"sequence\":51,\"cabinTypeName\":\"IT机柜\",\"id\":\"11422f7e8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R45省检/500kV线路第二套保护A屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d2fbfa931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj47\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R46\",\"sequence\":52,\"cabinTypeName\":\"IT机柜\",\"id\":\"11423bf98ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R46省检/505kV线路第一套保护B屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d334ba931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj48\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R47\",\"sequence\":53,\"cabinTypeName\":\"IT机柜\",\"id\":\"1142488b8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R47省检/500kV线路第二套保护B屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4d35dd5931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj49\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R48\",\"sequence\":54,\"cabinTypeName\":\"IT机柜\",\"id\":\"114253a28ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R48 省检/输电线路在线监测设备屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4ceb4eb931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj36\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R23\",\"sequence\":55,\"cabinTypeName\":\"IT机柜\",\"id\":\"11425fee8ffb11eeb00f0242ac0a0005\",\"cabinName\":\"R23国网/光传输扩展子架II\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cc5551931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj27\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R11\",\"sequence\":57,\"cabinTypeName\":\"IT机柜\",\"id\":\"9a63013f932d11ee8ea90242ac0a0006\",\"cabinName\":\"R11省检/行政交换机屏\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cc948f931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj80\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R12\",\"sequence\":58,\"cabinTypeName\":\"IT机柜\",\"id\":\"9a6328c0932d11ee8ea90242ac0a0006\",\"cabinName\":\"R12省网/音频配线单元/VDF\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cd8a8c931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj81\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R17\",\"sequence\":59,\"cabinTypeName\":\"IT机柜\",\"id\":\"9a633764932d11ee8ea90242ac0a0006\",\"cabinName\":\"R17省网/光纤配线单元1/ODF\",\"direction\":\"01\",\"status\":1},{\"cabinId\":\"e4cdc492931511ee8ea90242ac0a0006\",\"remark\":\"\",\"directionName\":\"正面\",\"cabinType\":\"01\",\"pointNo\":\"xj82\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinNo\":\"H1R18\",\"sequence\":60,\"cabinTypeName\":\"IT机柜\",\"id\":\"9a634464932d11ee8ea90242ac0a0006\",\"cabinName\":\"R18省网/光纤配线单元3/ODF\",\"direction\":\"01\",\"status\":1}]}";
}
Debug.Log("获取巡检点列表:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
Debug.Log(_response.rtMsg);
if (_response.rtCode.Equals(rtCode))
{
RobotFixedPointsins = JsonConvert.DeserializeObject<List<RobotFixedPointins>>(_response.rtData.ToString());
foreach (var item in RobotFixedPointsins)
{
for (int i = 0; i < CarbinList.Count; i++)
{
if (item.cabinId == CarbinList[i].id)
{
CabinDictionary c = rootCabinDictionary.cabinDictionaries.FirstOrDefault(x => x.id == item.cabinId);
if (c != null)
c.pointNos.Add(item.pointNo);
break;
}
}
}
obtainListening = true;
Debug.Log("开始获取下发指令按键获取监听");
}
get_catrbin_list_done = true;
Debug.Log("已获取【机柜列表】");
}));
//获取机器人地图数据
StartCoroutine(GetRequest(http_ip_address + get_robot_map + RobotObject.robotClass.robot_id + "/map", request_header, new Dictionary<string, string>() { { "robotId", RobotList[0].robot_id } }, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("请求【机器人地图数据】错误:" + _error);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"数据获取成功\",\"rtData\":{\"info\":{\"height\":800,\"origin\":{\"id\":\"0b68f885-45a8-4ac3-9ebb-a72250c43f64\",\"theta\":0,\"x\":-2,\"y\":-18},\"resolution\":0.02500000037252903,\"width\":320},\"limit_speed_area\":null,\"map_name\":\"CWDT010@20231122_111258\",\"png_map\":\"iVBORw0KGgoAAAANSUhEUgAAAUAAAAMgCAAAAAB3kOQFAAAgAElEQVR4AezBgWHcuLZEwdMp4eYfQiOl/pwZySJIQiJXu7b1H6tkbt8hc/sOmdt3yNy+Q+b2HTK375C5fYfM7Ttkbt8hc/sOmdt3yNy+Q+b2HTK375C5fYfM7Ttkbt8hc/sOmdt3yNy+Q+b2HTK375C5fYfM7Ttkbt8hc/sOmdt3yNy+Q+bvUebHkfk7lKF1rirMHyXzd2id1rms0fmjZP4Old4617Ve5g+S+Ts0pfMPNGT+IJm/QxG5eDLnNWT+IJm/RLGIoohrzB8k8w+V+TcV4Z9QZP4gmc8VE+m8KzDfVOGfEeYPkvlchYnOmyJiypxRhH9I5g+S+VyFic67pjDVWSlmwj8lrjE7FWH+EZnPVZjofCjCRGelwp8mjkRmq1gzh2Q+V+GQ0lmpMNFZqfCX6uxU+CBzSOZzFSY6KxUmOlCAWTT+TsLsNFZkDsl8rsJEZ6XCMfEQBLgIfyWZvcaKzCGZz1WY6KxU+JIg/J1k9hofhDkk87kKE52VCj+ZzF7jg8wxmc9VOCazUuEnk9lrfBDmkMyR4pdwSDyZ4in8ZDJ7jRWZQzIHivAFRQQBARF+NJmdCh+EOSRzoML/FpmtInyQOSZzoML/FpmtCivCFC9mReZAhf8t4kBYERAehPkgc6DCbUbpfJA5UOE2o3Q+yByocJtROh9kDlS4zSidDzIHKtxmlM4HmQMVbjNK54PMgQq3GZkVmQMVbjMyKzIHKtxmZFZkDlS4zcisyByocJuRWZE5UOE2I7Mic6DCbUZmReZAhduMzIrMgQq3GZkVmQMVbjMyKzIHKtxmZFZkDlS4zcisyByocJuRWZE5UOE2I7Mic6DCbUZmReZAhduMzIrMgQq3GZkVmQMVbjMyKzIHKtxmZFZkDlS4zcisyByocJuRWZE5UOE2I7Mic6DCbUKYFZkDFW4TMmsyByrcJmTWZA5UuE3IrMkcqHCbkFmTOVDhNiGzJnOgwm1CZk3mQIXbhMyazIEKtwmZNZkDFW4TMmsyByrcJmTWZA5UuE3IrMkcqHCbkFmTOVDhNiGzJnOgwm1CZk3mQIXbhMyazIEKtwmZNZkDFW4TMmsyByrcJmTWZA5UuE3IrMkcqHCbkFmTOVDhNiGzJnOgwm1CZk3mQIXbhMyazIEKtwmZNZkDFW4TMmsyByr8OxT+AUEQRDyEv4nMmsyBCp8SENbEmzAST2Ek3oQtgQtwgYHiK1EUQBD+azJrMgcqfE4uRgYqIqz1JkOxCGsyUEBYEwtzTfHOBYT/lMyazIEKn+scqbDVWVRQGHQWFRRGMt9TQDgkFmFNLMIFMmsyByp8rnOowjsRoPNUYaPz0tjofF8BAfESBUWAocKKwBWukFmTOVDhc50DFRYKTwrQgYbCTmdRQYzMv6IIyCyKF7MoNwaCKJwnsyZzoMLnOgeK8KCAcIUnhSMdKgLznygWZqexp3CezJrMgQqf6xyp8EaYItChcONA57drHFI4T2ZN5kCFz3WOVHgjDBXoLCqMFBDm96oIwp7CeTJrMntF+FznSBHedKCIzKLCQAFkfrtyhXcKDwLCeTJrMnsVvtA5VOFBpPNQ5qHCiiCAzO9XhJEwFc6TWZPZq/CFzpEKTwKzUuEXBYWFzO/X+EXhSabCeTJrMnsVvtA5UgREOqMKbwSEJ5nfrghvFF6EK5wnsyazV4TPdQ5VegFmVITeQIRfZH67Ck8KIrzIFc6TWZM5UOFznUNljlToTRFReCfz21V4UFB4J1c4T2ZN5kCFz3WuKAIoLBQeBOa3KwhPCg+9gVzhPLnMB5kDFT7XuaTceOqtN0CR+SMqvPQG9IYiVzhPbp0PMntF+FznmooIi04DBOaPKCAgTAN6U+QK58mt80Fmr8IXOtc0EaC3Dg1k/pSKiNw6jd7oTbjCeXLrfJDZq/CFDoU5rVxh0YEGMn9MA5QOVHq5dahwmkhnRWavCJ/r0JA5rwG9zKLR+XMaiHQeGnKZCqeJdFZk9ip8oUMDmbMai85Tg86f0kCk89R6GahwntJZkdmr8IUODUWGcmG+UlE6byqdP6VCp3VeyiwqnCbSWZHZq/AZpQMFQaYpyHylIfOuyfwhjU7rDCqcJtJZkdkrwqc6UFGEKyAezCcKzIcyf0ij0zqDCucpnRWZvSJ8qgNFFMRDAJn/VOECAwXmH6p0WmdQhNNEOisyexU+JVw8BJliEZBZFGAWxcK8K8BcUQwigjBUAHHMfKrSaZ1BhfOEWZPZq/AZsQggngLilyCeAgLzUBCEoXgxX2kc6CwaUzKfKtM6oyKcJjOQ2avwbxEvYSEW4UGA+UzjQOelMSHzldbZqHCazEBmr8JvIHOsQofGXudNuXFAkflC62xVOE2YNZm9Cr+BzLEKx3phCgwVDogH85kyWxXOk1mT2avwG8gcq3CoNwRELMIBBZC5qMJ5Mmsye0X478kcq3CkN06ROaUA81DhPJk1mb0Kv4HMsQoHeuMcmTMqgMyiwnkyazJ7RfjvyRyr8B0yZxQEOosK58msyexV+O8Jc6zCd8icU4QOBeE0YdZk9ir892QmKnyHzLHixbwpwEW4QmZNZq/Cf0+YYxW+Q+ZYBVAEpvglXCHMmsxehd9A5liF75A5VoQnAeGfkRnI7FX47wlzrMJ3yLwrFy7zUuH7ZAYyexX+e8Icq/AdMu8qCkrnqcL3yQxk9orw35M5VuE7ZKDANIWnzkOF75MZyByo8J8T5liF75CBCiA3hYfOosL3yQxk9orwnxPvIlai8C1i4YaCXK7w0KHC98kMZPYq/GAKDwoiAgKKIsL3yQxkdorw2yk8iPBNCv8hmYHMToXbjMxAZq/CbUJmILNX4TYhM5DZq3CbkBnI7FW4TcgMZHYq3GZkBjI7RbhNyAxk9ircJmQGMnsVbhMyA5m9CrcJmYHMXoXbhMxAZq8It2MyA5m9CrcJmYHMXoXbhMxAZq8It2MyA5kDFW7HZAYyByrcjskMZA5UuB2TGcgcqHA7JjOQ2SvC7ZjMQGavwm1CZiCzV4TbMZmBzF4RbsdkBjJ7FW4TMgOZvQq3CZmBzF6F24TMQGavwhWC8L9CZiCzV+ECRRG/BMS7KFyg8LeTGcjsVbhGmDfFwrwUexGLMFAU8RC+oiAgCMLvJjOQ2atwngidC8pQEaMIAxURQcQigohRFOEiIiLiXUTETMRTBATxS7hAZiCzV+EChc5vUxFBpqIoCPOuoSCzVURBEabAxYuBisIFMgOZvQrXdP5ujReZhwoPnYeGwnkyA5m9Ctd0foIGMu8ayCyKcJ7MQGavwjWdn6zCeTIDmb0K13R+sgrnyQxk9ipc0vnRKpwnM5DZq3CB0vnRKpwnM5DZq3CB0vnRKpwnM5DZq3CFXOYHq3CezEBmr8IFSm+dH6wIp8kMZPYqXKD01vnJKpwmM5DZq3CB0lvnJ6twmsxAZq/CBSKdH63CaTIDmb0KFyh0frQKp8kMZPYqXCDS+dEqnCYzkNmrcIFC50ercJrMQGavwgUinR+twmkyA5m9IpwnIvOTVThNZiCzV+EC4db5ySqcJjOQ2atwnkJvnZ+swmkCsyKzV+E8Ren8aBVOE+msyOxVOE9BmKkKSufvVRBOE+msyOxVuEL8YqB4Mi8FUUBmpiLSeaiIdH6nJsJpIp0Vmb0K14jwIB4igngXQHwqingTRXyIDEVk3hVgijXzTxXhAhE6H2T2KvzHFEaKiAgvigiIIBYRK0FAREREFDFhRsWLKd6FC0RkPsjsVfhJBFFQ2BFb4UFAFK4TofNBZq/C/28K/5SIzAeZvQq3CUE6H2T2KtwmRGQ+yOxVuE2IdFZk9ircJoRZk9mrcJuQGcjsVbhNyAxk9ircJmQGMnsVbhMyA5m9CrcJYdZk9ircZmTWZPYq3GZk1mT2KtwmhFmT2atwm5AZyOxVuE3IDGT2KtwmZAYyexVuEzIDmb0KtwmZgcxehduEzEBmr8JtQmYgs1fhNiEzkNmrcJuQGcjsVbhNyAxk9ircJmQGMnsVbhMyA5m9CrcJmYHMXoXbhMxAZq/CbUJmILNX4TYhM5DZq3CbkBnI7FW4TcgMZPYq3CZkBjJ7FW4TMgOZvQq3CZmBzF6F24TMQGavwm1CZiCzV+E2ITOQ2atwm5AZyOxVuE3IDGT2KtwmZAYyexVuEzIDmb0KtwmZgcxehasUBoJwROFHkxnI7FW4Ruy4eBcUhSdFEEHYUFBEOElREOH3khnI7FW4QITOXLGIeOciYisoKICIIt5FPIU1EYXzFBZiEUYKF8gMZPYqXKB0vq2AKIqIIjAvBWZRhA/ia+EX8alwnsxAZq/CBUrnNyheIsyXGmudh8ZDb8isVThPZiCzV+ECRea3KQJ0PlcEAQFBoPOugcxahfNkBjJ7RThPofObNaDziQJM8RDedY5UOE9mIHOgwnkKnT+gAZ2TGi8yOxXOkxnIHKhwntL5UxrQOa0hs1PhPJmBzF4RzlNk/qDGovPPVThPZiCzV+EChc6f1oDOP1PhPJmBzF4RzlM6f4UGdK6rcJ7MQOZAhdNEZP4WDehcU4TTZAYyByqcJkLnb9KAznlFOE1mIHOgwnlK56/TgM45Fc6TGcgcqHCaSOev1Fh0vlIQTpMZyOwV4Tyl8/dqQOczFYXTZAYyexUuUDp/twZ0ZopwnsxAZq8IpwnzAzSgc6jCeTIDmb0K5wnzQzSgs1PhPJmBzF6FC2R+kAZ01opwnsxAZq8IpwnzwzSg867CBTIDmQMVTpP5iRqLzqII58kMZA5UOE2Yn6oBvcIFMgOZAxXOE+YHayKcJzOQOVC8C18T5gercJ4wA5nPVDhBLh7MongwT8UbA8WDC9KLhVkUmLkKnUUFBYXOv6xxgcxI5jMVviYggHgKIN4EEBEPQRFEBBEBLiJ2DMVLhKGACCIOuXiKOGAWxS8GigdThPNkRjKfqfDvEkERYaEIwp5YhIUgYhFEmBGEB4U1RQTxFERAEQ8BxCJ8SbwzI5nPVPj/SOEamQmZz1S4LWQmZD5T4QbCTMh8psINZGZkPlPhBjIzMp+pcAOZGZnPVLiBzIzMZyrcQGZG5jMVbiAzI/OZCjeQmZH5TIUbyMzIfKbCDWRmZD5T4QYyMzKfqXADmRmZz1S4gcyMzGcq3EBmRuYzFW4gMyPzmQo3kJmR+UQRbiAzI7NXvAu3hcyMzE4RHhRuTzIzMjsVbgOBOSazU+G2Id6YkcxOhduEzEhmqwi3CZmRzFZTuE3IjGS2msJtQmYks9UUbhMyI5mtpnCbkBnJbDWF24TMSGarKdwmZEYyW03hNiHMQGarKdxmZAYyW0W4TQgzkNmpcJuQGcnsVLhNyIxkdircJmRGMjsVbhMyI5mdCrcJmZHMToXbhMxIZqfCbUJmJLNT4TYhM5LZqXCbkBnJ7FS4REA4R+FHkxnJ7FS4Qrg4IwiIgKAoKIp4ClsigoiIcExhIAhzCt8kM5LZqXBJhybzlQIMhSlWzKI45IogiJ0IIp4iHoKCeIh4CgvxSxgJwgUyI5mdClco0PmvVBRFZqPARWSgwEDxZKgIsyieTEVRxLsoIB7CBTIjmZ0KV8j8AA0FmZcCIgw0FE6TGcnsVLhC5icqMIuCcJrMSGanwhUyP1uF02RGMjsVrpD52SqcJjOS2alwhczPVuE0mZHMToUrZH62CqfJjGR2Klwh87NVOE1mJLNT4QqZn63CaTIjmZ0KFyidn63CaTIjmZ0KV8j8bBVOE2Ygs1PhAmF+tgrnyQxkdipc0vnZKpwmzEBmp8IFwvxsFU4TZiCzU+ECmZ+tCOfJDGR2Klwg87NVOE+YgcxOhQtkfrYK58mMZHYqXCDzs1U4T2Yks1PhAmF+tCKcJjOS2alwgdL50SqcJzOS2alwgdLZqNB5U6FT5u9V4TyZkcxOhQsUhFkriDBQEBEZKB4MFYVOhV7mTysIp8mMZHYqXCSezKKAiIiHKIB4CCAWURQBkSmeTDEyVHpFhgoiSudf1xTOkxnJ7FS4QDwEEE9hTVHYEwHEIiwEhHeKIhZRxFMUBXHMUDyZlwLzmeLBVLhAZiSzU+HvJKLwoLAmFmEh3kWsuFgzRUQEhAtkRjI7Ff5/EFFQQBA+CAhPIlwgM5LZqXCbkBnJ7FS4TciMZHYq3CZkRjI7FW4TMiOZjYJwm5AZyWw0EW4TwgxkRg0RbjMyA5lRA4XbhDADmVFFhNuEzEhmo4lwm5AZyWw0FG4TMiOZjSbCbUJmJDNqvQi3CZmRzKh1KtwmZEYyowLCbUJmJLPRRLhNyIxkNpoItwmZkcxGE+E2ITOS2Wgi3CZkRjKj1otwm5AZyYwaItwmZEYyo4oItwmZkcxGE+E2ITOS2SgItwmZkcxOhduEzEhmp8JtQmYks1PhNiEzktmpcJuQGcnsVLhNCDOQ2alwm5EZyOxUuE0IM5DZqXCbkBnJbBSE24TMSGbUEOE2ITOSGTVEuE3IjGRGFRFuEzIjmY0mwm1CZiSz0US4TciMZDaaCLcJmZHMRhPhNiEzkhk1QbhNyIxkRk0QrhJhRRCxCOcpAsIRAREQ/iyZkcyoIsI1ChsCXEAYiDdhTUCAXoQj4ikoHBGLIMJ/S2Yks9FEOE9BYdR5KMKOTEHYUJROY0pBQVHY6w25IIrCEfEmbIhwgcxIZqOJcJ6iiLDWgSKAwofOU0WELRERjnUaMo2JzqIBCoc6L8VLeBIQrpAZyWw0Ec5TFN6JJ7NoCgtBeOq8VNhRFBBEvAkL8eAmU+FJPIQVBRmocEjpDIo3piCcJzOS2SgI5wmCeDFvKqCIhYsn81LhE4rMQ+ECzLsKiiIMFATxYH6piCjiISiIh/SGzLEKF8iMZHYqnCeX2arQoTBbRRRmeoPOoSKgIPNQ6Q3orBUvBiqIlwAyExWF02RGMjsVzpM5qbFQABF+UXjqDejMVHqDzqgBnSOFWTQeekPmWIULZEYyOxXOk/lK46lDQ2GksOgNOp+qdA41oPOpxqJzqKJwmsxIZqfCeTJTjacOjTWFlU6Dzrc0Fp1PNWT2KgqnyYxkdiqcJ3Og8dCBxo7CL3KDzr+iAZ2rKlwgM5LZqXCezFrjqUNj0Fk0HhRWOv+mBnSuqHCBzEhmqwjnCcyi8dSBxqDz0Dgk869rLDonVbhAZiSzUYQLRHjoQGPUeWkMFN7J/Eca0DmhwgUyI5mNpnCBMNAYdd41dkR4I/MfakDnCxUukBnJbDSF8wRhrfOhsdNpIiwUkPmvNRaduQoXyIxkRg2F8xSFl85KY69Dgw5FQEHm92hA51gRzpMZyYwaClconVHjQKcBnacK0Avz+zSgc6DCeTIjmVFBuECYlcaRToPOh0Zvnd+uAZ2NCufJjGS2Klwg867x1KHxoUODzlqDXuaPaCw6vxThPJmRzEYRLhAGGi8dGtCh8dChQWejQedPakDnoYlwnsxIZtRQuECElw4N6EDjoUODzl6Dzp/WgE5TuEBmJDNqKJyniECHBnSg8dChAZ0jDTp/hQYKF8iMZEZNhCtkaEBn0Xjo0KAzU2D+EgXhPJmRzKihcJ6iQC9D46lDg84P0RQukBnJjBoK5yl0CkMROhWg83M0LpEZyYyaCBcoMk/lxkJE5nNl/hYF4TyZkcyg9SJcIVy8hF48mafiwUDxZBYV8WAq4sH8QRXOkxnJDFqnwhUCwkIsAijiJSzEQ0QQT0EEsQgLYf6YIpwnM5IZlIvwe4goPIiFoXgx/4WKIrNR4QKZkcyoifAniEV4EP+A+UoRxE64QGYkM2oi/EAyX6nwbTIjmVFD4QeS+UqFb5MZyYyaCD+QzFcqfJvMSGbUUPiBZL5S4dtkRjKjJsIPJPOFInybzEhm0HoRfiCZL1T4PpmRzKB1KvxAMl8owrfJjGQGZSr8QDJfqfBtMiOZjSL8QDJfKMK3yYxkRk2EH0jmCxW+T2YkM2oi/EAyX6jwfTIjmVET4QeS+UKF75MZyYyaCD+QzBcqfJ/MSGbURPiBFBRFvASQWTRAhiJ8n8xIZtRE+IEUQOGNWIkCCv8CmZHMoPUi/EQK7xRAEBBE4V8jM5IZtE6F24zMSGZQpsJtRmYks1XhNiMzktmqcJuRGclsVbjNyIxktircZmRGMlsVbjMyI5mtCrcZmZHMVoXbjMxIZqvCbUZmJLNV4TYjM5LZqnCbkRnJbFW4zciMZLYq3GZkRjJbFW4zMiOZrQq3GZmRzFaF24zMSGarwm1GZiSzVeE2IcxIZqvCbUJmQ2ZUEG4TMhsyoybCbUJmQ2bURLhNyGzIDJog3CZkNmQGDYXbjMyGzKChcJXC/wiZDZlBucIlgjBSxEv4/0VmQ2ajwnUKHwSYAsKaiIiAKKyIKIDCSFEUFP4SMhsyGxUuEYuwIp7CSESGJldYExEQRWFF/BLWxLswEC9hIN6F75HZkNmocE1nUeFFBBRAYaPzofFBmDeND0rnpTGQWVQUBiLIFTYUERkqrIlFFE6T2ZDZqHBN56EI7wSBzqIx6LxpLHrjRZF5aax1oEGnsSLz0BQ2BKbCngxUFNYEUThNZkNmo8I1nafig3lXfAiLzlNj0aECCsi8aez1xkanCAcE4YhcARQGisJpMhsyG0W4QuaswpR5aNBbhwYonTLvGmsyjQO9wiHhxgG52ImIwmkyGzIbRbhA6VzXgF6GxkNnrfGLIBwQi3BErnBA5kARhdNkNmQ2KlzTua4BnYcG9NZZa8x0Gg+KXGFHPIQdgTlSUThNZkNmVBDOU+hc14DOQwN6mZXGBxkaH3rjSabCnkxT2BHmUEXhNJkNmVFTuEKY6xrQeWgsOr806I0nsTAPjTedxoNcgQ401uQKR2QOVRROk9mQGTREuEDmukZvdB4ai85Lgw6NNzIfGk+dCguRzkNjIMJebzKHKlwgsyEzaIJwgcx1ld46TxWgs2jQWTTeyaw1HjqNhcxLY9Ar7HVmKgqnyWzIDBoinCfMdQ1kXirQadB5aHyQGTQWHSog89IYiHCgM1FROE1mQ2ZQQDhP5h9oIPNSYdF5aNBpPPUGnUHjpVeQeWkMRHjXWTReOocqCqfJbMhsVThP5rpGL/OmsehAgw40XjoNOoPGQ28oMi+NgSC8yCwaC5nGU2dU4QKZDZmtCufJXFeYN43egN6g89R46dCQWWs8dKBI56kxkBtvOg+Nh86bxkvnpQjnyWzIjArCeTL/XIMOFYXOu8ZTZ9FkBo2HzkODDjQGIvTGQ+eh8dDZaDz1IpwnsyEzaiKcJ/MPNeg8NBQ6bxovnYcyg8ZT56VBb6wJcOOp89BYyBxrIpwnsyEzaIJwnsBc16Dz0KBXhHnTeOkcajx0fmmsCUOFp85D46Ez0RTOk9mQGTS5whW9da5p0Hlo0IFK513jTedQ40HmQ2NFhiI8dB4aIMxEUzhPZkNm0OQK5ym9dS5o0Hlo0Hkp867x0ploLGQ+NH4RGKiw6DxVgM5MEc6T2ZAZNEE4T7h1zmrQeWp0DrTeeOpMNBYyHxofOk+NReelAp2ZpnCezIbMoCHCeTJNLvO1Bp2nBp1DFZ5kZhqLzofGh85DYyHzUoTOTFM4T2ZDZtAE4TyZpshAETo7FToV6Dw16Ew1njpTjYXMLw0UfulQBGTeVGRmmsJ5Mhsyg4YI5wmCeIqCeDJPxSKKeBNFQeZdgQvSqfQKDwIz1wCZX4pFeBCmIVeQ+aUwE02E82Q2ZNZabyJcIYiCAgKigHgTxCIKoCCIWIsgIoIogiBXFBFFLFzsRAYqAgNFWMg8FWDOaCicJ7Mhs9Z6QbhE4UkswqcEUdgTiwDiKTyIKILwJKKgCCKegpgyxUvoQPFkHgpwReECmQ2Ztdahwo+jcEAQnsRTWIiXgCBcIbMhs1aGCv8zRLhCZkNmq8JtQmZDZqMItwmZDZmNCrcZmQ2ZjQq3GZkNmY0KtxmZDZlREW4zMhsyg9Yr3GZkNmQGDYXbjMyGzKCJcJuR2ZAZNBRuMzIbMoOGwm1GZkNm0ES4zchsyAwaCrcZmQ2Ztdabwm1GZkNmrfWmcJuR2ZBZa70ItxmZDZm1MhVuMzIbMhsVbjMyGzKjItxmZDZkBk2E24zMhsygoXCbkdmQGTQUbjMyGzKDJsJtRpiRzKChcJsR6QxkBg2F24xIZyAzaCLcZkQ6A5lBE+E2I9IZyKy13hRuMyKdgcxa60W4TQjSGcistU4RbsfkSmcgs1aGCrdjcmEGMlsVEQRRuK3JbMnslAtMQbityWzJzFW4vSgKyGzJzFW4LcQ7syUzV+EGwkzJzFW4gcyczFyFG8jMycxVuIHMnMxchRvIzMnMVbiBzJzMXIUbyMzJzFX4kliENfEurAmiKCIMxENQWBMQ/jyZOZm5CicoKKx0KCCKwpp4EwYKh8S7sCbehDUB4d8nMyczV+FLiqKw1qGhKIw6LxXWOk1EhCMijBRkoIjCQLwJK+KXsCIW4UsyczJzFb6ksKXQGzudlwprHWjsybw0dmSgwgdFRBFRFEadlworwlT4msyczFyFryiAeBOxCAsFMTBPDcRKeOo0RaykQ2On89BQ+EUYyk2msaGAzKIIK3IB4UsyczJzFb4iIjBPBa6g9IIgIrNREQHEU3inIMxLY0VEvAsLERbiXToPFXqFXxQFUIBOhbUODRG+IjMnM1fhCyKdrYpCb0BnqyAKL53GQ6eBXOZNY0UR6axVFBCmCHRo0IGKgvhgGosOTYwCvSl8SWZOZq7Cl2Q2Kh0qnb3Gmw6NRWfRoPOuMVL4pfOmwGUWFYXOQ4MOFWFGjUVvvcyoifAlmTmZuQpf65zReNOh8dB5aXReGi+dxkpn0fils9V46NCgc6ihQGerwpdk5mTmKnxBYD7V+NAbD51fGnQeGk+dRWOl86HxobPVeNM51hSZUYUvyczJzFX4gsxUY6ez1qADjZfOQ2Olc6Cx6I2Hzk7jqXNK42syczJTRfiCzIHGXmej0eCyxM0AAA67SURBVGm8dF4aa525xkNvLDo7jTedz1X4ksyczE7xJnxFYFYa7zrQeOrsNH7pvGusdE5oLHrjoTNq0KHx0Jmp8CWZOZmtIiiI8CVF5qnxrrNoLHqDzk7jTedDY61zXuOhNx46Kw06D42nzk6FL8nMyWwU4TRFbrzrLBoPHRp0thovnbXGWucfaCw6jUXnlwadd42nzi9N4UvCTMlsVDhPUVh0Fo2HzkODzkbjpTNq9MYvnX+u8dAbD52XRmfQeOpAU/iaeGe2ZDbq/9qDE+vIlSWJgtdVitBfhAiVfFAbyUwQ9VCsXub3STNznkyzCTbNXUAzCG6aWfBV8wsEmya4aCCg2QlA5hUqZiomiTlNltk0HwKaL4KHZhYMml8nuGiCiw5ovpHmBSpmKiZpzhMUXwQ0H4K7DmhmQQcfmt8g2DQEV80seIWKmYpJmvMEbu4CmofgpiGgmQWD5vcJNg3BRfNVmheomKmYpDlPmOYioLkJ7ppN0MyCUfPbBRdNcNXcBK9QMVMxSXOewA0BzUVw11wFNLOgg0/NnxPcdHDRBK9QMVMxSXOewECzCe6am4BmFoyaPy64aCAAmdNUzFRM0pwnTJPmrvkQNLOADj41f09wI3OaipmKSZoXyCBuTGcB6Q6QaQZBB5sOrpq/LNjInKZipmKS5gXiodKIG3Ol4ia5MsiAuDCdXFUWpJs/LmSZ01TMVEzSvEBsDIgLsxEzcyF2zEYWG4vTChKLG4urAtLiqiCxuCoguSpuEirBvEDFTMUkze8kMDcy35GRuRDmW2JjbgTmQlyZC7ExIMviwmwEVLKxKNK8QMVMxSTNP05gLgSYF6iYqZikWQ6omKmYpFkOqJipmKRZDqiYqZikWb4nipmKSZrlgIqZikma5YCKmYpJmuWAipmKSZrle6KYqZikWQ6omKmYpFkOqJipmKRZDqiYqZikWQ6omKmYpFkOqJipmKRZDqiYqZikWQ6omKmYpFkOqJipmKRZDqiYqZikWQ6omKmYpFkOqJipmKRZDqiYqZikWQ6omKmYpMWFWWYqZiomaZYDKmYqJlmkEZhlIoqJigNploncTFR8LzHLRG4mKr4XMstEphmp+EYAMstEVjFSsZNuApllIjcTFd8IOjHLRBXNSMVOugNhlokqi5GKvXQHMstExUzFdwJhlpEoZir2gg5hlpGKHRWjBHcaZJaRih0Vo3SzCWGWkYodFaO0Ko3ALCMVOypGaVWyMctExY6KUVpcmWWiYkfFKA3ILHsqdlSM0iwHVOyoGKVZDqjYUTFK8xIBZk+Yf42KHRWjNC8RYL4QD2YgsNiYgQDzDXFlJgKLjfmzVOyoGKV5SaeZNRfJpBIKkkmRjCyLqyLBDFQJRZqBeDBfySALzJtU7KgYJeYFKoJJ86ZkUxCoIIT5QkABiflKxVVa5gtxVYn5SmzMC1TsqBgk5gXC7Kh4Wxab4EZ8ZZpNMilu0owEFhiZTwKMzGkqdlQM0rxCmA4mzVuCh2YUfNEJxadkU5BmT+YbMq9QsaNikJgXyEATDJqfCO6aY8GgISuLq+BOgBnI3MmIC/MqFTsqRmleIIpNMFBxXnDXnBJAE3xq7tJcdRoQV0ZGBhlZXBSQYEDmNBU7KkZpXqDiIhio+E/BXfOqABqCL5pNGlVWIKC4CRAbi41lEMUmK2ReoGJHxSjNC1RcBQMVB4K75g0BNASj5kMamquEIi0KkgsLiosQ5jQVOypGaV6g4ioYNaPgrvlFAmiCWfMhgGYU3DUXIcxpKnZUjNK8QMVVsJF5UHER3DW/XgANwV7zEEDzKbhprkLmPBU7KkaJOU/FVRpkQOZC5qL5rQJoCJpg1jwEm+YquGkuQpjzVOyoGKV5gYqbBPNJxR8RQENAE+w1DwE0wV1zEcicp2JHxSjNC0QRbAQGmRsVf0iwaQgagm80D8GH5iItc56KHRWjNOcJQ3MRXMhcqfhjgk1D0EDwreYquGmuApnzVOyoGKU5T1DcBFdiY1H8SQE0BM1FMOsAmuBDswlkzlOxo2KU5jwVD8EHQfGHBdAQ0FwEX3UwagLoQJjTVOyoGKU5T8VD8EnFnxdAA0FzFRxrLgKEOU3FjopRmvNE8RB8aP6KYNMQNDfBsQYCmfNU7KgYpXmBioc0FzKi+DuCTUNAcxN8rwOQhTlNxY6KUZoXqHhIcyXT/D0BNBA0D8FOB1fCnKZiR8UozQtUfEg2VqWbvymABoLmQ/BVE0CnEeY0FTsqRmleoOIqTUNWmg6Eaf6eABoIaD4ED81VIMucp2JHxSjNC2Q2zSa4EEaYDi5UbNI0aZo/Jdg0EDQPwY2Ku0DmPBU7KkZpXiCLTZEWFhZXFkZsijTiwiouEor/lm5u0tC8Jtg0EDQ3wUZgaK4CYU5TsaNilOYF4ntGYEBsLCywuLGYVbJjUUByYRUkF8VFcmW52cuCkEFFqCBkcWMZVEAIzGkqdlSM0vyMzLcEmAuBhXmQeRCYG5kP4sJciI0BcWPuxKdK7iywwAhDhyzMTQebTgtzmoodFaM0/1NkYa6EBeZGgAEZ8T0LMKep2FExSMxyQMWOikGa5YiKHRWDxCwHVOyoGKVZDqjYUTFKsxxQsaNilGY5oGJHxSjNckDFjopRmuWAih0VozTLARU7KkZplgMqdlSM0iwHVOyoGKVZDqjYUTFKsxxQsaNilGY5oGJHxSjNckDFjopRmuWAih0VozTLARU7KkZplgMqdlSM0iwHVOyoGKVZDqjYUTFIzHJAxY6KQZrliIodFYPELAdU7KgYpFmOqNhRMUizHFGxo2KQmOWAih0Vg8QsB1TsqBikWY6o2FExSLMcEMWOikFilu8JipmKQWKWA3IzUzFIsxwRbiYqBolZvicqmomKQZrlgLCKiYpBmuWI3MxUDBKzHJCbmYpBmuWIKGYqBmmWI3IzUzFIsxyRm5mKQZrliHAzUTFIsxxRRTNRMUizHJFVTFQM0ixH5GamYpCYVwgwX4kbC/OFuDMDcWe+ITAjmb9EbmYqBmleISzLfKHiIgHzhQqSK/OFiqsE84XYGJmBsLgxA2EEZibMLyE3MxWDNK+Q2WmuQuYrUYllYb5ScZNmIMvC4sLizohik3ywuKvkk5EBYYR5m9zMVAzSnCeMjLiwuClIDMjikxuCkXBzlxYfDLKMKlCRllVcZAUqBgnFXjIxX4gL8wK5makYpDlPWGwq2bh5SAssKB4SMDJiUNwkUFylhYHml0pzIwswG5kXqKKZqBgk5jxZxSbNpnkmjdwMgosGApoPwUPzy6QFBgFFFiHLvEAVzUTFIM15ws1Vsil+ILhqZgEdXDS/REIlBhV3iXmBrGKiYpDmPEHxpuCu2Qk+NL9GQvEpzQvkZqZikJjTVLwnoNmELKv4RkAHF82vl+YFcjNTMUpzmoqfC6A5I/jQ/FppXiA3MxWjNKep+KGA5hXBh+bXSXOecDNTMUpzmoqfCGh+IKCDi+YXSfMCuZmpGKU5TcWrAmh+LPjQ/AJpXqCKZqJilOY0QfGCgOZtAR1cNe9JzHmiopmoGKU5Tbg5KYDmFwmgg6vm59K8QEU0ExWDxJwm3JwR0PxiAR1cNT+UmPNEZTFRMUhznnDznwKa3yKADq6aH0jzAuFmpmKQ5jzh5qkAmt8poAmumtcEwpwm3MxUDNKcJ9wcC2j+gAA6uGpeELLMaTLNTMUgzXkyzfcCaP6cgCa4ak5KI3OacDNTMUhznnDzjYDmjwugg5vmhOAlws1MxSAxpwk3s4DmbwlogpvmP4TMC4SbmYovshJzmqhovgig+bsCaAI6oHkmzStERTNRsUnLwgjMC1TRPAQ0d2lo/pqAJrhpjgTInKYimokKSMsgLAvzClEkloUFxSYNsqzi7wmgCW6a74TAnCYqmomKTRqQZWReIjYWGDEr/q6AhoAOaHZC5gXCKiYqNolB5nUyV2JjbsR/KpIviuSuILkqrhIoSIvitABEBRuZm2YQvES4mam4SiPMnyLAfBBgrsTGbMSdERcWV8UmuSlI7ooPiWXElUFgWcVXiXmBcDNT8ZCY/wXiylyIjbkSJxSb5MK8RqaZqfiQ5t8hwFyIK3MhriwjMK8QbmYqPqRZnhBuZio+pFmeEG5mKj6kWZ4QFc1ExYc0yxMqopmo+JBmeUJUNBMVH9IsT8idxUTFhzTLE8LNTMWHNMsTws1MxYc0yxPCzUzFhzTLEzLNTMVDYpYnhJuZioc0yzPCzUzFQ2KWJ2SamYqHNMszoqKZqHhIszyjIpqJioc0yzOiopmoeEjM8oTcWUxUPKRZnpGbHRUPaZZnhJuZioc0yzMyzUzFQ5rlGeFmpuIhzfKMKpqZioc0yzMyzUzFQ5rlGeFmpuIhzfKMTDNT8ZBmeUbuaCYqHtIsz4iKZqLiIc3yjIpoJioe0izPqMhiouIhzfKMKHZUPKRZnlFFM1PxkGZ5RqaZqXhIszwj3MxUPKRZnlFFM1PxkGZ5RqaZqXhIszwj3MxUXCVglmdU0cxUXKWFWZ6RaWYqIA0IszwjKpqJCtLIArM8oyKaiYq75MIsR1REM1HxECrSLAdEkcVExUM0pFkOiGJPxV00kObHxDfMv0PFnoq7aCDNT4liJzH/CkGxo+IuGkjzQ4JiL82/QkU0MxV30UCaH1Oxl+ZfISqamYq7aCDNT4liL82/QphmpuIuC0jzUyq+keafIdzMVHyRmJ9S8Y00/wphmpmKTyHMT6n4Rpp/hTDNTMWnEOanBMVOmn+FMM1MxacQ5qeEm500/wqBm5mKTyHMAZn/omInzb9CuKOZqPgU4h1udpJvmf89wh3NRMWnaN6QFCcl55j/R4Q7momKT1n8v5K8xAiwzEbmQuZXEVQWExX/igSK5H2W2VPxDRXLJPle8Q0VyztULO9QsbxDxfIOFcs7VCzvULG8Q8XyDhXLO1Qs71CxvEPF8g4VyztULO9QsbxDxfIOFcs7VCzvULG8Q8XyDhXLO1Qs71CxvEPF8g4VyztULO9QsbxDxfIOFcs7VCzvULG8Q8Xyjv8DXb597Y4g6HYAAAAASUVORK5CYII=\",\"point\":[{\"description\":null,\"display_x\":72.46885072486324,\"display_y\":717.7170692724426,\"map_x\":-0.1882787048816681,\"map_y\":-0.05707300081849098,\"point_name\":\"xj01\",\"point_type\":\"charge_position\",\"theta\":-0.006636828184127808},{\"description\":null,\"display_x\":94.8032603442183,\"display_y\":718.4241008993372,\"map_x\":0.3700815439224243,\"map_y\":-0.039397209882736206,\"point_name\":\"xj02\",\"point_type\":\"charge_position\",\"theta\":-0.025537949055433273},{\"description\":null,\"display_x\":119.55559075540914,\"display_y\":717.6730653990348,\"map_x\":0.9888898134231567,\"map_y\":-0.05817309767007828,\"point_name\":\"xj03\",\"point_type\":\"charge_position\",\"theta\":-0.01619393564760685},{\"description\":null,\"display_x\":143.24938083813518,\"display_y\":718.5586196398941,\"map_x\":1.5812345743179321,\"map_y\":-0.0360342413187027,\"point_name\":\"xj04\",\"point_type\":\"charge_position\",\"theta\":-0.025723516941070557},{\"description\":null,\"display_x\":232.47927319289337,\"display_y\":719.8404088081359,\"map_x\":3.8119819164276123,\"map_y\":-0.003989511635154486,\"point_name\":\"xj06\",\"point_type\":\"charge_position\",\"theta\":-0.03845136612653732},{\"description\":null,\"display_x\":255.7748947177098,\"display_y\":719.4504422776336,\"map_x\":4.394372463226318,\"map_y\":-0.01373867504298687,\"point_name\":\"xj07\",\"point_type\":\"charge_position\",\"theta\":-0.016651883721351624},{\"description\":null,\"display_x\":40.817994463175616,\"display_y\":629.1895486535199,\"map_x\":-0.9795501232147217,\"map_y\":-2.27026104927063,\"point_name\":\"cs03\",\"point_type\":\"charge_position\",\"theta\":-1.5717763900756836},{\"description\":null,\"display_x\":206.58103635041363,\"display_y\":572.1545611000871,\"map_x\":3.1645259857177734,\"map_y\":-3.6961357593536377,\"point_name\":\"xj08\",\"point_type\":\"charge_position\",\"theta\":-0.001402777386829257},{\"description\":null,\"display_x\":229.37567369080077,\"display_y\":571.5475760169688,\"map_x\":3.734391927719116,\"map_y\":-3.711310386657715,\"point_name\":\"xj09\",\"point_type\":\"charge_position\",\"theta\":-0.006787720136344433},{\"description\":null,\"display_x\":86.47069086923166,\"display_y\":430.5878956528322,\"map_x\":0.16176730394363403,\"map_y\":-7.235302448272705,\"point_name\":\"xj10\",\"point_type\":\"charge_position\",\"theta\":-0.013114661909639835},{\"description\":null,\"display_x\":108.8162644383868,\"display_y\":430.6737072665437,\"map_x\":0.7204066514968872,\"map_y\":-7.233157157897949,\"point_name\":\"xj11\",\"point_type\":\"charge_position\",\"theta\":-0.014371409080922604},{\"description\":null,\"display_x\":133.1744126502512,\"display_y\":430.1798756393809,\"map_x\":1.3293603658676147,\"map_y\":-7.245502948760986,\"point_name\":\"xj12\",\"point_type\":\"charge_position\",\"theta\":-0.015018240548670292},{\"description\":null,\"display_x\":161.51049373283246,\"display_y\":431.19336439381,\"map_x\":2.037762403488159,\"map_y\":-7.220165729522705,\"point_name\":\"xj14\",\"point_type\":\"charge_position\",\"theta\":-0.008522426709532738},{\"description\":null,\"display_x\":195.22727675397283,\"display_y\":430.60412718945554,\"map_x\":2.8806819915771484,\"map_y\":-7.234896659851074,\"point_name\":\"xj15\",\"point_type\":\"charge_position\",\"theta\":-0.04301932454109192},{\"description\":null,\"display_x\":253.1559524959929,\"display_y\":429.16262940820116,\"map_x\":4.328898906707764,\"map_y\":-7.270934104919434,\"point_name\":\"xj16\",\"point_type\":\"charge_position\",\"theta\":-0.004931504372507334},{\"description\":null,\"display_x\":82.47871663453107,\"display_y\":144.32586454859577,\"map_x\":0.06196794658899307,\"map_y\":-14.391853332519531,\"point_name\":\"xj17\",\"point_type\":\"charge_position\",\"theta\":-0.006985932122915983},{\"description\":null,\"display_x\":105.42720160741804,\"display_y\":143.59119201315653,\"map_x\":0.635680079460144,\"map_y\":-14.4102201461792,\"point_name\":\"xj18\",\"point_type\":\"charge_position\",\"theta\":0.009762192144989967},{\"description\":null,\"display_x\":129.20760915864096,\"display_y\":143.9194085610001,\"map_x\":1.2301902770996094,\"map_y\":-14.40201473236084,\"point_name\":\"xj19\",\"point_type\":\"charge_position\",\"theta\":0.0028306327294558287},{\"description\":null,\"display_x\":153.81274470965946,\"display_y\":143.49593902385325,\"map_x\":1.8453186750411987,\"map_y\":-14.412601470947266,\"point_name\":\"xj20\",\"point_type\":\"charge_position\",\"theta\":-0.019948279485106468},{\"description\":null,\"display_x\":180.8180114504991,\"display_y\":142.21896913321362,\"map_x\":2.5204503536224365,\"map_y\":-14.444525718688965,\"point_name\":\"xj21\",\"point_type\":\"charge_position\",\"theta\":-0.04347388818860054},{\"description\":null,\"display_x\":201.96516689710072,\"display_y\":141.3210657042106,\"map_x\":3.0491292476654053,\"map_y\":-14.466973304748535,\"point_name\":\"xj22\",\"point_type\":\"charge_position\",\"theta\":0.0023504674900323153},{\"description\":null,\"display_x\":225.73110244078782,\"display_y\":141.74506929896668,\"map_x\":3.643277645111084,\"map_y\":-14.45637321472168,\"point_name\":\"xj23\",\"point_type\":\"charge_position\",\"theta\":-0.006603051908314228},{\"description\":null,\"display_x\":249.63569269127112,\"display_y\":140.5218103450267,\"map_x\":4.24089241027832,\"map_y\":-14.486954689025879,\"point_name\":\"xj24\",\"point_type\":\"charge_position\",\"theta\":0.004683047998696566},{\"description\":null,\"display_x\":196.34600346764918,\"display_y\":62.19528105563997,\"map_x\":2.9086501598358154,\"map_y\":-16.445117950439453,\"point_name\":\"gl01\",\"point_type\":\"charge_position\",\"theta\":3.1336216926574707},{\"description\":null,\"display_x\":44.93486337460781,\"display_y\":214.7162977648333,\"map_x\":-0.8766283988952637,\"map_y\":-12.632092475891113,\"point_name\":\"gl02\",\"point_type\":\"charge_position\",\"theta\":1.567547082901001},{\"description\":null,\"display_x\":84.41518538571619,\"display_y\":215.21747268412304,\"map_x\":0.1103796660900116,\"map_y\":-12.619563102722168,\"point_name\":\"xj25\",\"point_type\":\"charge_position\",\"theta\":-0.04118015244603157},{\"description\":null,\"display_x\":107.65031892582299,\"display_y\":214.57969345778685,\"map_x\":0.6912580132484436,\"map_y\":-12.635507583618164,\"point_name\":\"xj26\",\"point_type\":\"charge_position\",\"theta\":-0.019424736499786377},{\"description\":null,\"display_x\":179.45591659164552,\"display_y\":213.9677397315541,\"map_x\":2.4863979816436768,\"map_y\":-12.650806427001953,\"point_name\":\"xj28\",\"point_type\":\"charge_position\",\"theta\":-0.019927622750401497},{\"description\":null,\"display_x\":203.80237275656503,\"display_y\":214.21931901247325,\"map_x\":3.095059394836426,\"map_y\":-12.644516944885254,\"point_name\":\"xj29\",\"point_type\":\"charge_position\",\"theta\":-0.022860128432512283},{\"description\":null,\"display_x\":228.64569323292832,\"display_y\":212.94288317944284,\"map_x\":3.716142416000366,\"map_y\":-12.676427841186523,\"point_name\":\"xj30\",\"point_type\":\"charge_position\",\"theta\":-0.03384950011968613},{\"description\":null,\"display_x\":251.98585134765727,\"display_y\":211.46918935374634,\"map_x\":4.299646377563477,\"map_y\":-12.71327018737793,\"point_name\":\"xj31\",\"point_type\":\"charge_position\",\"theta\":-0.01039049867540598},{\"description\":null,\"display_x\":270.58887078480615,\"display_y\":282.30861243145745,\"map_x\":4.764721870422363,\"map_y\":-10.94228458404541,\"point_name\":\"gl03\",\"point_type\":\"charge_position\",\"theta\":1.5051608085632324},{\"description\":null,\"display_x\":47.572201973614064,\"display_y\":287.20614958992377,\"map_x\":-0.8106949329376221,\"map_y\":-10.819846153259277,\"point_name\":\"gl04\",\"point_type\":\"charge_position\",\"theta\":1.5328928232192993},{\"description\":null,\"display_x\":132.50193875280115,\"display_y\":286.6444354259307,\"map_x\":1.3125485181808472,\"map_y\":-10.83388900756836,\"point_name\":\"xj32\",\"point_type\":\"charge_position\",\"theta\":-0.028212862089276314},{\"description\":null,\"display_x\":157.46256593670597,\"display_y\":286.31801178577524,\"map_x\":1.9365642070770264,\"map_y\":-10.842049598693848,\"point_name\":\"xj33\",\"point_type\":\"charge_position\",\"theta\":-0.025675028562545776},{\"description\":null,\"display_x\":181.41338078061668,\"display_y\":285.572925126956,\"map_x\":2.535334587097168,\"map_y\":-10.860676765441895,\"point_name\":\"xj34\",\"point_type\":\"charge_position\",\"theta\":0.001841781078837812},{\"description\":null,\"display_x\":205.51529578096725,\"display_y\":285.7545428610661,\"map_x\":3.1378824710845947,\"map_y\":-10.856136322021484,\"point_name\":\"xj35\",\"point_type\":\"charge_position\",\"theta\":-0.002382668200880289},{\"description\":null,\"display_x\":252.74043660252636,\"display_y\":284.91687350098977,\"map_x\":4.318511009216309,\"map_y\":-10.87707805633545,\"point_name\":\"xj37\",\"point_type\":\"charge_position\",\"theta\":-0.014915088191628456},{\"description\":null,\"display_x\":171.4923546985931,\"display_y\":283.46889073448045,\"map_x\":2.287308931350708,\"map_y\":-10.913277626037598,\"point_name\":\"gl05\",\"point_type\":\"charge_position\",\"theta\":3.1128454208374023},{\"description\":null,\"display_x\":40.91998277723815,\"display_y\":361.05410991528464,\"map_x\":-0.9770004153251648,\"map_y\":-8.973647117614746,\"point_name\":\"gl06\",\"point_type\":\"charge_position\",\"theta\":1.5385040044784546},{\"description\":null,\"display_x\":86.40206387039923,\"display_y\":357.9481071539505,\"map_x\":0.160051628947258,\"map_y\":-9.051297187805176,\"point_name\":\"xj38\",\"point_type\":\"charge_position\",\"theta\":-0.008003578521311283},{\"description\":null,\"display_x\":110.06304815317618,\"display_y\":357.23945085347515,\"map_x\":0.7515762448310852,\"map_y\":-9.069013595581055,\"point_name\":\"xj39\",\"point_type\":\"charge_position\",\"theta\":-0.02206297405064106},{\"description\":null,\"display_x\":133.91633311038714,\"display_y\":356.5541786468896,\"map_x\":1.3479083776474,\"map_y\":-9.086145401000977,\"point_name\":\"xj40\",\"point_type\":\"charge_position\",\"theta\":-0.013481034897267818},{\"description\":null,\"display_x\":157.2034144818274,\"display_y\":355.88729328085043,\"map_x\":1.9300854206085205,\"map_y\":-9.10281753540039,\"point_name\":\"xj41\",\"point_type\":\"charge_position\",\"theta\":0.0024398458190262318},{\"description\":null,\"display_x\":105.7840856047856,\"display_y\":357.16559831551314,\"map_x\":0.6446021795272827,\"map_y\":-9.070859909057617,\"point_name\":\"gl07\",\"point_type\":\"charge_position\",\"theta\":3.1315407752990723},{\"description\":null,\"display_x\":107.71815854730966,\"display_y\":429.03144197119116,\"map_x\":0.6929540038108826,\"map_y\":-7.274213790893555,\"point_name\":\"gl08\",\"point_type\":\"charge_position\",\"theta\":3.103583335876465},{\"description\":null,\"display_x\":86.51010682418783,\"display_y\":500.3135797334674,\"map_x\":0.16275270283222198,\"map_y\":-5.492160320281982,\"point_name\":\"xj42\",\"point_type\":\"charge_position\",\"theta\":-0.007090908009558916},{\"description\":null,\"display_x\":110.62887742178324,\"display_y\":499.98036593228034,\"map_x\":0.7657219767570496,\"map_y\":-5.500490665435791,\"point_name\":\"xj43\",\"point_type\":\"charge_position\",\"theta\":-0.016011575236916542},{\"description\":null,\"display_x\":132.9578665948232,\"display_y\":500.2355119550897,\"map_x\":1.3239467144012451,\"map_y\":-5.494112014770508,\"point_name\":\"xj44\",\"point_type\":\"charge_position\",\"theta\":0.0183713361620903},{\"description\":null,\"display_x\":156.96605448475398,\"display_y\":500.60191362199316,\"map_x\":1.9241514205932617,\"map_y\":-5.484951972961426,\"point_name\":\"xj45\",\"point_type\":\"charge_position\",\"theta\":0.005372068844735622},{\"description\":null,\"display_x\":181.90929141775828,\"display_y\":500.75343339512597,\"map_x\":2.547732353210449,\"map_y\":-5.48116397857666,\"point_name\":\"xj46\",\"point_type\":\"charge_position\",\"theta\":0.005934501066803932},{\"description\":null,\"display_x\":205.8126132814197,\"display_y\":500.39021700039183,\"map_x\":3.145315408706665,\"map_y\":-5.490244388580322,\"point_name\":\"xj47\",\"point_type\":\"charge_position\",\"theta\":-0.015539207495748997},{\"description\":null,\"display_x\":230.72895659910208,\"display_y\":499.11652774935175,\"map_x\":3.768224000930786,\"map_y\":-5.5220866203308105,\"point_name\":\"xj48\",\"point_type\":\"charge_position\",\"theta\":-0.01899406872689724},{\"description\":null,\"display_x\":254.68366243416574,\"display_y\":498.61445637621796,\"map_x\":4.367091655731201,\"map_y\":-5.534638404846191,\"point_name\":\"xj49\",\"point_type\":\"charge_position\",\"theta\":0.006557234562933445},{\"description\":null,\"display_x\":229.39457551547028,\"display_y\":283.7780337962801,\"map_x\":3.7348644733428955,\"map_y\":-10.905549049377441,\"point_name\":\"xj36\",\"point_type\":\"charge_position\",\"theta\":-0.011324089020490646},{\"description\":null,\"display_x\":105.30500016652047,\"display_y\":724.1396322229559,\"map_x\":0.6326250433921814,\"map_y\":0.10349107533693314,\"point_name\":\"CWCDZ\",\"point_type\":\"charge_position\",\"theta\":1.5574584007263184},{\"description\":null,\"display_x\":133.83662501220965,\"display_y\":215.0275389100978,\"map_x\":1.345915675163269,\"map_y\":-12.624311447143555,\"point_name\":\"xj27\",\"point_type\":\"charge_position\",\"theta\":-0.022674739360809326},{\"description\":null,\"display_x\":154.80069883464725,\"display_y\":214.781757968936,\"map_x\":1.8700175285339355,\"map_y\":-12.63045597076416,\"point_name\":\"xj80\",\"point_type\":\"charge_position\",\"theta\":-0.04772070050239563},{\"description\":null,\"display_x\":86.286246086862,\"display_y\":286.75563384956666,\"map_x\":0.15715618431568146,\"map_y\":-10.831109046936035,\"point_name\":\"xj81\",\"point_type\":\"charge_position\",\"theta\":-0.029407020658254623},{\"description\":null,\"display_x\":108.4123213825774,\"display_y\":286.6252856459426,\"map_x\":0.7103080749511719,\"map_y\":-10.834367752075195,\"point_name\":\"xj82\",\"point_type\":\"charge_position\",\"theta\":-0.020430967211723328}],\"tracker\":null,\"umap\":null,\"wall\":[{\"data\":[-0.577975869178772,-1.1936817169189453,-1.5850346088409424,-1.186330795288086],\"type\":\"line\"},{\"data\":[-0.5831493139266968,-0.6674823760986328,-1.574232816696167,-0.6709823608398438],\"type\":\"line\"},{\"data\":[0.9733922481536865,-1.4999217987060547,1.0147449970245361,-2.6486921310424805],\"type\":\"line\"},{\"data\":[3.308119773864746,-1.2658538818359375,3.165435314178467,-2.8247203826904297],\"type\":\"line\"},{\"data\":[4.423315525054932,-1.230682373046875,4.332504749298096,-2.8976497650146484],\"type\":\"line\"},{\"data\":[3.8612232208251953,-8.655926704406738,3.7617740631103516,-10.015413284301758],\"type\":\"line\"}]}}";
}
Debug.Log("获取机器人地图数据:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
Debug.Log(_response.rtMsg);
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
if (_jobject != null)
{
RobotMap = _jobject.ToObject<RobotMap>();
//实例化实体机器人的地图数据
RobotObject.RobotMap = RobotMap;
}
}
get_robot_map_done = true;
}));
//websocket
//WSRobotPos();
//WSRobotInfo();
Debug.Log("WSRobot开始监听");
var url = ws_ip_address + ws_robot_html5 + RobotObject.robotClass.id;
socketT.Init(url, WebSocketT.WstypesOf.);
}
}
#region WebSocket数据接收
private ClientWebSocket ws_robot_pos;
/// <summary>
/// 【机器人位置状态信息】
/// </summary>
//private async void WSRobotPos()
//{
// try
// {
// ws_robot_pos = new ClientWebSocket();
// CancellationToken ct = new CancellationToken();
// var url = ws_ip_address + ws_robot_html5 + RobotObject.robotClass.id;
// //Debug.Log(url);
// Uri uri = new Uri(url);
// await ws_robot_pos.ConnectAsync(uri, ct);
// Debug.Log($"位置状态信息Url{url}");
// while (true)
// {
// Debug.Log("WSRobotPos111");
// var result = new byte[1024];
// await ws_robot_pos.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());
// var str = Encoding.UTF8.GetString(result, 0, result.Length);
// //处理数据
// JObject _jobject = JObject.Parse(str);
// if (_jobject != null && _jobject["msg"] != null)
// {
// if (RobotObject != null)
// {
// RobotPos _robot_pos = JsonConvert.DeserializeObject<RobotPos>(_jobject["msg"].ToString());
// RobotObject.RobotPosQueue.Enqueue(_robot_pos);
// Debug.Log($"_robot_pos{_robot_pos != null},添加坐标队列成功");
// }
// }
// else
// {
// Debug.Log("_jobject" + _jobject != null + " _jobject[\"msg\"]" + _jobject["msg"].ToString());
// }
// }
// }
// catch (Exception ex)
// {
// Debug.LogError($"位置状态信息异步错误: {ex.Message},报错行:{ex.StackTrace}");
// }
//}
//private IEnumerator WSRobotPos()
//{
// //try
// //{
// ws_robot_pos = new ClientWebSocket();
// CancellationToken ct = new CancellationToken();
// var url = ws_ip_address + ws_robot_html5 + RobotObject.robotClass.id;
// Uri uri = new Uri(url);
// yield return ws_robot_pos.ConnectAsync(uri, ct);
// Debug.Log($"位置状态信息Url{url}");
// while (true)
// {
// Debug.Log("WSRobotPos111");
// var result = new byte[1024];
// var receiveTask = ws_robot_pos.ReceiveAsync(new ArraySegment<byte>(result), ct);
// // 等待接收数据完成或取消任务
// while (!receiveTask.IsCompleted && !ct.IsCancellationRequested)
// {
// yield return null;
// }
// if (ct.IsCancellationRequested)
// {
// restart_WS = true;
// yield break; // 如果取消任务,则结束协程
// }
// var receiveResult = receiveTask.Result;
// var str = Encoding.UTF8.GetString(result, 0, receiveResult.Count);
// //处理数据
// JObject _jobject = JObject.Parse(str);
// if (_jobject != null && _jobject["msg"] != null)
// {
// if (RobotObject != null)
// {
// RobotPos _robot_pos = JsonConvert.DeserializeObject<RobotPos>(_jobject["msg"].ToString());
// RobotObject.RobotPosQueue.Enqueue(_robot_pos);
// Debug.Log($"_robot_pos{_robot_pos != null},添加坐标队列成功");
// }
// }
// else
// {
// Debug.Log("_jobject" + _jobject != null + " _jobject[\"msg\"]" + _jobject["msg"].ToString());
// }
// yield return new WaitForSeconds(1f); // 等待1秒后再次接收数据
// }
// //}
// //catch (Exception ex)
// //{
// // Debug.LogError($"位置状态信息异步错误: {ex.Message},报错行:{ex.StackTrace}");
// //}
//}
// Close WebSocket connection when application quits
public void Dispose(string str)
{
try
{
//处理数据
JObject _jobject = JObject.Parse(str);
if (_jobject != null && _jobject["msg"] != null)
{
if (RobotObject != null)
{
RobotPos _robot_pos = JsonConvert.DeserializeObject<RobotPos>(_jobject["msg"].ToString());
RobotObject.RobotPosQueue.Enqueue(_robot_pos);
Debug.Log($"_robot_pos{_robot_pos != null},添加坐标队列成功");
}
}
else
{
Debug.Log("_jobject" + _jobject != null + " _jobject[\"msg\"]" + _jobject["msg"].ToString());
}
}
catch (Exception e)
{
Debug.Log($"机器人位置状态信息错误:{e.Message}{e.StackTrace}");
}
}
/// <summary>
/// 【机器人信息】
/// </summary>
private async void WSRobotInfo()
{
ClientWebSocket ws = new ClientWebSocket();
CancellationToken ct = new CancellationToken();
Uri uri = new Uri(ws_ip_address + ws_robot_info);
await ws.ConnectAsync(uri, ct);
while (true)
{
if (get_info_times == 0) continue;
var result = new byte[1024];
await ws.ReceiveAsync(new ArraySegment<byte>(result), new CancellationToken());
var str = Encoding.UTF8.GetString(result, 0, result.Length);
//处理数据
RobotInfo[] _robot_info = JsonConvert.DeserializeObject<RobotInfo[]>(str.ToString());
RobotInfosQueue.Enqueue(_robot_info);
get_info_times++;
}
}
#endregion
#region 2
/*
* 任务描述:
* 功能:点击机柜,下发巡检任务。
* 1.【获取机器人任务队列】先看机器人是否正在巡检(没有才下发)
* 2.【定点任务下发】“pointList“参数中”pointNo “为机柜巡检点,其他参数照抄不动
* 3.下发后看【获取机器人任务队列】是否巡检完成
* 4.巡检完成查看【查询巡检报表数据】将“pic“字段的值从” thermal “开始拆分把thermal后的截取出来发送到后台进行保存。
*/
/// <summary>
/// 功能点2调用示例
/// </summary>
/// <param name="_point_no">点位编号</param>
public void UsageExample(List<string> _point_no)
{
//开始执行第一步:查询当前是否正在巡检
GetTaskQueue((_error, _no_task) =>
{
if (_error != null)
{
Debug.Log("巡检中:" + _error);
return;
}
//判断当前是否正在巡检
if (!_no_task)
{
//如果准备下发巡检任务时正在巡检,则执行如下操作
Debug.Log("当前正在巡检中!请稍后再试!");
//ToDo
//...
//SecondConfirmPanel.DeleteConform(null, "当前正在巡检中!请稍后再试!");
return;
}
Debug.Log("当前无巡检任务,开始下发任务!");
//若未在巡检,执行第二步:下发任务
PostRobotTask(_point_no, (_error, _post_success) =>
{
//判断是否下发成功
if (_error != null)
{
Debug.Log(_error);
return;
}
//下发成功后开始执行第三步:循环查询直至结束任务
StartCoroutine(Cyclic_GetTaskQuery((_error) =>
{
if (_error != null)
{
Debug.Log("查询任务失败:" + _error);
return;
}
Debug.Log("巡检任务完成,开始获取查询巡检报表数据!" + System.DateTime.Now.ToString());
StartCoroutine(DelayedAction(20.0f, () =>
{
Debug.Log("等待20秒后执行【查询巡检报表数据】" + System.DateTime.Now.ToString());
// 继续执行后续操作
//任务结束后执行第四步查看【查询巡检报表数据】将“pic“字段的值从” thermal “开始拆分把thermal后的截取出来发送到后台进行保存
GetInsReport((_error, _success) =>
{
if (_error != null)
{
Debug.Log("巡检报表数据错误:" + _error);
return;
}
Dictionary<string, List<string>> _pics = new Dictionary<string, List<string>>();
string head_url = http_ip_address + "/jk";
for (int i = 0; i < InsReport.thermal.Count; i++)
{
var _ps = new List<string>();
var pic1 = InsReport.thermal[i].pic1.Split("images")[1];
var pic2 = InsReport.thermal[i].pic2.Split("images")[1];
var pic3 = InsReport.thermal[i].pic3.Split("images")[1];
var pic4 = InsReport.thermal[i].pic4.Split("images")[1];
var pic5 = InsReport.thermal[i].pic5.Split("images")[1];
var pic6 = InsReport.thermal[i].pic6.Split("images")[1];
var pic7 = InsReport.thermal[i].pic7.Split("images")[1];
_ps.Add(head_url + pic1);
_ps.Add(head_url + pic2);
_ps.Add(head_url + pic3);
_ps.Add(head_url + pic4);
_ps.Add(head_url + pic5);
_ps.Add(head_url + pic6);
_ps.Add(head_url + pic7);
_pics.Add(InsReport.thermal[i].id, _ps);
}
//ToDo
//将处理好的数据发送给后台
//...
/*foreach (var pair in _pics)
{
string key = pair.Key;
List<string> valueList = pair.Value;
for (int i = 0; i < valueList.Count; i++)
{
StartCoroutine(CombineJSON.SaveImageAsBase64(valueList[i], pair.Key, action_Base64));
}
}
Debug.Log("图片路径处理完成!");*/
StartCoroutine(ProcessImages(_pics, () =>
{
Debug.Log("等待2秒后开始更新巡检历史数据" + System.DateTime.Now.ToString());
StartCoroutine(DelayedAction(2.0f, () =>
{
if (GameManager.Inst.Jk_URL != null)
{
RobotReturnData.Inst.init((x) =>
{
Debug.Log("图片路径处理完成!" + System.DateTime.Now.ToString());
});
}
}));
}));
});
}));
}));
});
});
}
public IEnumerator DelayedAction(float delayTime, Action action)
{
yield return new WaitForSeconds(delayTime);
action?.Invoke();
}
/// <summary>
/// 处理图片
/// </summary>
/// <param name="_pics"></param>
/// <param name="_callback"></param>
/// <returns></returns>
IEnumerator ProcessImages(Dictionary<string, List<string>> _pics, Action _callback = null)
{
foreach (var pair in _pics)
{
string key = pair.Key;
List<string> valueList = pair.Value;
for (int i = 0; i < valueList.Count; i++)
{
yield return StartCoroutine(CombineJSON.SaveImageAsBase64(valueList[i], pair.Key, action_Base64));
}
}
_callback?.Invoke();
}
/// <summary>
/// 获取机器人任务列队
/// </summary>
/// <param name="_callback">参数1异常信息参数2true->当前未在巡检</param>
public void GetTaskQueue(Action<string, bool> _callback = null)
{
Debug.Log("查询当前巡检状态中...");
//注意接口地址中最后一个为机器人id后期根据业务修改机器人id
StartCoroutine(GetRequest(http_ip_address + get_task_queue + RobotObject.robotClass.robot_id, request_header, null, (_error, _data) =>
{
Debug.Log($"RobotObject{RobotObject != null},RobotObject.robotClass{RobotObject.robotClass != null},RobotObject.robotClass.robot_id{RobotObject.robotClass.robot_id}");
Debug.Log($"IP{http_ip_address}get_task_queue{get_task_queue} RobotObject.robotClass.robot_id{RobotObject.robotClass.robot_id}_data{_data}");
if (_error != null)
{
_callback?.Invoke(_error, false);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"操作成功 \",\"rtData \":{\"data\":[],\"message\":null,\"robotId\":\"56ce6c39b8144d91ac3767e757933955\"}}";
}
Debug.Log("获取机器人任务列队:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
if (_jobject != null)
{
RobotTask = _jobject.ToObject<RobotTask>();
//实例化实体机器人的任务数据注意机器人id是否匹配
if (RobotTask.robotId == RobotObject.robotClass.robot_id)
RobotObject.RobotTask = RobotTask;
//判断每条 RobotTask.data[].Task_type是否为fixed
bool is_fixed = false;
if (RobotTask.data != null)
{
for (int i = 0; i < RobotTask.data.Count; i++)
{
if (!string.IsNullOrEmpty(RobotTask.data[i].Task_type))
{
// 添加机器人ID与任务ID键对值
if (!string.IsNullOrEmpty(RobotTask.data[i].Ins_Id))
{
if (id_insId.ContainsKey(RobotTask.robotId))
{
id_insId[RobotTask.robotId] = RobotTask.data[i].Ins_Id;
}
else
{
id_insId.Add(RobotTask.robotId, RobotTask.data[i].Ins_Id);
}
}
Debug.Log($"获取到任务字典robotId{RobotTask.robotId}任务ID{RobotTask.data[i].Ins_Id}");
is_fixed = true;
break;
}
}
}
//...如果没有返回True表示未在巡检否则返回False
_callback?.Invoke(null, RobotTask.data == null || RobotTask.data.Count == 0 || !is_fixed);
}
}
else
{
_callback?.Invoke(_response.rtMsg, false);
}
}));
}
/// <summary>
/// 机器人任务下发
/// </summary>
public void PostRobotTask(List<string> _point_no, Action<string, bool> _callback = null)
{
/*var p = new PointList();
for (int i = 0; i < _point_no.Count; i++)
{
if (i != _point_no.Count - 1)
p.pointList.Add(new PointNo(_point_no[i] + ","));
else
p.pointList.Add(new PointNo(_point_no[i]));
}
var _pointList = JsonConvert.SerializeObject(p.pointList);*/
//var p = new RootObjectPoin();
//p.robotIp = RobotObject.robotClass.ipAddr;
//List<PointData> pl = new List<PointData>(); ;
//for (int i = 0; i < _point_no.Count; i++)
// pl.Add(new PointData { pointNo = _point_no[i] });
//p.pointList = pl;
//var _pointList = JsonConvert.SerializeObject(p);
List<string> _pointList = new List<string>();
for (int i = 0; i < _point_no.Count; i++)
{
_pointList.Add(new PointData().BackToString(_point_no[i]));
}
string pointList = string.Empty;
if (_pointList.Count > 1)
{
pointList = string.Join(",", _pointList);
}
else
pointList = _pointList[0];
var _json_data = string.Format("{{\"robotIp\":\"{0}\",\"pointList\":[{1}]}}", RobotObject.robotClass.ipAddr, pointList);
//string _json_data = "{\r\n \"robotIp\": \"" + RobotObject.robotClass.ipAddr + "\",\r\n \"pointList\": [" + _pointList + " ]\r\n}";
//string _json_data = "{\r\n \"robotIp\": \"192.168.8.198\",\r\n \"pointList\": [\r\n {\r\n \"pointNo\": \"" + _point_no + "\",\r\n \"04\": \"0\",\r\n \"06\": \"0\",\r\n \"01\": \"1\",\r\n \"cabinType\": \"1\",\r\n \"03\": \"0\",\r\n \"05\": \"0\"\r\n }\r\n ]\r\n}";
StartCoroutine(PostRequest(http_ip_address + post_robot_fixed_point, _json_data, request_header, (_error, _data) =>
{
if (_error != null)
{
Debug.Log(_error);
//_callback?.Invoke(_error, false);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"定点巡检任务下发成功!\",\"rtData\":null}";
}
Debug.Log("机器人任务下发:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
Debug.Log(_response.rtMsg);
if (_response.rtCode.Equals(rtCode))//返回值匹配表示下发成功
{
//下发成功后循环执行获取机器人任务队列,直至任务队列为空后继续执行后续操作
_callback?.Invoke(null, true);
}
else
{
_callback?.Invoke(_response.rtMsg, false);
}
}));
}
/// <summary>
/// 执行循环查询等待操作
/// </summary>
/// <returns></returns>
public IEnumerator Cyclic_GetTaskQuery(Action<string> _callback = null)
{
int _call_time = 0;//调用次数
int _response_time = 0;//返回次数
bool _finish = false;//结束循环操作
int _error_time = 0;
while (true)
{
if (_finish) break;
//循环查询异常次数超过一定值,结束查询并跳出循环,避免过多不必要的开销
if (_error_time > 120)
{
_callback?.Invoke("查询异常!");
break;
}
yield return new WaitForSeconds(5);
if (_call_time != _response_time) continue;
#region
if (_response_time == 120)
{
//Debug.Log("测试:等待次数过多");
_callback?.Invoke("等待次数过多!");
break;
}
#endregion
_call_time++;
Debug.Log("执行第" + _call_time + "次循环");
GetTaskQueue((_error, _no_task) =>
{
if (_error != null)
{
_error_time++;
_response_time++;
Debug.Log("请求返回第" + _response_time + "次");
return;
}
if (_no_task)
{
Debug.Log("当前无巡检任务,结束循环读取!");
//当前无任务,结束循环操作
_finish = true;
_callback?.Invoke(null);
}
else
{
//当前任务尚未结束,继续执行循环操作等待任务结束
_response_time++;
Debug.Log("请求返回第" + _response_time + "次(任务尚未结束)");
}
});
}
yield return null;
}
/// <summary>
/// 获取巡检报表数据
/// </summary>
public void GetInsReport(Action<string, bool> _callback)
{
if (!id_insId.ContainsKey(RobotObject.robotClass.robot_id))
{
_callback?.Invoke("未获取到机器人任务ID", false);
}
else
Debug.Log($"获取巡检报表数据机器人ID{RobotObject.robotClass.robot_id}任务ID{id_insId[RobotObject.robotClass.robot_id]}");
//需补充请求参数机器人任务队列中的Ins_Id,根据业务筛选具体数据
//StartCoroutine(GetRequest(http_ip_address + get_record_ins_report, request_header, new Dictionary<string, string>() { { "insId", RobotTask.data[0].Ins_Id } }, (_error, _data) =>
StartCoroutine(GetRequest(http_ip_address + get_record_ins_report, request_header, new Dictionary<string, string>() { { "insId", id_insId[RobotObject.robotClass.robot_id] } }, (_error, _data) =>
{
if (_error != null)
{
Debug.Log("获取巡检报表数据:" + _error);
_callback?.Invoke(_error, false);
return;
_data = "{\"rtCode\":\"0\",\"rtMsg\":\"操作失败\",\"rtData\":{\"times\":\"7.18\",\"thermal\":[{\"cabinId\":\"e4d5ed7d931511ee8ea90242ac0a0006\",\"alarmTypeName\":null,\"alarm_level\":\"-\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinDirection\":\"1\",\"pic1\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_6_1701756260232.jpg\",\"pic6\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_1_1701756260232.jpg\",\"pic7\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_0_1701756260232.jpg\",\"alarmLevel\":null,\"id\":\"5405d494933411ee98340242ac0a0005\",\"pic2\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_5_1701756260232.jpg\",\"pic3\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_4_1701756260232.jpg\",\"pic4\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_3_1701756260232.jpg\",\"cabinName\":\"R68 省网/通信专用UPS电源屏\",\"pic5\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5ed7d931511ee8ea90242ac0a0006/1/H1R681_0_2_1701756260232.jpg\",\"robotName\":\"巡检机器人\",\"index\":1,\"robotId\":\"56ce6c39b8144d91ac3767e757933955\",\"alarmLevelName\":\"-\",\"roomName\":\"H1\",\"cabinNo\":\"H1R68\",\"inspectionId\":\"6978d1982a4449c48f7e4b2064d1b28b\",\"alarmStatus\":\"0\",\"alarmType\":null,\"time\":\"2023-12-05 14:05:45\",\"thermalData\":\"[{\\\"picName\\\":\\\"H1R681_0_0_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_1_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_2_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_3_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_4_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_5_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R681_0_6_1701756260232.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"}]\",\"status\":\"图片1温度0.0℃,图片2温度0.0℃,图片3温度0.0℃,图片4温度0.0℃,图片5温度0.0℃,图片6温度0.0℃,图片7温度0.0℃\"},{\"cabinId\":\"e4d5d019931511ee8ea90242ac0a0006\",\"alarmTypeName\":null,\"alarm_level\":\"-\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinDirection\":\"1\",\"pic1\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_6_1701756159233.jpg\",\"pic6\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_1_1701756159233.jpg\",\"pic7\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_0_1701756159233.jpg\",\"alarmLevel\":null,\"id\":\"17f029bd933411ee98340242ac0a0005\",\"pic2\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_5_1701756159233.jpg\",\"pic3\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_4_1701756159233.jpg\",\"pic4\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_3_1701756159233.jpg\",\"cabinName\":\"R67 省网/中兴OTN屏II\",\"pic5\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5d019931511ee8ea90242ac0a0006/1/H1R671_0_2_1701756159233.jpg\",\"robotName\":\"巡检机器人\",\"index\":2,\"robotId\":\"56ce6c39b8144d91ac3767e757933955\",\"alarmLevelName\":\"-\",\"roomName\":\"H1\",\"cabinNo\":\"H1R67\",\"inspectionId\":\"6978d1982a4449c48f7e4b2064d1b28b\",\"alarmStatus\":\"0\",\"alarmType\":null,\"time\":\"2023-12-05 14:04:04\",\"thermalData\":\"[{\\\"picName\\\":\\\"H1R671_0_0_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_1_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_2_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_3_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_4_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_5_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R671_0_6_1701756159233.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"}]\",\"status\":\"图片1温度0.0℃,图片2温度0.0℃,图片3温度0.0℃,图片4温度0.0℃,图片5温度0.0℃,图片6温度0.0℃,图片7温度0.0℃\"},{\"cabinId\":\"e4d5b309931511ee8ea90242ac0a0006\",\"alarmTypeName\":null,\"alarm_level\":\"-\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinDirection\":\"1\",\"pic1\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_6_1701756057287.jpg\",\"pic6\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_1_1701756057287.jpg\",\"pic7\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_0_1701756057287.jpg\",\"alarmLevel\":null,\"id\":\"db5e1cca933311ee98340242ac0a0005\",\"pic2\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_5_1701756057287.jpg\",\"pic3\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_4_1701756057287.jpg\",\"pic4\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_3_1701756057287.jpg\",\"cabinName\":\"R66 省网/中兴OTN屏I\",\"pic5\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d5b309931511ee8ea90242ac0a0006/1/H1R661_0_2_1701756057287.jpg\",\"robotName\":\"巡检机器人\",\"index\":3,\"robotId\":\"56ce6c39b8144d91ac3767e757933955\",\"alarmLevelName\":\"-\",\"roomName\":\"H1\",\"cabinNo\":\"H1R66\",\"inspectionId\":\"6978d1982a4449c48f7e4b2064d1b28b\",\"alarmStatus\":\"0\",\"alarmType\":null,\"time\":\"2023-12-05 14:02:22\",\"thermalData\":\"[{\\\"picName\\\":\\\"H1R661_0_0_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_1_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_2_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_3_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_4_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_5_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R661_0_6_1701756057287.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"}]\",\"status\":\"图片1温度0.0℃,图片2温度0.0℃,图片3温度0.0℃,图片4温度0.0℃,图片5温度0.0℃,图片6温度0.0℃,图片7温度0.0℃\"},{\"cabinId\":\"e4d59500931511ee8ea90242ac0a0006\",\"alarmTypeName\":null,\"alarm_level\":\"-\",\"roomId\":\"0703de6c8f6111eeb00f0242ac0a0005\",\"cabinDirection\":\"1\",\"pic1\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_6_1701755956164.jpg\",\"pic6\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_1_1701755956164.jpg\",\"pic7\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_0_1701755956164.jpg\",\"alarmLevel\":null,\"id\":\"a9e5fde1933311ee98340242ac0a0005\",\"pic2\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_5_1701755956164.jpg\",\"pic3\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_4_1701755956164.jpg\",\"pic4\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_3_1701755956164.jpg\",\"cabinName\":\"光传输SDH中兴S385\",\"pic5\":\"/home/dcm360/itacs/images/thermal/6978d1982a4449c48f7e4b2064d1b28b/e4d59500931511ee8ea90242ac0a0006/1/H1R651_0_2_1701755956164.jpg\",\"robotName\":\"巡检机器人\",\"index\":4,\"robotId\":\"56ce6c39b8144d91ac3767e757933955\",\"alarmLevelName\":\"-\",\"roomName\":\"H1\",\"cabinNo\":\"H1R65\",\"inspectionId\":\"6978d1982a4449c48f7e4b2064d1b28b\",\"alarmStatus\":\"0\",\"alarmType\":null,\"time\":\"2023-12-05 14:00:59\",\"thermalData\":\"[{\\\"picName\\\":\\\"H1R651_0_0_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_1_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_2_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_3_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_4_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_5_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"},{\\\"picName\\\":\\\"H1R651_0_6_1701755956164.jpg\\\",\\\"thermalHigh\\\":\\\"0.0\\\",\\\"thermalLow\\\":\\\"0.0\\\"}]\",\"status\":\"图片1温度0.0℃,图片2温度0.0℃,图片3温度0.0℃,图片4温度0.0℃,图片5温度0.0℃,图片6温度0.0℃,图片7温度0.0℃\"}],\"taskName\":\"123\",\"startTime\":\"2023-12-05 13:58:32\",\"endTime\":\"2023-12-05 14:05:43\",\"completionRatio\":\"8%\",\"pointNum\":\"50\",\"ins\":[]}}";
}
Debug.Log("获取巡检报表数据:" + _data);
var _response = JsonConvert.DeserializeObject<ResponseData>(_data);
if (_response.rtCode.Equals(rtCode) && _response.rtData is JObject _jobject)
{
Debug.Log($"rtMsg{_response.rtMsg} \n _jobject{(_jobject != null)}");
if (_jobject != null)
{
InsReport = _jobject.ToObject<InsReport>();
_callback?.Invoke(null, true);
}
}
else
{
_callback?.Invoke(_response.rtMsg, false);
}
}));
}
#endregion
#region 3
public void ViewInspectionResults(Action<string, List<Sprite>> _callback)
{
//注意补充Token值
StartCoroutine(GetRequest(http_ip_ma_address + get_inspection, new Dictionary<string, string>() { { "X-Token", "" } }, null, (_error, _data) =>
{
if (_error != null)
{
Debug.Log(_error);
_callback?.Invoke(_error, null);
return;
}
ResponseData_ma response = JsonConvert.DeserializeObject<ResponseData_ma>(_data);
if (response.message.Equals("操作成功") && response.data is JObject jobject)
{
if (response.data != null)
{
var inspection_datas = jobject.ToObject<List<InspectionResult>>();
var sprites = new List<Sprite>();
for (int i = 0; i < inspection_datas.Count; i++)
{
//base64转图片
byte[] bytes = Convert.FromBase64String(_data);
Texture2D text2D = new Texture2D(100, 100);
text2D.LoadImage(bytes);
Sprite sprite = Sprite.Create(text2D, new Rect(0, 0, text2D.width, text2D.height), new Vector2(0.5f, 0.5f));
sprites.Add(sprite);
}
_callback?.Invoke(null, sprites);
}
}
}));
}
#endregion
private void OnDestroy()
{
CloseClientWebSocket();
}
/// <summary>
/// 关闭ClientWebSocket。
/// </summary>
public void CloseClientWebSocket()
{
//关闭Socket
if (ws_robot_pos != null && ws_robot_pos.State == WebSocketState.Open)
{
var task = ws_robot_pos.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None);
task.Wait();
}
}
}