using Newtonsoft.Json; using System; using System.Collections; using System.Collections.Generic; using Unity.VisualScripting; using UnityEngine; using UnityEngine.UI; using static IRPopup; using System.Linq; using Newtonsoft.Json.Linq; /// /// 红外 /// public class IRPopup : MonoBehaviour { public Root myroot = new Root(); //public Msg msg = new Msg(); public JObject msg; public Root_Data root_Data = new Root_Data(); public List data = new List(); public static IRPopup Inst; public Transform content; public RectTransform content_ret; public GridLayoutGroup content_grid; public GameObject prefab; public Button cls_bt; public GameObject popup; float x; float y; private void Awake() { Inst = this; x = content_ret.sizeDelta.x; popup.SetActive(false); } // Start is called before the first frame update void Start() { cls_bt.onClick.AddListener(() => { popup.SetActive(false); }); } // Update is called once per frame void Update() { if (popup.activeSelf) { y = content_grid.padding.top + content.childCount * content_grid.cellSize.y + (content.childCount - 1) * content_grid.spacing.y; content_ret.sizeDelta = new Vector2(x, y); } } /// /// 加载红外检测详情 /// public void LoadmoreDetails() { //StartCoroutine(CombineJSON.GetJson_GET(GameManager.Inst.Jk_URL.hwjc_cx, GameManager.Inst.arguments.token, (jsonResult) => //{ var jsonResult = "{\"code\":\"000000\",\"message\":\"操作成功\",\"data\":{\"personFlag\":\"1\",\"data\":\"{\\\"result\\\":0,\\\"remark\\\":\\\"\\\",\\\"data\\\":[{\\\"alarmid\\\":\\\"A6304521252331213883\\\",\\\"alarmcode\\\":\\\"1\\\",\\\"typeflag\\\":1,\\\"title\\\":\\\"someone intrusion!\\\",\\\"deveui\\\":\\\"1@004a770062c0042f\\\",\\\"devtype\\\":\\\"sensor_infrared_intrusion\\\",\\\"alarmlevel\\\":1,\\\"alarmtime\\\":\\\"2024-04-28 16:15:07\\\",\\\"descp\\\":\\\"\\\",\\\"cleartime\\\":null,\\\"confirmstate\\\":0,\\\"confirmtime\\\":null,\\\"confirmer\\\":null,\\\"remark\\\":null,\\\"devname\\\":\\\"人体红外传感器-3\\\",\\\"addr\\\":\\\"\\\",\\\"relaobjid\\\":null,\\\"relaobjtype\\\":0,\\\"relaobjname\\\":null},{\\\"alarmid\\\":\\\"A4800272191298919822\\\",\\\"alarmcode\\\":\\\"1\\\",\\\"typeflag\\\":1,\\\"title\\\":\\\"someone intrusion!\\\",\\\"deveui\\\":\\\"1@004a770062c004e7\\\",\\\"devtype\\\":\\\"sensor_infrared_intrusion\\\",\\\"alarmlevel\\\":1,\\\"alarmtime\\\":\\\"2024-04-28 16:14:01\\\",\\\"descp\\\":\\\"\\\",\\\"cleartime\\\":null,\\\"confirmstate\\\":0,\\\"confirmtime\\\":null,\\\"confirmer\\\":null,\\\"remark\\\":null,\\\"devname\\\":\\\"人体红外传感器-2\\\",\\\"addr\\\":\\\"\\\",\\\"relaobjid\\\":null,\\\"relaobjtype\\\":0,\\\"relaobjname\\\":null},{\\\"alarmid\\\":\\\"A8060430184138534773\\\",\\\"alarmcode\\\":\\\"1\\\",\\\"typeflag\\\":1,\\\"title\\\":\\\"someone intrusion!\\\",\\\"deveui\\\":\\\"1@004a770062c001a2\\\",\\\"devtype\\\":\\\"sensor_infrared_intrusion\\\",\\\"alarmlevel\\\":1,\\\"alarmtime\\\":\\\"2024-04-28 16:12:24\\\",\\\"descp\\\":\\\"\\\",\\\"cleartime\\\":null,\\\"confirmstate\\\":0,\\\"confirmtime\\\":null,\\\"confirmer\\\":null,\\\"remark\\\":null,\\\"devname\\\":\\\"人体红外传感器-1\\\",\\\"addr\\\":\\\"\\\",\\\"relaobjid\\\":null,\\\"relaobjtype\\\":0,\\\"relaobjname\\\":null}]}\"},\"serverTime\":\"1714291536526\"}"; if (jsonResult != null) { try { myroot = JsonConvert.DeserializeObject(jsonResult); if (myroot.message == "操作成功") { Debug.Log("获取红外数据成功!"); //for (int i = 0; i < myroot.data.Count; i++) { //var go = GameObject.Instantiate(prefab, content); //var t = go.GetComponent(); msg = JObject.Parse(myroot.data.ToString()); //var txt = myroot.data.personFlag; //var txt = msg["personFlag"].ToString(); root_Data = JsonConvert.DeserializeObject(msg["data"].ToString().Trim()); data = root_Data.data; //if (txt == "1") t.text1.text = "有异物"; //else if (txt == "0") t.text1.text = "无异物"; //t.text1.text = myroot.data[i].personFlag; //t.text2.text = myroot.data[i].particulars; } } else { SecondConfirmPanel.DeleteConform(null, myroot.message); } } catch (Exception e) { SecondConfirmPanel.DeleteConform(null, "红外检测序列化错误:" + e.Message + "," + e.StackTrace); } } //})); } [System.Serializable] public class Msg { /// /// 1-有人;0-无人 /// public string personFlag; public Root_Data data; } [System.Serializable] public class Root_Data { /// /// /// public int result; /// /// 告警备注信息 /// public string remark; /// /// /// public List data; } [System.Serializable] public class Data { /// /// 告警流水号 /// public string alarmid; /// /// 告警码 /// public string alarmcode; /// /// 类型标记: 0: 告警恢复;1: 告警发生;2: 通知消息; /// public int typeflag; /// /// 告警标题 /// public string title; /// /// 告警设备标识 /// public string deveui; /// /// 告警设备类型 /// public string devtype; /// /// 告警级别 /// public int alarmlevel; /// /// 告警发生时间 /// public DateTime alarmtime; /// /// 告警详细描述 /// public string descp; /// /// 告警恢复时间 /// public string cleartime; /// /// 告警确认状态: 0-未确认,1-已确认 /// public int confirmstate; /// /// 告警确认时间, 若有值,为 yyyy-MM-dd HH:mm:ss 格式 /// public string confirmtime; /// /// 告警确认人 /// public string confirmer; /// /// /// public string remark; /// /// 传感器名字 /// public string devname; /// /// /// public string addr; /// /// /// public string relaobjid; /// /// /// public int relaobjtype; /// /// /// public string relaobjname; } [System.Serializable] public class Root { /// /// /// public string code; /// /// 操作成功 /// public string message; /// /// /// public object data; /// /// /// public string serverTime; } }