public A10APIServer(TargetDeviceEventDispatcher dispatcher) { this.EventDispatcher = dispatcher; urlMap = new Dictionary <string, System.Func <HttpListenerContext, HttpListenerResponse> >() { { $"{apiUrlPrefix}/addQueue", (context) => { Logger.log("/addQueue"); string intervalStr = context.Request.QueryString.Get("interval"); float interval = float.Parse(intervalStr); string directionStr = context.Request.QueryString.Get("direction"); int direction = int.Parse(directionStr); direction = direction < 0 ? -1 : 1; Logger.log($"/addQueue interval : {interval}, direction : {direction}"); DeviceCommand command = new DeviceCommand(); command.direction = direction; command.interval = interval; EventDispatcher.AddQueue(command); return(context.Response); } }, { $"{apiUrlPrefix}/clearQueue", (context) => { Logger.log("/clearQueue"); EventDispatcher.ClearQueue(); return(context.Response); } }, }; }
static async Task Main(string[] args) { Logger.addLogger(new ConsoleLogger()); var searcher = new TargetDeviceSearcher(); var dispatcher = new TargetDeviceEventDispatcher(); dispatcher.init(searcher); var server = new A10APIServer(dispatcher); searcher.Start(); server.Start(); while (true) { await Task.Delay(TimeSpan.FromMilliseconds(3000)); } }