/// <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"); }
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> /// Called when the SecondaryFunction receives a new value, in order to update which /// of the outputs exist, and which labels they have. /// </summary> private void updateSecondaryOutputProperties(object sender = null, ValueChangedEventArgs evArgs = null) { if (new List <string> { "Min", "Max", "Sum", "Avg", "StdDev" }. Contains(mSecondaryFunction.Value)) { // Add secondary value output; remove secondary index output mOutput2 = mTypeService.CreateDouble(PortTypes.Number, mSecondaryFunction.Value); mOutputIndex = null; } else if (new List <string> { "MinIndex", "MaxIndex" }. Contains(mSecondaryFunction.Value)) { // Remove secondary value output; add secondary index output mOutput2 = null; mOutputIndex = mTypeService.CreateInt(PortTypes.Integer, mSecondaryFunction.Value); } else { // Remove both secondary outputs mOutput2 = null; mOutputIndex = null; } }
/// <summary> /// Initializes a new instance of the <see cref="PlaceholderNodeBase"/> class. /// </summary> /// <param name="context">The node context.</param> public PlaceholderNodeBase(INodeContext context) : base(context) { context.ThrowIfNull("context"); mTypeService = context.GetService <ITypeService>(); // Initialize one template parameter, but allow more of them mTemplateCount = mTypeService.CreateInt(PortTypes.Integer, TEMPLATE_PREFIX + "Count", 1); mTemplateCount.MinValue = 1; mTemplateCount.MaxValue = 10; mTemplates = new List <StringValueObject>(); ListHelpers.ConnectListToCounter(mTemplates, mTemplateCount, mTypeService.GetValueObjectCreator(PortTypes.String, TEMPLATE_PREFIX + " "), updateTemplate); // Initialize token object storage and output per template parameter mTokensPerTemplate = new List <List <TokenBase> >(); mOutputs = new List <IValueObject>(); updateTemplateCount(); mTemplateCount.ValueSet += updateTemplateCount; // Initialize the input counts mBinInputCount = mTypeService.CreateInt(PortTypes.Integer, INPUT_BIN_PREFIX + "Count", 0); mIntInputCount = mTypeService.CreateInt(PortTypes.Integer, INPUT_INT_PREFIX + "Count", 0); mNumInputCount = mTypeService.CreateInt(PortTypes.Integer, INPUT_NUM_PREFIX + "Count", 0); mStrInputCount = mTypeService.CreateInt(PortTypes.Integer, INPUT_STR_PREFIX + "Count", 0); // Initialize inputs using helper functions that grow/shrink the list of // inputs whenever the input count is changed mBinInputs = new List <BoolValueObject>(); ListHelpers.ConnectListToCounter(mBinInputs, mBinInputCount, mTypeService.GetValueObjectCreator(PortTypes.Bool, INPUT_BIN_PREFIX), updateOutputValues); mIntInputs = new List <IntValueObject>(); ListHelpers.ConnectListToCounter(mIntInputs, mIntInputCount, mTypeService.GetValueObjectCreator(PortTypes.Integer, INPUT_INT_PREFIX), updateOutputValues); mNumInputs = new List <DoubleValueObject>(); ListHelpers.ConnectListToCounter(mNumInputs, mNumInputCount, mTypeService.GetValueObjectCreator(PortTypes.Number, INPUT_NUM_PREFIX), updateOutputValues); mStrInputs = new List <StringValueObject>(); ListHelpers.ConnectListToCounter(mStrInputs, mStrInputCount, mTypeService.GetValueObjectCreator(PortTypes.String, INPUT_STR_PREFIX), updateOutputValues); }
public Write(INodeContext context) : base(context) { context.ThrowIfNull("context"); ITypeService typeService = context.GetService <ITypeService>(); this.InfluxDbHost = typeService.CreateString(PortTypes.String, "Influx DB host"); this.InfluxDbPort = typeService.CreateInt(PortTypes.Integer, "Influx DB Port", 8086); this.InfluxDbName = typeService.CreateString(PortTypes.String, "Influx DB name"); this.InfluxMeasureName = typeService.CreateString(PortTypes.String, "Measure name"); this.InfluxDbMeasureTags = typeService.CreateString(PortTypes.String, "Measure tags"); this.InfluxDbMeasureFieldName1 = typeService.CreateString(PortTypes.String, "Measure field name 1"); this.InfluxDbMeasureFieldValue1 = typeService.CreateDouble(PortTypes.Float, "Measure value 1"); this.InfluxDbMeasureFieldName2 = typeService.CreateString(PortTypes.String, "Measure field name 2"); this.InfluxDbMeasureFieldValue2 = typeService.CreateDouble(PortTypes.Float, "Measure value 2"); this.ErrorCode = typeService.CreateInt(PortTypes.Integer, "HTTP status-code"); this.ErrorMessage = typeService.CreateString(PortTypes.String, "SMTP Benutzer"); }
/// <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; }
public KHueNodeBinary(INodeContext context) : base(context) { context.ThrowIfNull("context"); _typeService = context.GetService <ITypeService>(); Input = _typeService.CreateBool(PortTypes.Binary, "Input"); LightId = _typeService.CreateInt(PortTypes.Integer, "Light ID"); Username = _typeService.CreateString(PortTypes.String, "Hue user name"); IpAddress = _typeService.CreateString(PortTypes.String, "Hue bridge IP address"); ErrorMessage = _typeService.CreateString(PortTypes.String, "Error message"); }
public ModbusClientNode(INodeContext context) { context.ThrowIfNull("context"); ITypeService typeService = context.GetService <ITypeService>(); this.ModbusHost = typeService.CreateString(PortTypes.String, "Modbus TCP Server"); this.ModbusPort = typeService.CreateInt(PortTypes.Integer, "Port", 502); this.ModbusAddress = typeService.CreateInt(PortTypes.Integer, "Modbus Addresse"); this.ModbusAddress.MinValue = 0; this.ModbusAddress.MaxValue = 65535; this.ReadCount = typeService.CreateInt(PortTypes.Integer, "Anzahl bytes"); this.ReadCount.MinValue = 1; this.ReadCount.MaxValue = 2; this.OutputValue = typeService.CreateDouble(PortTypes.Float, "Wert"); this.ErrorMessage = typeService.CreateString(PortTypes.String, "Error"); SchedulerService = context.GetService <ISchedulerService>(); }
public KHueNodeRgb(INodeContext context) : base(context) { context.ThrowIfNull("context"); _typeService = context.GetService <ITypeService>(); Red = _typeService.CreateByte(PortTypes.Byte, "Red"); Green = _typeService.CreateByte(PortTypes.Byte, "Green"); Blue = _typeService.CreateByte(PortTypes.Byte, "Blue"); LightId = _typeService.CreateInt(PortTypes.Integer, "Light ID"); Username = _typeService.CreateString(PortTypes.String, "Hue user name"); IpAddress = _typeService.CreateString(PortTypes.String, "Hue bridge IP address"); ErrorMessage = _typeService.CreateString(PortTypes.String, "Error message"); }
public ModbusClientNode(INodeContext context) { context.ThrowIfNull("context"); ITypeService typeService = context.GetService <ITypeService>(); this.TimeSpan = typeService.CreateInt(PortTypes.Integer, "Restart (Sek.)", 60); this.ModbusHost = typeService.CreateString(PortTypes.String, "Modbus TCP Server"); this.ModbusPort = typeService.CreateInt(PortTypes.Integer, "Port", 502); this.ModbusID = typeService.CreateInt(PortTypes.Integer, "Modbus ID", 3); // --------------------------------------------------------------------------------------- // this.ModbusAddress1 = typeService.CreateInt(PortTypes.Integer, "Modbus Addresse", 0); this.ModbusAddress1.MinValue = 0; this.ModbusAddress1.MaxValue = 65535; this.ReadCount1 = typeService.CreateInt(PortTypes.Integer, "Anzahl words", 2); this.ReadCount1.MinValue = 1; this.ReadCount1.MaxValue = 2; this.OutputValue1 = typeService.CreateDouble(PortTypes.Number, "Register Wert"); this.ErrorMessage = typeService.CreateString(PortTypes.String, "RAW / Error"); SchedulerService = context.GetService <ISchedulerService>(); }
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> /// Called when the SecondaryFunction receives a new value, in order to update which /// of the outputs exist, and which labels they have. /// </summary> private void updateIdleValueType(object sender = null, ValueChangedEventArgs evArgs = null) { if (mIdleValueType.HasValue) { if (PortTypes.Bool == mIdleValueType.Value) { mIdleValue = mTypeService.CreateBool(PortTypes.Bool, "IdleValue"); } else if (PortTypes.Integer == mIdleValueType.Value) { mIdleValue = mTypeService.CreateInt(PortTypes.Integer, "IdleValue"); } else if (PortTypes.Number == mIdleValueType.Value) { mIdleValue = mTypeService.CreateDouble(PortTypes.Number, "IdleValue"); } else if (PortTypes.TimeSpan == mIdleValueType.Value) { mIdleValue = mTypeService.CreateTimeSpan(PortTypes.TimeSpan, "IdleValue"); } else if (PortTypes.Time == mIdleValueType.Value) { mIdleValue = mTypeService.CreateTimeSpan(PortTypes.Time, "IdleValue"); } else if (PortTypes.Date == mIdleValueType.Value) { mIdleValue = mTypeService.CreateDateTime(PortTypes.Date, "IdleValue"); } else if (PortTypes.DateTime == mIdleValueType.Value) { mIdleValue = mTypeService.CreateDateTime(PortTypes.DateTime, "IdleValue"); } else if (PortTypes.String == mIdleValueType.Value) { mIdleValue = mTypeService.CreateString(PortTypes.String, "IdleValue"); } else { mIdleValue = null; } } else { mIdleValue = null; } }
/// <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; }