public override SurveyResultData ReadHourlyArchive(IEnumerable <DateTime> dates) { var data = new List <Data>(); try { //каналы для часового архива Dictionary <int, ArchiveType> channels = new Dictionary <int, ArchiveType> { { 1, ArchiveType.HourlySystem1 }, { 2, ArchiveType.HourlySystem2 }, { 3, ArchiveType.HourlySystem3 }, }; foreach (var channel in channels) { foreach (var date in dates) { OnSendMessage(string.Format("чтение часовых данных за {0:dd.MM.yyyy HH:mm} по теплосистеме {1}", date, channel.Key)); var bytes = SendMessageToDevice(new Request65ByDate(NetworkAddress, date, channel.Value)); var dataResponse = new Response65(bytes, channel.Key); //Response65.Channel = channel.Key; //var dataResponse = SendMessageToDevice<Response65>(new Request65ByDate(NetworkAddress, date, channel.Value)); foreach (var d in dataResponse.Data) { //убираем лишние 59:59 d.Date = d.Date.AddMinutes(-59).AddSeconds(-59); data.Add(d); } OnSendMessage(string.Format("{0:dd.MM.yyyy HH:mm} {1}", date, dataResponse.Text)); } } } catch (Exception ex) { OnSendMessage(string.Format("ошибка: {0}", ex.Message)); return(new SurveyResultData { Records = data, State = SurveyResultState.PartialyRead }); } return(new SurveyResultData { Records = data, State = SurveyResultState.Success }); }
public override SurveyResultData ReadDailyArchive(IEnumerable <DateTime> dates) { var data = new List <Data>(); try { //каналы для суточного архива Dictionary <int, ArchiveType> channels = new Dictionary <int, ArchiveType> { { 1, ArchiveType.DailySystem1 }, { 2, ArchiveType.DailySystem2 }, { 3, ArchiveType.DailySystem3 }, }; byte[] bytes = null; foreach (var channel in channels) { foreach (var date in dates) { try { OnSendMessage(string.Format("чтение суточных данных за {0:dd.MM.yyyy} по теплосистеме {1}", date, channel.Key)); bytes = SendMessageToDevice(new Request65ByDate(NetworkAddress, date, channel.Value)); //OnSendMessage(string.Format("пришло {0}", string.Join(",", bytes.Select(b => b.ToString("X2"))))); var dataResponse = new Response65(bytes, channel.Key); foreach (var d in dataResponse.Data) { //убираем лишние 23:59:59 d.Date = d.Date.AddHours(-23).AddMinutes(-59).AddSeconds(-59); data.Add(d); } } catch (Exception ex1) { OnSendMessage(string.Format("ошибка при разборе ответа, запись за {0:dd.MM.yy} по ТС {1} будет пропущена: {2}", date, channel.Key, ex1.Message)); } } } foreach (var date in dates) { try { OnSendMessage(string.Format("чтение суточных данных нарастающим итогом за {0:dd.MM.yyyy} ", date)); bytes = SendMessageToDevice(new Request65ByDate(NetworkAddress, date, ArchiveType.DailyGrowing)); OnSendMessage(string.Format("пришло {0}", string.Join(",", bytes.Select(b => b.ToString("X2"))))); var responseTotals = new Response65Totals(bytes); foreach (var d in responseTotals.Data) { //убираем лишние 23:59:59 d.Date = d.Date.AddHours(-23).AddMinutes(-59).AddSeconds(-59); data.Add(d); } } catch (Exception ex2) { OnSendMessage(string.Format("ошибка при разборе ответа, запись за {0:dd.MM.yy} нарастающим итогом", date)); } } } catch (Exception ex) { OnSendMessage(string.Format("ошибка: {0}", ex.Message)); return(new SurveyResultData { Records = data, State = SurveyResultState.PartialyRead }); } return(new SurveyResultData { Records = data, State = SurveyResultState.Success }); }