public ModbusClientNode(INodeContext context) { context.ThrowIfNull("context"); ITypeService typeService = context.GetService <ITypeService>(); this.TimeSpan = typeService.CreateInt(PortTypes.Integer, "Abfrageinterval", 60); this.ModbusHost = typeService.CreateString(PortTypes.String, "Modbus TCP Host"); this.ModbusPort = typeService.CreateInt(PortTypes.Integer, "Port", 502); this.ModbusID = typeService.CreateInt(PortTypes.Integer, "Geräte ID", 1); this.ModbusID.MinValue = 1; this.ModbusID.MaxValue = 256; // --------------------------------------------------------------------------------------- // this.ModbusAddress1 = typeService.CreateInt(PortTypes.Integer, "Register Addresse", 1); this.ModbusAddress1.MinValue = 1; this.ModbusAddress1.MaxValue = 65535; this.FunctionCode = typeService.CreateEnum("ModbusFunction", "Funktion", FunctionCodeEnum.VALUES, FunctionCodeEnum.FC_03); this.DataType = typeService.CreateEnum("ModbusDataType", "Datentyp", DataTypeEnum.VALUES, DataTypeEnum.INT32); this.RegisterOrder = typeService.CreateEnum("ModbusRegisterOrder", "Register Reihenfolge", ByteOrderEnum.VALUES, ByteOrderEnum.LOW_HIGH); this.OutputValue1 = typeService.CreateDouble(PortTypes.Number, "Register Wert"); this.ErrorMessage = typeService.CreateString(PortTypes.String, "RAW / Error"); SchedulerService = context.GetService <ISchedulerService>(); }
/// <summary> /// Initializes a new instance of the <see cref="BasicNode"/> class. /// </summary> /// <param name="context">The node context.</param> public InputSelector(INodeContext context) : base(context, INPUT_PREFIX) { context.ThrowIfNull("context"); mTypeService = context.GetService <ITypeService>(); // Initialize the input count, allowing range 2..99. mInputCount = mTypeService.CreateInt(PortTypes.Integer, "InputCount", 2); mInputCount.MinValue = 2; mInputCount.MaxValue = 50; // Initialize inputs using a helper function that grows/shrinks the list of inputs // whenever the input count is changed mInputs = new List <AnyValueObject>(); ListHelpers.ConnectListToCounter(mInputs, mInputCount, mTypeService.GetValueObjectCreator(PortTypes.Any, INPUT_PREFIX), updateOutputValues); // Initialize the input for the index of the input to select. mSelectIndexInput = mTypeService.CreateInt(PortTypes.Integer, "InputSelectIndex"); mSelectIndexInput.MinValue = 0; mSelectIndexInput.MaxValue = mInputCount.MaxValue - 1; mSelectIndexInput.ValueSet += updateOutputValues; // Initialize the selector for "send-on-select". mSelectAction = mTypeService.CreateEnum("ESelectAction2", "SelectAction2", mSelectActionValues, "ResendCurrent"); // Initialize the output mOutput = mTypeService.CreateAny(PortTypes.Any, "Output"); }
/// <summary> /// Initializes a new instance of the <see cref="BasicNode"/> class. /// </summary> /// <param name="context">The node context.</param> public OutputSelector(INodeContext context) : base(context, OUTPUT_PREFIX) { context.ThrowIfNull("context"); mTypeService = context.GetService <ITypeService>(); // Initialize the input. mInput = mTypeService.CreateAny(PortTypes.Any, "Input"); mInput.ValueSet += updateOutputValues; // Initialize the output count. mOutputCount = mTypeService.CreateInt(PortTypes.Integer, "OutputCount", 2); mOutputCount.MinValue = 1; // for use as Lock-out+ (Sperre+) mOutputCount.MaxValue = 50; // Initialize the input for the index of the output to select. mSelectIndexInput = mTypeService.CreateInt(PortTypes.Integer, "OutputSelectIndex"); mSelectIndexInput.MinValue = -1; // -1 selects no output mSelectIndexInput.MaxValue = mOutputCount.MaxValue; // max selects no output mSelectIndexInput.ValueSet += updateOutputValues; // Initialize the selector for "send-on-select". mSelectAction = mTypeService.CreateEnum("ESelectAction3", "SelectAction3", mSelectActionValues, "ResendCurrent"); // Initialize outputs using a helper function that grows/shrinks the list of outputs // whenever the output count is changed mOutputs = new List <AnyValueObject>(); ListHelpers.ConnectListToCounter(mOutputs, mOutputCount, mTypeService.GetValueObjectCreator(PortTypes.Any, OUTPUT_PREFIX), null); // Initialize outputs using a helper function that grows/shrinks the // list of outputs whenever the output count is changed mPrevOutputs = new List <AnyValueObject>(); ListHelpers.ConnectListToCounter(mPrevOutputs, mOutputCount, mTypeService.GetValueObjectCreator(PortTypes.Any, ""), null, null); // Initialize the value to send upon "de-select". mIdleValueType = mTypeService.CreateEnum("EValueType", "IdleValueType", mValueTypes, "none"); updateIdleValueType(); mIdleValueType.ValueSet += updateIdleValueType; }
/// <summary> /// Initializes a new instance of the <see cref="BasicNode"/> class. /// </summary> /// <param name="context">The node context.</param> public Statistics(INodeContext context) : base(context, INPUT_PREFIX) { context.ThrowIfNull("context"); mTypeService = context.GetService <ITypeService>(); // Initialize the input count. mInputCount = mTypeService.CreateInt(PortTypes.Integer, "InputCount", 2); mInputCount.MinValue = 2; mInputCount.MaxValue = 50; // Initialize inputs using a helper function that grows/shrinks the list of inputs // whenever the input count is changed mInputs = new List <DoubleValueObject>(); ListHelpers.ConnectListToCounter(mInputs, mInputCount, mTypeService.GetValueObjectCreator(PortTypes.Number, INPUT_PREFIX), updateOutputValues); // Initialize the selector for the aggregate function that shall be calculated. mSelectedFunction = mTypeService.CreateEnum("ESelectedFunction", "SelectedFunction", mPriAllowedValues, /* defaultValue = */ "Avg"); // Initialize the primary output mOutput1 = mTypeService.CreateDouble(PortTypes.Number, "Output1"); // Initialize the selector for the secondary function (none by default) that shall // be calculated. string[] secAllowedValues = mAddAllowedValues.Concat(mPriAllowedValues).ToArray(); mSecondaryFunction = mTypeService.CreateEnum("ESecondaryFunction", "SecondaryFunction", secAllowedValues, /* defaultValue = */ "none"); // Update output properties now, and whenever the function selections change updatePrimaryOutputProperties(); updateSecondaryOutputProperties(); mSelectedFunction.ValueSet += updatePrimaryOutputProperties; mSecondaryFunction.ValueSet += updateSecondaryOutputProperties; }
public SendMail(INodeContext context) : base(context) { context.ThrowIfNull("context"); ITypeService typeService = context.GetService <ITypeService>(); this.SendTrigger = typeService.CreateBool(PortTypes.Bool, "Trigger"); this.To = typeService.CreateString(PortTypes.String, "Empfängeradresse"); this.From = typeService.CreateString(PortTypes.String, "Senderadresse"); this.SmtpHost = typeService.CreateString(PortTypes.String, "SMTP Server"); this.SmtpPort = typeService.CreateInt(PortTypes.Integer, "SMTP Port"); this.ErrorMessage = typeService.CreateString(PortTypes.String, "Fehlertext"); this.Encryption = typeService.CreateEnum("SmtpEncryption", "Verschlüsselung", EncryptionTypes.VALUES); this.SmtpUser = typeService.CreateString(PortTypes.String, "SMTP Benutzer"); this.SmtpPassword = typeService.CreateString(PortTypes.String, "SMTP Kennwort"); }
/// <summary> /// Initializes a new instance. /// </summary> /// <param name="context">The node context.</param> public XmlJsonParser(INodeContext context) : base(context, OUTPUT_PREFIX) { context.ThrowIfNull("context"); mTypeService = context.GetService <ITypeService>(); // Initialize the input. mInput = mTypeService.CreateString(PortTypes.String, INPUT_NAME); // Initialize the selector for "XML" or "JSON". mSelectInput = mTypeService.CreateEnum("ESelectCode", "SelectCode", mSelectInputValues, "XML"); // Initialize the output etc. parameter count. mCount = mTypeService.CreateInt(PortTypes.Integer, "OutputCount", 1); mCount.MinValue = 1; mCount.MaxValue = 50; mCount.ValueSet += updateSelectOperationCount; // Initialize operation selector parameters mSelectOperation = new List <EnumValueObject>(); updateSelectOperationCount(); // Initialize operation parameters using a helper function that grows/shrinks // the list whenever the count is changed mSelectParam = new List <StringValueObject>(); ListHelpers.ConnectListToCounter(mSelectParam, mCount, mTypeService.GetValueObjectCreator(PortTypes.String, SEL_OP_PARAM_PREFIX), null, updateSelectParamDefault); updateSelectParamDefault(); // Initialize path parameters using a helper function that grows/shrinks the // list whenever the count is changed mPath = new List <StringValueObject>(); ListHelpers.ConnectListToCounter(mPath, mCount, mTypeService.GetValueObjectCreator(PortTypes.String, PATH_PREFIX), null); // Initialize outputs using a helper function that grows/shrinks the list of // outputs whenever the output count is changed mOutput = new List <AnyValueObject>(); ListHelpers.ConnectListToCounter(mOutput, mCount, mTypeService.GetValueObjectCreator(PortTypes.Any, OUTPUT_PREFIX), null); // Initialize error text output mError = mTypeService.CreateString(PortTypes.String, "RuntimeError"); mCommaCulture = new CultureInfo("de"); mPointCulture = new CultureInfo("en"); }
/// <summary> /// This method has been added as a ValueSet handler to the count parameter. /// It will therefore be called whenever the number of outputs (and operations) /// is changed, in order to update the list of operations. /// </summary> private void updateSelectOperationCount(object sender = null, ValueChangedEventArgs evArgs = null) { int newCount = mCount.Value; int oldCount = mSelectOperation.Count; // Truncate member lists if they are too long if (newCount < oldCount) { mSelectOperation.RemoveRange(newCount, oldCount - newCount); } else { for (int i = oldCount; i < newCount; i++) { var e = mTypeService.CreateEnum("ESelectOperation", OPERATION_PREFIX + (i + 1).ToString(), mSelectOperationValues, OPERATION_1STASTEXT); mSelectOperation.Add(e); } } }