/// <summary> /// Получить тренд минутных данных заданного канала за сутки /// </summary> /// <remarks>Возвращаемый тренд после загрузки не изменяется экземпляром данного класса, /// таким образом, чтение его данных является потокобезопасным. /// Метод всегда возвращает объект, не равный null</remarks> public Trend GetMinTrend(DateTime date, int cnlNum) { Trend trend = new Trend(cnlNum); try { if (serverComm.ReceiveTrend(SrezAdapter.BuildMinTableName(date), date, trend)) { trend.LastFillTime = DateTime.UtcNow; // единообразно с часовыми данными и событиями } else { throw new ScadaException(Localization.UseRussian ? "Не удалось принять тренд." : "Unable to receive trend."); } } catch (Exception ex) { log.WriteException(ex, Localization.UseRussian ? "Ошибка при получении тренда минутных данных за {0}" : "Error getting minute data trend for {0}", date.ToLocalizedDateString()); } return(trend); }
/// <summary> /// Get the trend of the minute data of the specified channel for the day /// </summary> /// <remarks>Returned trend after loading is not changed by an instance of this class, /// thus, reading its data is thread safe. /// The method always returns a non-null object.</remarks> public Trend GetMinTrend(DateTime date, int cnlNum) { var trend = new Trend(cnlNum); try { if (serverComm.ReceiveTrend(SrezAdapter.BuildMinTableName(date), date, trend)) { trend.LastFillTime = DateTime.UtcNow; // consistent with hourly data and events } else { throw new ScadaException("Unable to receive trend."); } } catch (Exception ex) { log.WriteException(ex, "Error getting minute data trend for {0}", date.ToLocalizedDateString()); } return(trend); }
/// <summary> /// Requests input channel data from Server. /// </summary> private static Trend GetTrend(DateTime date, int cnlNum, bool chekHours) { string tableName = chekHours ? SrezAdapter.BuildHourTableName(date) : SrezAdapter.BuildMinTableName(date); Trend trend = new Trend(cnlNum); bool dataReceived = serverComm.ReceiveTrend(tableName, date, trend); //serverComm.Close(); if (dataReceived) { trend.LastFillTime = DateTime.UtcNow; } else { Log.WriteError("Unable to receive trend."); } return(trend); }