示例#1
0
 //rec - рекордсет с таблицей SignalsInUse, project - проект, isSignal - является сигналом
 public CalcSignal(IRecordRead rec, Project project, bool isSignal)
 {
     try
     {
         _project   = project;
         FullCode   = rec.GetString("FullCode");
         CodeObject = rec.GetString("CodeObject");
         CodeSignal = rec.GetString("CodeSignal");
         NameObject = rec.GetString("NameObject");
         NameSignal = rec.GetString("NameSignal");
         Units      = rec.GetString("Units");
         DataType   = rec.GetString("DataType").ToDataType();
         Default    = rec.GetBool("Default");
         HasFormula = rec.GetBool("HasFormula");
         if (FullCode.IsEmpty() || DataType == DataType.Error)
         {
             _project.ThreadCalc.AddError("Список сигналов загружен с ошибками. Следует проверить настройки коммуникаторов проекта, повторно загрузить список сигналов и скомпилировать проект ", null, "Сигнал=" + FullCode);
             return;
         }
         if (isSignal)
         {
             SourceName = rec.GetString("SourceName");
             string s = rec.GetString("ConstValue");
             if (!s.IsEmpty())
             {
                 ConstValue = new Moment(DataType, s);
                 if (s == "=Null")
                 {
                     ConstValue.Error |= new ErrorCalc("Недопустимое значение сигнала-константы", SourceName + "." + FullCode);
                 }
             }
             ReceiverName = rec.GetString("ReceiverName");
             _inf         = rec.GetString("Inf", "");
         }
     }
     catch (Exception ex)
     {
         _project.ThreadCalc.AddError("Список сигналов загружен с ошибками. Следует проверить настройки коммуникаторов проекта, повторно загрузить список сигналов и скомпилировать проект", ex, "Сигнал=" + FullCode);
     }
 }
示例#2
0
        public ArchiveParam(IRecordRead rec)
        {
            FullCode = rec.GetString("Code");
            var  codep        = rec.GetString("CodeParam");
            bool hasSubParams = FullCode.ToLower() != codep.ToLower();

            if (hasSubParams)
            {
                CodeSubParam = FullCode.Substring(codep.Length + 1);
            }
            DataType     = rec.GetString("DataType").ToDataType();
            Units        = rec.GetString("Units");
            SuperProcess = rec.GetString("SuperProcessType").ToSuperProcess();
            DecPlaces    = rec.GetIntNull("DecPlaces");
            Min          = rec.GetDoubleNull("Min");
            Max          = rec.GetDoubleNull("Max");
            FirstParam   = new CalcParamBase(rec.GetString("CodeParam"), rec.GetString("Name"), rec.GetString("Comment"), rec.GetString("Task"),
                                             rec.GetString("CalcParamType").ToCalcParamType(), rec.GetString("Tag"));
            if (hasSubParams)
            {
                LastParam = new CalcParamBase(CodeSubParam, rec.GetString("SubName"), rec.GetString("SubComment"));
            }
        }