/// <summary cref="IEncodeable.IsEqual(IEncodeable)" /> public virtual bool IsEqual(IEncodeable encodeable) { if (Object.ReferenceEquals(this, encodeable)) { return(true); } MachineDataType value = encodeable as MachineDataType; if (value == null) { return(false); } if (!Utils.IsEqual(m_machineName, value.m_machineName)) { return(false); } if (!Utils.IsEqual(m_manufacturer, value.m_manufacturer)) { return(false); } if (!Utils.IsEqual(m_serialNumber, value.m_serialNumber)) { return(false); } if (!Utils.IsEqual(m_machineState, value.m_machineState)) { return(false); } return(true); }
/// <summary> /// Invokes the method, returns the result and output argument. /// </summary> protected override ServiceResult Call( ISystemContext _context, NodeId _objectId, IList <object> _inputArguments, IList <object> _outputArguments) { if (OnCall == null) { return(base.Call(_context, _objectId, _inputArguments, _outputArguments)); } ServiceResult result = null; string machineName = (string)_inputArguments[0]; MachineDataType machineData = (MachineDataType)_outputArguments[0]; if (OnCall != null) { result = OnCall( _context, this, _objectId, machineName, ref machineData); } _outputArguments[0] = machineData; return(result); }
private ServiceResult OnGetMachineData(ISystemContext context, MethodState method, NodeId objectid, string machineName, ref MachineDataType machinedata) { machinedata = new MachineDataType { MachineName = machineName }; if (machineName == "Machine #1") { machinedata.Manufacturer = machine1_.MachineData.Value.Manufacturer; machinedata.SerialNumber = machine1_.MachineData.Value.SerialNumber; machinedata.MachineState = machine1_.MachineData.Value.MachineState; } else if (machineName == "Machine #2") { machinedata.Manufacturer = machine1_.MachineData.Value.Manufacturer; machinedata.SerialNumber = machine1_.MachineData.Value.SerialNumber; machinedata.MachineState = machine1_.MachineData.Value.MachineState; } else { machinedata.Manufacturer = "Unknown"; machinedata.SerialNumber = "Unknown"; machinedata.MachineState = MachineStateDataType.Failed; } return(ServiceResult.Good); }
/*public int MaxRunningTasks * { * get { return _scheduler.MaximumConcurrencyLevel; } * set * { * TaskStop(); * _scheduler = new LimitedConcurrencyLevelTaskScheduler(value); * } * }*/ /// <summary> /// 构造一个TaskManager /// </summary> /// <param name="maxRunningTask">同时可以运行的任务数</param> /// <param name="getCycle">读取数据的时间间隔(秒)</param> /// <param name="keepConnect">读取数据后是否保持连接</param> /// <param name="dataType">获取与设置数据的方式</param> public TaskManager(/*int maxRunningTask,*/ int getCycle, bool keepConnect, MachineDataType dataType = MachineDataType.CommunicationTag) { //_scheduler = new LimitedConcurrencyLevelTaskScheduler(maxRunningTask); _machines = new HashSet <BaseMachine>(new BaseMachineEqualityComparer()); _unlinkedMachines = new HashSet <BaseMachine>(new BaseMachineEqualityComparer()); _getCycle = getCycle; KeepConnect = keepConnect; MachineDataType = dataType; }
/// <summary cref="Object.MemberwiseClone" /> public new object MemberwiseClone() { MachineDataType clone = (MachineDataType)base.MemberwiseClone(); clone.m_machineName = (string)Utils.Clone(this.m_machineName); clone.m_manufacturer = (string)Utils.Clone(this.m_manufacturer); clone.m_serialNumber = (string)Utils.Clone(this.m_serialNumber); clone.m_machineState = (MachineStateDataType)Utils.Clone(this.m_machineState); return(clone); }
public TaskManager(int maxRunningTask, int getCycle, bool keepConnect, MachineDataType dataType = MachineDataType.CommunicationTag) : base(maxRunningTask, getCycle, keepConnect, dataType) { }