| | |
| | | return totalWaterSupply;*/ |
| | | } |
| | | |
| | | |
| | | |
| | | /* /// <summary> |
| | | /// 夿便°´æ»éæ¯å¦æè¯¯ |
| | | /// </summary> |
| | | /// <param name="startTime">å¼å§æ¶é´</param> |
| | | /// <param name="endTime">ç»ææ¶é´</param> |
| | | /// <param name="resolution">æ¶é´æ¥é¿,é»è®¤300ç§</param> |
| | | /// <returns></returns> |
| | | public static async Task<string> GetPumpOutWaterIsTrue(DateTime startTime,int sort, string resolution = "300s") |
| | | { |
| | | var tagDict = new Dictionary<string, string> |
| | | { |
| | | { "ä¸è¾1", "å宿°æ®.1线表头累计" }, |
| | | { "ä¸è¾2", "å宿°æ®.2线表头累计" }, |
| | | { "ä¸è¾3", "å宿°æ®.3线表头累计" }, |
| | | { "äºè¾1", "é¿æ±ç®¡ç½å¾.2400æ»ç®¡.累计æµé" }, |
| | | { "äºè¾2", "é¿æ±ç®¡ç½å¾.2600æ»ç®¡.累计æµé" }, |
| | | }; |
| | | string joinedValues = string.Join(",", tagDict.Values); |
| | | switch (sort) |
| | | { |
| | | case 1: |
| | | var result = HttpClientHelper.Get<List<DataPoint>>(ZyApiUrl, startTime.ToString("yyyy-MM-dd"), startTime.AddDays(1).ToString("yyyy-MM-dd"), "first", resolution, joinedValues); |
| | | var realScadaDataList = GetScadaData(result); |
| | | foreach (var item in realScadaDataList) |
| | | { |
| | | |
| | | } |
| | | break; |
| | | |
| | | } |
| | | return realScadaDataList; |
| | | }*/ |
| | | /* /// <summary> |
| | | /// 夿便°´æ»éæ¯å¦æè¯¯ |
| | | /// </summary> |
| | | /// <param name="startTime">å¼å§æ¶é´</param> |
| | | /// <param name="endTime">ç»ææ¶é´</param> |
| | | /// <param name="resolution">æ¶é´æ¥é¿,é»è®¤300ç§</param> |
| | | /// <returns></returns> |
| | | public static async Task<string> GetPumpOutWaterIsTrue(DateTime startTime,int sort, string resolution = "300s") |
| | | { |
| | | var tagDict = new Dictionary<string, string> |
| | | { |
| | | { "ä¸è¾1", "å宿°æ®.1线表头累计" }, |
| | | { "ä¸è¾2", "å宿°æ®.2线表头累计" }, |
| | | { "ä¸è¾3", "å宿°æ®.3线表头累计" }, |
| | | { "äºè¾1", "é¿æ±ç®¡ç½å¾.2400æ»ç®¡.累计æµé" }, |
| | | { "äºè¾2", "é¿æ±ç®¡ç½å¾.2600æ»ç®¡.累计æµé" }, |
| | | }; |
| | | string joinedValues = string.Join(",", tagDict.Values); |
| | | switch (sort) |
| | | { |
| | | case 1: |
| | | var data = HttpClientHelper.Get<List<DataPoint>>(ZyApiUrl, startTime.ToString("yyyy-MM-dd"), startTime.AddDays(1).ToString("yyyy-MM-dd"), "first", resolution, joinedValues); |
| | | var realScadaDataList = GetScadaData(data); |
| | | foreach (var item in realScadaDataList) |
| | | { |
| | | } |
| | | break; |
| | | } |
| | | return realScadaDataList; |
| | | }*/ |
| | | |
| | | /// <summary> |
| | | /// è·åéè¡æ°´åº 宿¶æ°´ä½ |
| | |
| | | { |
| | | if (isDebug) |
| | | return 6.1;//debug |
| | | double err = -1; |
| | | string tag_water_level = "10001"; |
| | | string url = $"{ZyApiUrl}dataController/getCurrentJsonDataOfRedis/ä¹ç»´æ¨¡å"; |
| | | var result = HttpClientHelper.Get(url); |
| | | // LogHelper.Info(result) |
| | | if (result != null) |
| | | var data = HttpClientHelper.Get(url); |
| | | if (data == null) |
| | | return err; |
| | | if (!data.ContainsKey(tag_water_level)) |
| | | return err; |
| | | var scada = data[tag_water_level]; |
| | | if (!scada.ContainsKey("vals")) |
| | | return err; |
| | | var vals = scada["vals"]; |
| | | if (double.TryParse(vals, out double value)) |
| | | { |
| | | foreach (var item in result) |
| | | { |
| | | try |
| | | { |
| | | if (item.Key == "10001") |
| | | { |
| | | foreach (var valuedata in item.Value) |
| | | { |
| | | if (valuedata.Key == "vals") |
| | | { |
| | | return Convert.ToDouble(valuedata.Value); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | catch |
| | | { |
| | | return -1; |
| | | } |
| | | } |
| | | return value; |
| | | } |
| | | return -1; |
| | | return err; |
| | | } |
| | | |
| | | /// <summary> |
| | |
| | | /// è·å宿¶æ°æ®åå
¸ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /* public static async Task<List<ZyModel.RealScadaRecord>> GetRealScadaResultAsync(List<string> tags, object input) |
| | | { |
| | | if (tags == null || !tags.Any()) |
| | | return default; |
| | | if (input == null) |
| | | return default; |
| | | var ws = new ClientWebSocket(); |
| | | await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None); |
| | | if (ws.State != WebSocketState.Open) |
| | | { |
| | | return default; |
| | | } |
| | | /* public static async Task<List<ZyModel.RealScadaRecord>> GetRealScadaResultAsync(List<string> tags, object input) |
| | | { |
| | | if (tags == null || !tags.Any()) |
| | | return default; |
| | | if (input == null) |
| | | return default; |
| | | var ws = new ClientWebSocket(); |
| | | await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None); |
| | | if (ws.State != WebSocketState.Open) |
| | | { |
| | | return default; |
| | | } |
| | | |
| | | var realScadaRecordList = new List<ZyModel.RealScadaRecord>(); |
| | | var inputJson = JsonHelper.Object2Json(input); |
| | | var inputBytes = Encoding.UTF8.GetBytes(inputJson); |
| | | await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None); |
| | | try |
| | | { |
| | | List<byte> outputBytes = new List<byte>();//å
¨é¨æ¶æ¯å®¹å¨ |
| | | var buffer = new byte[1024 * 4];//ç¼å²åº |
| | | var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //çå¬Socketä¿¡æ¯ |
| | | while (!result.CloseStatus.HasValue) //æ¯å¦å
³é |
| | | { |
| | | if (result.MessageType == WebSocketMessageType.Text)//ææ¬æ¶æ¯ |
| | | { |
| | | outputBytes.AddRange(buffer.Take(result.Count)); |
| | | if (result.EndOfMessage)//æ¶æ¯æ¯å¦å·²æ¥æ¶å®å
¨ |
| | | { |
| | | //åéè¿æ¥çæ¶æ¯ |
| | | string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count); |
| | | var scadaDict = JsonHelper.Json2Object<Dictionary<string, KeyValue>>(outputJson); |
| | | if (scadaDict != null && scadaDict.Any()) |
| | | { |
| | | foreach (var dict in scadaDict) |
| | | { |
| | | var tag = dict.Value.keys.Trim(); |
| | | if (tags.Contains(tag)) |
| | | { |
| | | var data = new ZyModel.RealScadaRecord(); |
| | | data.TagName = tag; |
| | | var realScadaRecordList = new List<ZyModel.RealScadaRecord>(); |
| | | var inputJson = JsonHelper.Object2Json(input); |
| | | var inputBytes = Encoding.UTF8.GetBytes(inputJson); |
| | | await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None); |
| | | try |
| | | { |
| | | List<byte> outputBytes = new List<byte>();//å
¨é¨æ¶æ¯å®¹å¨ |
| | | var buffer = new byte[1024 * 4];//ç¼å²åº |
| | | var data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //çå¬Socketä¿¡æ¯ |
| | | while (!data.CloseStatus.HasValue) //æ¯å¦å
³é |
| | | { |
| | | if (data.MessageType == WebSocketMessageType.Text)//ææ¬æ¶æ¯ |
| | | { |
| | | outputBytes.AddRange(buffer.Take(data.Count)); |
| | | if (data.EndOfMessage)//æ¶æ¯æ¯å¦å·²æ¥æ¶å®å
¨ |
| | | { |
| | | //åéè¿æ¥çæ¶æ¯ |
| | | string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count); |
| | | var scadaDict = JsonHelper.Json2Object<Dictionary<string, KeyValue>>(outputJson); |
| | | if (scadaDict != null && scadaDict.Any()) |
| | | { |
| | | foreach (var dict in scadaDict) |
| | | { |
| | | var tag = dict.Value.keys.Trim(); |
| | | if (tags.Contains(tag)) |
| | | { |
| | | var data = new ZyModel.RealScadaRecord(); |
| | | data.TagName = tag; |
| | | |
| | | if (double.TryParse(dict.Value.vals, out double value)) |
| | | data.Value = value; |
| | | realScadaRecordList.Add(data); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//ç»§ç»çå¬Socketä¿¡æ¯ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | //å
³éWebSocket |
| | | await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | ws.Abort(); |
| | | ws.Dispose(); |
| | | } |
| | | if (double.TryParse(dict.Value.vals, out double value)) |
| | | data.Value = value; |
| | | realScadaRecordList.Add(data); |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//ç»§ç»çå¬Socketä¿¡æ¯ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | //å
³éWebSocket |
| | | await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | ws.Abort(); |
| | | ws.Dispose(); |
| | | } |
| | | |
| | | return realScadaRecordList; |
| | | }*/ |
| | | return realScadaRecordList; |
| | | }*/ |
| | | |
| | | /// <summary> |
| | | /// è·å宿¶æ°æ®åå
¸ |
| | | /// </summary> |
| | | /// <returns></returns> |
| | | /* public static async Task<List<ZyModel.RealScadaData>> GetRealScadaResult(ScadaDispatchInput input) |
| | | { |
| | | if (input == null) |
| | | return default; |
| | | var ws = new ClientWebSocket(); |
| | | await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None); |
| | | if (ws.State != WebSocketState.Open) |
| | | { |
| | | return default; |
| | | } |
| | | var realScadaDataList = new List<ZyModel.RealScadaData>(); |
| | | var inputJson = JsonHelper.Object2Json(input); |
| | | var inputBytes = Encoding.UTF8.GetBytes(inputJson); |
| | | await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None); |
| | | try |
| | | { |
| | | List<byte> outputBytes = new List<byte>();//å
¨é¨æ¶æ¯å®¹å¨ |
| | | var buffer = new byte[1024 * 4];//ç¼å²åº |
| | | var result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //çå¬Socketä¿¡æ¯ |
| | | while (!result.CloseStatus.HasValue) //æ¯å¦å
³é |
| | | { |
| | | if (result.MessageType == WebSocketMessageType.Text)//ææ¬æ¶æ¯ |
| | | { |
| | | outputBytes.AddRange(buffer.Take(result.Count)); |
| | | if (result.EndOfMessage)//æ¶æ¯æ¯å¦å·²æ¥æ¶å®å
¨ |
| | | { |
| | | //åéè¿æ¥çæ¶æ¯ |
| | | string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count); |
| | | var scadaDict = JsonHelper.Json2Object<Dictionary<string, Dictionary<DateTime, string>>>(outputJson); |
| | | if (scadaDict != null && scadaDict.Any()) |
| | | { |
| | | foreach (var dict in scadaDict) |
| | | { |
| | | var data = new ZyModel.RealScadaData(); |
| | | data.TagName = dict.Key; |
| | | data.MonitorRecords = new List<IStation.ZyModel.MonitorRecord>(); |
| | | foreach (var item in dict.Value) |
| | | { |
| | | var record = new IStation.ZyModel.MonitorRecord(); |
| | | record.Time = item.Key; |
| | | if (double.TryParse(item.Value, out double value)) |
| | | { |
| | | record.Value = value; |
| | | } |
| | | data.MonitorRecords.Add(record); |
| | | } |
| | | realScadaDataList.Add(data); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | result = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//ç»§ç»çå¬Socketä¿¡æ¯ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | //å
³éWebSocket |
| | | await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | ws.Abort(); |
| | | ws.Dispose(); |
| | | } |
| | | /* public static async Task<List<ZyModel.RealScadaData>> GetRealScadaResult(ScadaDispatchInput input) |
| | | { |
| | | if (input == null) |
| | | return default; |
| | | var ws = new ClientWebSocket(); |
| | | await ws.ConnectAsync(new Uri(_url_root), CancellationToken.None); |
| | | if (ws.State != WebSocketState.Open) |
| | | { |
| | | return default; |
| | | } |
| | | var realScadaDataList = new List<ZyModel.RealScadaData>(); |
| | | var inputJson = JsonHelper.Object2Json(input); |
| | | var inputBytes = Encoding.UTF8.GetBytes(inputJson); |
| | | await ws.SendAsync(new ArraySegment<byte>(inputBytes), WebSocketMessageType.Text, true, CancellationToken.None); |
| | | try |
| | | { |
| | | List<byte> outputBytes = new List<byte>();//å
¨é¨æ¶æ¯å®¹å¨ |
| | | var buffer = new byte[1024 * 4];//ç¼å²åº |
| | | var data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None); //çå¬Socketä¿¡æ¯ |
| | | while (!data.CloseStatus.HasValue) //æ¯å¦å
³é |
| | | { |
| | | if (data.MessageType == WebSocketMessageType.Text)//ææ¬æ¶æ¯ |
| | | { |
| | | outputBytes.AddRange(buffer.Take(data.Count)); |
| | | if (data.EndOfMessage)//æ¶æ¯æ¯å¦å·²æ¥æ¶å®å
¨ |
| | | { |
| | | //åéè¿æ¥çæ¶æ¯ |
| | | string outputJson = Encoding.UTF8.GetString(outputBytes.ToArray(), 0, outputBytes.Count); |
| | | var scadaDict = JsonHelper.Json2Object<Dictionary<string, Dictionary<DateTime, string>>>(outputJson); |
| | | if (scadaDict != null && scadaDict.Any()) |
| | | { |
| | | foreach (var dict in scadaDict) |
| | | { |
| | | var data = new ZyModel.RealScadaData(); |
| | | data.TagName = dict.Key; |
| | | data.MonitorRecords = new List<IStation.ZyModel.MonitorRecord>(); |
| | | foreach (var item in dict.Value) |
| | | { |
| | | var record = new IStation.ZyModel.MonitorRecord(); |
| | | record.Time = item.Key; |
| | | if (double.TryParse(item.Value, out double value)) |
| | | { |
| | | record.Value = value; |
| | | } |
| | | data.MonitorRecords.Add(record); |
| | | } |
| | | realScadaDataList.Add(data); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | data = await ws.ReceiveAsync(new ArraySegment<byte>(buffer), CancellationToken.None);//ç»§ç»çå¬Socketä¿¡æ¯ |
| | | } |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | finally |
| | | { |
| | | try |
| | | { |
| | | //å
³éWebSocket |
| | | await ws.CloseOutputAsync(WebSocketCloseStatus.NormalClosure, "AcknowledgeCloseframe", CancellationToken.None); |
| | | } |
| | | catch (Exception ex) |
| | | { |
| | | throw ex; |
| | | } |
| | | ws.Abort(); |
| | | ws.Dispose(); |
| | | } |
| | | |
| | | return realScadaDataList; |
| | | }*/ |
| | | return realScadaDataList; |
| | | }*/ |
| | | |
| | | /// <summary> |
| | | /// bak |