/// <summary> /// /// </summary> /// <param name="tagIds"></param> /// <param name="group"></param> /// <returns></returns> public Dictionary <int, Tuple <int, DateTime, object> > ReadRealValueAndQualityTimeById(List <int> tagIds, string group) { try { Dictionary <int, Tuple <int, DateTime, object> > re = new Dictionary <int, Tuple <int, DateTime, object> >(); var gtags = group; var vvv = new GetRealValueByIdRequest() { Group = group, Token = mLoginId }; vvv.Ids.AddRange(tagIds); var res = mRealDataClient.GetRealValueById(vvv); if (res.Result) { foreach (var val in res.Values) { re.Add(val.Id, new Tuple <int, DateTime, object>(val.Quality, DateTime.FromBinary(val.Time), ConvertToValue(val.Value, val.ValueType))); } } return(re); } catch { } return(null); }
/// <summary> /// /// </summary> /// <param name="request"></param> /// <param name="context"></param> /// <returns></returns> public override Task <GetRealValueOnlyReply> GetRealValueOnlyById(GetRealValueByIdRequest request, ServerCallContext context) { if (SecurityManager.Manager.IsLogin(request.Token) && SecurityManager.Manager.CheckReaderPermission(request.Token, request.Group)) { GetRealValueOnlyReply response = new GetRealValueOnlyReply() { Result = true }; var service = ServiceLocator.Locator.Resolve <IRealTagConsumer>(); for (int i = 0; i < request.Ids.Count; i++) { byte quality; DateTime time; byte tagtype = 0; var val = service.GetTagValue(request.Ids[i], out quality, out time, out tagtype); if (val != null) { response.Values.Add(new ValueOnly() { Id = i, Value = val.ToString(), ValueType = tagtype }); } } return(Task.FromResult(response)); } else { return(Task.FromResult(new GetRealValueOnlyReply() { Result = false })); } }
/// <summary> /// /// </summary> /// <param name="tagIds"></param> /// <param name="group"></param> /// <returns></returns> public Dictionary <int, object> ReadRealValueById(List <int> tagIds, string group) { try { Dictionary <int, object> re = new Dictionary <int, object>(); var gtags = group; var vvv = new GetRealValueByIdRequest() { Group = group, Token = mLoginId }; vvv.Ids.AddRange(tagIds); var res = mRealDataClient.GetRealValueOnlyById(vvv); if (res.Result) { foreach (var val in res.Values) { re.Add(val.Id, ConvertToValue(val.Value, val.ValueType)); } } return(re); } catch { } return(null); }