/// <summary> /// 通过节点值名称,获取本设备信息的值 /// </summary> /// <param name="name">节点值名称</param> /// <returns>JSON值</returns> public JToken GetJsonValueByName(string name) { JToken result = null; jsonLock.Enter(); if (JObjectData.ContainsKey(name)) { result = JObjectData[name]; } jsonLock.Leave(); return(result); }
private void ThreadReadBackground() { Thread.Sleep(1000); // 默认休息一下下 BeforStart(); // 需要子类重写 while (isQuit == 0) { Thread.Sleep(100); var isDataChange = false; // 数据是否发生了变化 foreach (var Request in Requests) { if ((DateTime.Now - Request.LastActiveTime).TotalMilliseconds > Request.CaptureInterval) { Request.LastActiveTime = DateTime.Now; var read = ReadWriteDevice.Read(Request.Address, Request.Length); if (read.IsSuccess) { IsError = false; isDataChange = true; ParseFromRequest(read.Content, Request); ActiveTime = DateTime.Now; RequestSuccessCount++; } else { IsError = true; RequestFailedCount++; } } } // 更新Json字符串缓存 jsonLock.Enter(); if (isDataChange) { JsonData = JObjectData.ToString(); } jsonLock.Leave(); } AfterClose(); // 需要子类重写 autoResetQuit.Set(); // 通知关闭的线程继续 }
public object GetData() { return(JObjectData == null ? null : JObjectData.ToObject(MsgType.DataType)); }