public string GetCurCnlDataExtByView(int viewID) { try { AppData.CheckLoggedOn(); CnlDataExtDTO[] cnlDataDTOs; BaseView view = AppData.ViewCache.GetViewFromCache(viewID); if (view == null) { AppData.Log.WriteError(string.Format(Localization.UseRussian ? "Не удалось получить представление с ид.={0} из кеша" : "Unable to get view with ID={0} from the cache", viewID)); cnlDataDTOs = new CnlDataExtDTO[0]; } else { cnlDataDTOs = GetCnlDataExtDTOs(view.CnlList); } return(JsSerializer.Serialize(cnlDataDTOs)); } catch (Exception ex) { AppData.Log.WriteException(ex, Localization.UseRussian ? "Ошибка при получении расширенных текущих данных входных каналов предсталения с ид.={0}" : "Error getting extended current input channel data of the view with id={0}", viewID); return(""); } }
/// <summary> /// Получить расширенные текущие данные входных каналов /// </summary> private CnlDataExtDTO[] GetCnlDataExtDTOs(IList <int> cnlList) { int cnlCnt = cnlList.Count; CnlDataExtDTO[] cnlDataDTOs = new CnlDataExtDTO[cnlCnt]; DataAccess dataAccess = AppData.DataAccess; DateTime dataAge; SrezTableLight.Srez snapshot = dataAccess.DataCache.GetCurSnapshot(out dataAge); string emptyVal = ""; bool dataVisible = snapshot != null && DataFormatter.CurDataVisible(dataAge, DateTime.Now, out emptyVal); for (int i = 0; i < cnlCnt; i++) { int cnlNum = cnlList[i]; CnlDataExtDTO cnlDataDTO = new CnlDataExtDTO(cnlNum); cnlDataDTOs[i] = cnlDataDTO; SrezTableLight.CnlData cnlData; snapshot.GetCnlData(cnlNum, out cnlData); cnlDataDTO.Val = cnlData.Val; cnlDataDTO.Stat = cnlData.Stat; if (dataVisible) { InCnlProps cnlProps = dataAccess.GetCnlProps(cnlNum); string text; string textWithUnit; DataFormatter.FormatCnlVal(cnlData.Val, cnlData.Stat, cnlProps, out text, out textWithUnit); cnlDataDTO.Text = text; cnlDataDTO.TextWithUnit = textWithUnit; cnlDataDTO.Color = DataFormatter.GetCnlValColor(cnlData.Val, cnlData.Stat, cnlProps, dataAccess.GetColorByStat); } else { cnlDataDTO.Text = cnlDataDTO.TextWithUnit = emptyVal; } } return(cnlDataDTOs); }
public string GetCurCnlDataExt(int cnlNum) { try { AppData.CheckLoggedOn(); CnlDataExtDTO cnlDataExtDTO = new CnlDataExtDTO(cnlNum); DataAccess dataAccess = AppData.DataAccess; DateTime dataAge; SrezTableLight.CnlData cnlData = dataAccess.GetCurCnlData(cnlNum, out dataAge); cnlDataExtDTO.Val = cnlData.Val; cnlDataExtDTO.Stat = cnlData.Stat; string emptyVal; if (DataFormatter.CurDataVisible(dataAge, DateTime.Now, out emptyVal)) { InCnlProps cnlProps = dataAccess.GetCnlProps(cnlNum); string text; string textWithUnit; DataFormatter.FormatCnlVal(cnlData.Val, cnlData.Stat, cnlProps, out text, out textWithUnit); cnlDataExtDTO.Text = text; cnlDataExtDTO.TextWithUnit = textWithUnit; cnlDataExtDTO.Color = DataFormatter.GetCnlValColor(cnlData.Val, cnlData.Stat, cnlProps, dataAccess.GetColorByStat); } else { cnlDataExtDTO.Text = emptyVal; cnlDataExtDTO.TextWithUnit = emptyVal; } return(JsSerializer.Serialize(cnlDataExtDTO)); } catch (Exception ex) { AppData.Log.WriteException(ex, Localization.UseRussian ? "Ошибка при получении расширенных текущих данных входного канала {0}" : "Error getting extended current data of the input channel {0}", cnlNum); return(""); } }