internal LYR001DataCache GetDataCache() { if (_dataCache == null || _dataCache.IsComplete() || _dataCache.IsTimeout()) { _dataCache = new LYR001DataCache(); } return(_dataCache); }
private void ProcessDataCache(LYR001Device d, LYR001DataCache dataCache) { if (dataCache.IsComplete()) { GRData grdata = dataCache.ToGRData(); d.DeviceDataManager.Last = grdata; // save // int id = GuidHelper.ConvertToInt32(d.Guid); DBI.Instance.InsertGRData(id, grdata); } }
/// <summary> /// /// </summary> /// <param name="task"></param> /// <param name="pr"></param> private void ProcessReadStatus(ITask task, IParseResult pr) { byte[] bs = (byte[])pr.Results["Status"]; LYR001StatusData statusData = LYR001StatusDataParser.Parse(bs); LYR001Device d = (LYR001Device)task.Device; LYR001DataCache cache = d.DataCacheManager.GetDataCache(); cache.StatusData = statusData; ProcessDataCache(d, cache); }
//#region ProcessReadStatus ///// <summary> ///// ///// </summary> ///// <param name="task"></param> ///// <param name="parseResult"></param> //private void ProcessReadStatus(ITask task, IParseResult pr) //{ // LYR001Device d = (LYR001Device ) task.Device; // byte[] bsStatus = (byte[])pr.Results["data"]; // Debug.Assert(bsStatus.Length == 4); // byte b = bsStatus[3]; // bool hasPowerAlarm = (b & (byte)Math.Pow(2, 7)) > 0; // d.StatusAndAlarmDictionary[LYR001Device.StatusAndAlarmEnum.AlaramPower] = hasPowerAlarm; //} //#endregion //ProcessReadStatus #region ProcessReadReal /// <summary> /// /// </summary> /// <param name="d"></param> /// <param name="parseResult"></param> private void ProcessReadReal(ITask task, IParseResult pr) { //GRData data = new GRData(); LYR001AnalogData data = new LYR001AnalogData(); //data.DT = DateTime.Now; data.GT1 = Convert.ToSingle(pr.Results["GT1"]); data.BT1 = Convert.ToSingle(pr.Results["BT1"]); data.GT2 = Convert.ToSingle(pr.Results["GT2"]); data.BT2 = Convert.ToSingle(pr.Results["BT2"]); data.OT = Convert.ToSingle(pr.Results["OT"]); //data.GTBase2 = Convert.ToSingle(pr.Results["GTBase2"]); data.GP1 = Convert.ToSingle(pr.Results["GP1"]); data.BP1 = Convert.ToSingle(pr.Results["BP1"]); data.WL = Convert.ToSingle(pr.Results["WL"]); data.GP2 = Convert.ToSingle(pr.Results["GP2"]); data.BP2 = Convert.ToSingle(pr.Results["BP2"]); data.I1 = Convert.ToSingle(pr.Results["I1"]); data.IR = Convert.ToSingle(pr.Results["IR"]); //data.I2 = Convert.ToSingle(pr.Results["I2"]); //data.S2 = Convert.ToInt32(pr.Results["S2"]); data.S1 = Convert.ToInt32(pr.Results["S1"]); data.SR = Convert.ToInt32(pr.Results["SR"]); data.OD = Convert.ToInt32(pr.Results["OD"]); //data.IH1 = Convert.ToDouble (parseResult.Results ["IH1"]); //data.SH1 = Convert.ToDouble (parseResult.Results ["SH1"]); //data.IH1 = 0d; //data.SH1 = 0d; LYR001Device d = (LYR001Device)task.Device; LYR001DataCache dataCache = d.DataCacheManager.GetDataCache(); dataCache.AnalogData = data; // TODO: process lyr001 data cache // //d.DeviceDataManager.Last = data; //// save //// //int id = GuidHelper.ConvertToInt32(d.Guid); //DBI.Instance.InsertGRData(id, data); ProcessDataCache(d, dataCache); }