//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); } }
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")); } }