/// <summary> /// Configure MidInterpreter to parse all available Mids of a mode /// <para>Select Integrator if you're integrator or Controller if you're a controller</para> /// </summary> /// <param name="midInterpreter">MidInterpreter instance</param> /// <param name="mode">Are you the integrator or controller?</param> /// <returns></returns> public static MidInterpreter UseAllMessages(this MidInterpreter midInterpreter, IEnumerable <Type> mids) { if (mids.Any(x => !x.IsSubclassOf(typeof(Mid)))) { throw new ArgumentException("All mids must inherit Mid class", nameof(mids)); } return(midInterpreter .UseAlarmMessages(mids.Where(x => DoesImplementInteface(x, typeof(Alarm.IAlarm)))) .UseApplicationControllerMessage(mids.Where(x => DoesImplementInteface(x, typeof(ApplicationController.IApplicationController)))) .UseApplicationSelectorMessages(mids.Where(x => DoesImplementInteface(x, typeof(ApplicationSelector.IApplicationSelector)))) .UseApplicationToolLocationSystemMessages(mids.Where(x => DoesImplementInteface(x, typeof(ApplicationToolLocationSystem.IApplicationToolLocationSystem)))) .UseAutomaticManualModeMessages(mids.Where(x => DoesImplementInteface(x, typeof(AutomaticManualMode.IAutomaticManualMode)))) .UseCommunicationMessages(mids.Where(x => DoesImplementInteface(x, typeof(Communication.ICommunication)))) .UseIOInterfaceMessages(mids.Where(x => DoesImplementInteface(x, typeof(IOInterface.IIOInterface)))) .UseJobMessages(mids.Where(x => DoesImplementInteface(x, typeof(Job.IJob)))) .UseAdvancedJobMessages(mids.Where(x => DoesImplementInteface(x, typeof(Job.Advanced.IAdvancedJob)))) .UseMotorTuningMessages(mids.Where(x => DoesImplementInteface(x, typeof(MotorTuning.IMotorTuning)))) .UseMultipleIdentifiersMessages(mids.Where(x => DoesImplementInteface(x, typeof(MultipleIdentifiers.IMultipleIdentifier)))) .UseMultiSpindleMessages(mids.Where(x => DoesImplementInteface(x, typeof(MultiSpindle.IMultiSpindle)))) .UseOpenProtocolCommandsDisabledMessages(mids.Where(x => DoesImplementInteface(x, typeof(OpenProtocolCommandsDisabled.IOpenProtocolCommandsDisabled)))) .UseParameterSetMessages(mids.Where(x => DoesImplementInteface(x, typeof(ParameterSet.IParameterSet)))) .UsePLCUserDataMessages(mids.Where(x => DoesImplementInteface(x, typeof(PLCUserData.IPLCUserData)))) .UsePowerMACSMessages(mids.Where(x => DoesImplementInteface(x, typeof(PowerMACS.IPowerMACS)))) .UseResultMessages(mids.Where(x => DoesImplementInteface(x, typeof(Result.IResult)))) .UseStatisticMessages(mids.Where(x => DoesImplementInteface(x, typeof(Statistic.IStatistic)))) .UseTighteningMessages(mids.Where(x => DoesImplementInteface(x, typeof(Tightening.ITightening)))) .UseTimeMessages(mids.Where(x => DoesImplementInteface(x, typeof(Time.ITime)))) .UseToolMessages(mids.Where(x => DoesImplementInteface(x, typeof(Tool.ITool)))) .UseUserInterfaceMessages(mids.Where(x => DoesImplementInteface(x, typeof(UserInterface.IUserInterface)))) .UseVinMessages(mids.Where(x => DoesImplementInteface(x, typeof(Vin.IVin))))); }
/// <summary> /// Configure MidInterpreter to parse all available Mids of a mode /// <para>Select Integrator if you're integrator or Controller if you're a controller</para> /// </summary> /// <param name="midInterpreter">MidInterpreter instance</param> /// <param name="mode">Are you the integrator or controller?</param> /// <returns></returns> public static MidInterpreter UseAllMessages(this MidInterpreter midInterpreter, InterpreterMode mode = InterpreterMode.Both) { return(midInterpreter .UseAlarmMessages(mode) .UseApplicationControllerMessage(mode) .UseApplicationSelectorMessages(mode) .UseApplicationToolLocationSystemMessages(mode) .UseAutomaticManualModeMessages(mode) .UseCommunicationMessages(mode) .UseIOInterfaceMessages(mode) .UseJobMessages(mode) .UseAdvancedJobMessages(mode) .UseMotorTuningMessages(mode) .UseMultipleIdentifiersMessages(mode) .UseMultiSpindleMessages(mode) .UseOpenProtocolCommandsDisabledMessages(mode) .UseParameterSetMessages(mode) .UsePLCUserDataMessages(mode) .UsePowerMACSMessages(mode) .UseResultMessages(mode) .UseStatisticMessages(mode) .UseTighteningMessages(mode) .UseTimeMessages(mode) .UseToolMessages(mode) .UseUserInterfaceMessages(mode) .UseVinMessages(mode)); }