public async Task InitAsync()
        {
            await RemoteControlServer.StartAsync();

            await SpeechRecognitionService.StartAsync();

            await AlarmService.StartAsync();
        }
        public override void Stop()
        {
            if (!Running)
            {
                return;
            }
            log.InfoFormat("Stopping {0}", GetTypeName());

            server.Stop();
            server = null;

            base.Stop();
            log.DebugFormat("{0} stopped", GetTypeName());
        }
Exemple #3
0
 public void SetUp()
 {
     _environment = new MockPluginEnvironment(null);
     _srv         = new RemoteControlServer(_port);
     _srv.Start();
 }
Exemple #4
0
 public void TearDown()
 {
     _srv.Stop();
     _srv = null;
 }
        public override void Start()
        {
            if (Running)
            {
                return;
            }

            log.InfoFormat("Starting {0}", GetTypeName());

            base.Start();

            server = new RemoteControlServer(this.ApiBindAddress, this.ApiAccessPort);
            server.RequestReceived += (object sender, RequestReceivedEventArgs e) => {
                if (e.Context.Request.Url.AbsolutePath == "/api/v1/test")
                {
                    server.SendResponseJson(200,
                                            new InfoResponse()
                    {
                        name = "BlinkStick Client", version = ApplicationDataModel.ApplicationVersion, versionFull = ApplicationDataModel.ApplicationFullVersion
                    },
                                            e.Context.Response);
                    e.Handled = true;
                }

                RouteEnum route = RouteEnum.Unrecognized;

                Match m = SetColorRegex.Match(e.Context.Request.Url.AbsolutePath);

                if (m.Success)
                {
                    route = RouteEnum.SetColor;
                }
                else
                {
                    m = PatternRegex.Match(e.Context.Request.Url.AbsolutePath);

                    if (m.Success)
                    {
                        route = RouteEnum.PlayPattern;
                    }
                }

                BlinkStickDeviceSettings ledSettings = null;
                if (route != RouteEnum.Unrecognized)
                {
                    String serial = m.Groups[1].ToString();

                    ledSettings = DataModel.FindBySerial(serial);

                    if (ledSettings == null)
                    {
                        server.SendResponseJson(422, new ErrorResponse()
                        {
                            error = String.Format("BlinkStick with serial number {0} not found", serial)
                        }, e.Context.Response);
                        e.Handled = true;
                        return;
                    }
                    else if (ledSettings.Led == null)
                    {
                        server.SendResponseJson(422, new ErrorResponse()
                        {
                            error = String.Format("BlinkStick with serial number {0} not connected", serial)
                        }, e.Context.Response);
                        e.Handled = true;
                        return;
                    }
                }

                switch (route)
                {
                case RouteEnum.SetColor:
                    ProcessSetColorRequest(e, ledSettings);
                    break;

                case RouteEnum.PlayPattern:
                    ProcessPlayPatternRequest(e, ledSettings);
                    break;

                default:
                    break;
                }
            };
            server.Start();

            log.DebugFormat("{0} started", GetTypeName());
        }