public static JSEvent createEvent(string eventClassString, WrappedObject target) { JSEvent evt = null; EventClasses eventClass = EventClasses.Event; if (eventClassString == "Event") { eventClass = EventClasses.Event; } else if (eventClassString == "UIEvent") { eventClass = EventClasses.UIEvent; } else if (eventClassString == "MouseEvent") { eventClass = EventClasses.MouseEvent; } else { //Throw Unsupported error exception according to W3C createEvent documentation } evt = new JSEvent(); evt.InitializeCreatedEvent(eventClass, target); return(evt); }
/* // This isn't compiling since we've moved away from using WrapperType. // I'd update it, but apparently nobody is actually calling it. - SF internal mdr.PropertyMap GetPropertyMapOfDomPrototype(WrapperType domClass) { var mapIndex = (int)domClass; var map = _maps[mapIndex]; if (map == null) { var prototype = DOMBinder.GetPrototype(mapIndex); map = GetRootMapOfPrototype(prototype); _maps[mapIndex] = map; } return map; } */ public mdr.PropertyMap GetPropertyMapOfEventPrototype(EventClasses eventClass) { var mapIndex = /*(int) WrapperType.LastWrapperType + */(int)eventClass; var map = _maps[mapIndex]; if (map == null) { var prototype = JSEvent.GetPrototype(eventClass); map = GetRootMapOfPrototype(prototype); _maps[mapIndex] = map; } return map; }
/* * // This isn't compiling since we've moved away from using WrapperType. * // I'd update it, but apparently nobody is actually calling it. - SF * internal mdr.PropertyMap GetPropertyMapOfDomPrototype(WrapperType domClass) * { * var mapIndex = (int)domClass; * var map = _maps[mapIndex]; * if (map == null) * { * var prototype = DOMBinder.GetPrototype(mapIndex); * map = GetRootMapOfPrototype(prototype); * _maps[mapIndex] = map; * } * return map; * } */ public mdr.PropertyMap GetPropertyMapOfEventPrototype(EventClasses eventClass) { var mapIndex = /*(int) WrapperType.LastWrapperType + */ (int)eventClass; var map = _maps[mapIndex]; if (map == null) { var prototype = JSEvent.GetPrototype(eventClass); map = GetRootMapOfPrototype(prototype); _maps[mapIndex] = map; } return(map); }
public void InitializeCreatedEvent(EventClasses eventClass, WrappedObject target) { Data.EventClass = eventClass; Data.Type = EventTypes.ZoommInvalid; Data.Target = target; CurrentTarget = target; Bubbles = false; Cancelable = true; DefaultPrevented = false; IsTrusted = false; Phase = Phases.AtTarget; InitializeEventFlags(); UpdateMap(); }
// ANCHOR_END: master_channel_config // ANCHOR: association_config private static AssociationConfig GetAssociationConfig() { var config = new AssociationConfig( // disable unsolicited first (Class 1/2/3) EventClasses.All(), // after the integrity poll, enable unsolicited (Class 1/2/3) EventClasses.All(), // perform startup integrity poll with Class 1/2/3/0 Classes.All(), // don't automatically scan Class 1/2/3 when the corresponding IIN bit is asserted EventClasses.None() ); config.AutoTimeSync = AutoTimeSync.Lan; config.KeepAliveTimeout = TimeSpan.FromSeconds(60); return(config); }
protected IDictionary <TransitionEventPhase, string> GetClassNames(TransitionEvent @event) { bool hasPrefix = !string.IsNullOrWhiteSpace(EventClass); string baseClass = null, activeClass = null, doneClass = null; if (hasPrefix) { baseClass = $"{EventClass}-{@event}"; activeClass = $"{baseClass}-Active"; doneClass = $"{baseClass}-Done"; } else { if (Enum.TryParse($"{@event}", out TransitionEventClass baseEvent)) { baseClass = EventClasses.ContainsKey(baseEvent) ? EventClasses[baseEvent] : null; } if (Enum.TryParse($"{@event}{TransitionEventPhase.Active}", out TransitionEventClass activeEvent)) { activeClass = EventClasses.ContainsKey(activeEvent) ? EventClasses[activeEvent] : null; } if (Enum.TryParse($"{@event}{TransitionEventPhase.Done}", out TransitionEventClass doneEvent)) { doneClass = EventClasses.ContainsKey(doneEvent) ? EventClasses[doneEvent] : null; } } var classes = new Dictionary <TransitionEventPhase, string> { { TransitionEventPhase.Base, baseClass }, { TransitionEventPhase.Active, activeClass }, { TransitionEventPhase.Done, doneClass } }; return(classes); }
public static mdr.DObject GetPrototype(EventClasses eventClass) { mdr.DObject prototype = null; switch (eventClass) { case EventClasses.Event: { prototype = new mdr.DObject(); prototype.DefineOwnProperty("type", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.Type.ToString().ToLower()); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("screenX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.screenX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("screenY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.screenY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("clientX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.clientX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("clientY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.clientY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("pageX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.pageX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("pageY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.pageY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("buttons", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.buttons); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("button", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((int)ev.Data.button); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("metaKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.metaKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("ctrlKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.ctrlKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("shiftKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.shiftKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("altKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.altKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("target", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Target); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("currentTarget", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.CurrentTarget); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("eventPhase", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set((UInt32)ev.Phase); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("bubbles", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Bubbles); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("cancelable", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Cancelable); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.SetField("initEvent", new mdr.DFunction((ref mdr.CallFrame callFrame) => { string eventTypeString = callFrame.Arg0.AsString(); bool bubbles = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg1); bool cancelable = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg2); var ev = callFrame.This.FirstInPrototypeChainAs<JSEvent>(); EventTypes type; eventTypesToString.TryGetValue(eventTypeString, out type); ev.InitEvent(type, bubbles, cancelable); })); prototype.SetField("stopPropagation", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs<JSEvent>(); ev.StopPropagation(); })); prototype.SetField("stopImmediatePropagation", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs<JSEvent>(); ev.StopImmediatePropagation(); })); prototype.SetField("preventDefault", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs<JSEvent>(); ev.PreventDefault(); })); //Fill the rest ... break; } case EventClasses.UIEvent: { prototype = new mdr.DObject(HTMLRuntime.Instance.GetPropertyMapOfEventPrototype(EventClasses.Event)); /* prototype.DefineOwnProperty("type", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.Type.ToString()); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); * */ prototype.SetField("initUIEvent", new mdr.DFunction((ref mdr.CallFrame callFrame) => { string eventTypeString = callFrame.Arg0.AsString(); bool bubbles = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg1); bool cancelable = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg2); // TODO: Variables 'view' and 'detail' are never used; remove? /*string view = callFrame.Arg3.ToString(); int detail = -1; if (callFrame.ArgsCount > 4) { detail = callFrame.Arguments[0].ToInt32(); }*/ var ev = callFrame.This.FirstInPrototypeChainAs<JSEvent>(); EventTypes type; eventTypesToString.TryGetValue(eventTypeString, out type); ev.InitEvent(type, bubbles, cancelable); })); //Fill the rest ... break; } case EventClasses.MouseEvent: { prototype = new mdr.DObject(HTMLRuntime.Instance.GetPropertyMapOfEventPrototype(EventClasses.UIEvent)); prototype.DefineOwnProperty("type", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs<JSEvent>(); v.Set(ev.Data.Type.ToString()); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); //Fill the rest ... break; } default: Trace.Fail("Invalid event class type {0}", eventClass); break; } return prototype; }
public static mdr.DObject GetPrototype(EventClasses eventClass) { mdr.DObject prototype = null; switch (eventClass) { case EventClasses.Event: { prototype = new mdr.DObject(); prototype.DefineOwnProperty("type", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.Type.ToString().ToLower()); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("screenX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.screenX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("screenY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.screenY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("clientX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.clientX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("clientY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.clientY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("pageX", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.pageX); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("pageY", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.pageY); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("buttons", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.buttons); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("button", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((int)ev.Data.button); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("metaKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.metaKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("ctrlKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.ctrlKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("shiftKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.shiftKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("altKey", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.altKey); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("target", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Target); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("currentTarget", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.CurrentTarget); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("eventPhase", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set((UInt32)ev.Phase); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("bubbles", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Bubbles); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.DefineOwnProperty("cancelable", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Cancelable); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); prototype.SetField("initEvent", new mdr.DFunction((ref mdr.CallFrame callFrame) => { string eventTypeString = callFrame.Arg0.AsString(); bool bubbles = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg1); bool cancelable = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg2); var ev = callFrame.This.FirstInPrototypeChainAs <JSEvent>(); EventTypes type; eventTypesToString.TryGetValue(eventTypeString, out type); ev.InitEvent(type, bubbles, cancelable); })); prototype.SetField("stopPropagation", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs <JSEvent>(); ev.StopPropagation(); })); prototype.SetField("stopImmediatePropagation", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs <JSEvent>(); ev.StopImmediatePropagation(); })); prototype.SetField("preventDefault", new mdr.DFunction((ref mdr.CallFrame callFrame) => { var ev = callFrame.This.FirstInPrototypeChainAs <JSEvent>(); ev.PreventDefault(); })); //Fill the rest ... break; } case EventClasses.UIEvent: { prototype = new mdr.DObject(HTMLRuntime.Instance.GetPropertyMapOfEventPrototype(EventClasses.Event)); /* * prototype.DefineOwnProperty("type", new mdr.DProperty() * { * OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => * { * var ev = This.FirstInPrototypeChainAs<JSEvent>(); * v.Set(ev.Data.Type.ToString()); * }, * }, mdr.PropertyDescriptor.Attributes.NotWritable); * */ prototype.SetField("initUIEvent", new mdr.DFunction((ref mdr.CallFrame callFrame) => { string eventTypeString = callFrame.Arg0.AsString(); bool bubbles = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg1); bool cancelable = mjr.Operations.Convert.ToBoolean.Run(ref callFrame.Arg2); // TODO: Variables 'view' and 'detail' are never used; remove? /*string view = callFrame.Arg3.ToString(); * int detail = -1; * if (callFrame.ArgsCount > 4) * { * detail = callFrame.Arguments[0].ToInt32(); * }*/ var ev = callFrame.This.FirstInPrototypeChainAs <JSEvent>(); EventTypes type; eventTypesToString.TryGetValue(eventTypeString, out type); ev.InitEvent(type, bubbles, cancelable); })); //Fill the rest ... break; } case EventClasses.MouseEvent: { prototype = new mdr.DObject(HTMLRuntime.Instance.GetPropertyMapOfEventPrototype(EventClasses.UIEvent)); prototype.DefineOwnProperty("type", new mdr.DProperty() { OnGetDValue = (mdr.DObject This, ref mdr.DValue v) => { var ev = This.FirstInPrototypeChainAs <JSEvent>(); v.Set(ev.Data.Type.ToString()); }, }, mdr.PropertyDescriptor.Attributes.NotWritable); //Fill the rest ... break; } default: Trace.Fail("Invalid event class type {0}", eventClass); break; } return(prototype); }
private static async Task MainAsync(Runtime runtime) { var master = Master.CreateTcpSession( runtime, LinkErrorMode.Close, GetMasterConfig(), new EndpointList("127.0.0.1:20000"), new TestListener() ); var readHandler = new TestReadHandler(); var association = master.AddAssociation( 1024, new AssociationConfig(EventClasses.All(), EventClasses.All(), Classes.All(), EventClasses.None()) { AutoTimeSync = AutoTimeSync.Lan, AutoTasksRetryStrategy = new RetryStrategy { MinDelay = TimeSpan.FromSeconds(1), MaxDelay = TimeSpan.FromSeconds(5), }, KeepAliveTimeout = TimeSpan.FromSeconds(60), }, new AssociationHandlers(readHandler, readHandler, readHandler), new TestTimeProvider() ); var pollRequest = Request.ClassRequest(false, true, true, true); var poll = association.AddPoll(pollRequest, TimeSpan.FromSeconds(5)); // start communications master.Enable(); while (true) { switch (await GetInputAsync()) { case "x": return; case "enable": { master.Enable(); break; } case "disable": { master.Disable(); break; } case "dln": { master.SetDecodeLevel(new DecodeLevel()); break; } case "dlv": { master.SetDecodeLevel(new DecodeLevel() { Application = AppDecodeLevel.ObjectValues }); break; } case "rao": { var request = new Request(); request.AddAllObjectsHeader(Variation.Group40Var0); var result = await association.Read(request); Console.WriteLine($"Result: {result}"); break; } case "rmo": { var request = new Request(); request.AddAllObjectsHeader(Variation.Group10Var0); request.AddAllObjectsHeader(Variation.Group40Var0); var result = await association.Read(request); Console.WriteLine($"Result: {result}"); break; } case "cmd": { var command = new Command(); command.AddU16g12v1(3, new G12v1(new ControlCode(TripCloseCode.Nul, false, OpType.LatchOn), 1, 1000, 1000)); var result = await association.Operate(CommandMode.SelectBeforeOperate, command); Console.WriteLine($"Result: {result}"); break; } case "evt": { poll.Demand(); break; } case "lts": { var result = await association.PerformTimeSync(TimeSyncMode.Lan); Console.WriteLine($"Result: {result}"); break; } case "nts": { var result = await association.PerformTimeSync(TimeSyncMode.NonLan); Console.WriteLine($"Result: {result}"); break; } case "crt": { var result = await association.ColdRestart(); Console.WriteLine($"Result: {result}"); break; } case "wrt": { var result = await association.WarmRestart(); Console.WriteLine($"Result: {result}"); break; } case "lsr": { var result = await association.CheckLinkStatus(); Console.WriteLine($"Result: {result}"); break; } default: Console.WriteLine("Unknown command"); break; } } }