Beispiel #1
0
        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("");
            }
        }
Beispiel #2
0
        /// <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);
        }
Beispiel #3
0
        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("");
            }
        }