public DeviceHandlerContextTests(ITestOutputHelper output) { Output = output; ICommunicationDeviceSettings settings = new SerialPortSettings() { BaudRate = /*19200*/ 921600, Encoding = 20127, PortNumber = 4, WriteTimeout = -1, DataBits = 8, Parity = Parity.None, StopBits = StopBits.One, ReadTimeout = -1, }; var dataSplitter = new StandardDataStreamSplitter('#'); var v1 = new OnlyAlphanumericAllowedValidator(); var v2 = AllwaysGoodValidatorSingleton.Instance; var v3 = AllwaysBadValidatorSingleton.Instance; var a1 = idfac = new PartFactoryAutofacAdapter((data, validator) => new IDPart(data, validator), v3); var a2 = hostidfac = new PartFactoryAutofacAdapter((data, validator) => new HostIDPart(data, validator), v3); var a3 = targetfac = new PartFactoryAutofacAdapter((data, validator) => new TargetPart(data, validator), v3); var a4 = orderfac = new PartFactoryAutofacAdapter((data, validator) => new OrderPart(data, validator), v3); var a5 = datafac = new PartFactoryAutofacAdapter((data, validator) => new DataPart(data, validator), v3); var a6 = emptyfac = new PartFactoryAutofacAdapter((data, validator) => new EmptyPart(validator), v2); var partFactory = new PrecisePartFactory(new Dictionary <PartType, PartFactoryAutofacAdapter>() { [PartType.ID] = a1, [PartType.HostID] = a2, [PartType.Target] = a3, [PartType.Order] = a4, [PartType.Data] = a5, [PartType.Empty] = a6 }); var comfacadap = new CommandFactoryAutoFacAdapter((id, hostid, target, order, data, Timestamp) => new Command(id, hostid, target, order, data, TimestampFactory.Timestamp)); var Factory = new CommandFactory('*', partFactory, comfacadap); var ConfirmationFactory = new ConfirmationFactory(); var Translator = new CommandTranslator(Factory, new RawCommandFactory('#', '*')); ICommunicationDeviceAsync com = new Shield.COMDevice.SerialPortAdapter(settings); DHC = new DeviceHandlerContext(com, dataSplitter, Translator); }
public void EnterState(DeviceHandlerContext context, Action <ICommand> handleReceivedCommandCallback) { _context = context; _handleReceivedCommandCallback = handleReceivedCommandCallback; }