private static void CreateStellaClientInstance(int id) { // Light int ledCount = 300; Settings settings = Settings.CreateDefaultSettings(); settings.Channels[0] = new Channel(ledCount, 18, 255, false, StripType.WS2812_STRIP); WS281x ledstrip = new WS281x(settings); LedController ledController = new LedController(ledstrip); // Server IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(Program.SERVER_IP), 20055); StellaClientLib.Network.StellaServer stellaServer = new StellaClientLib.Network.StellaServer(); stellaServer.RenderFrameReceived += (sender, frame) => ledController.RenderFrame(frame); stellaServer.Start(localEndPoint, 20056, id); string input; Console.Out.WriteLine($"Running StellaClient instance with id {id}"); while ((input = Console.ReadLine()) != "q") { Console.Out.WriteLine("q - quit"); switch (input) { default: Console.Out.WriteLine("Unknown command."); break; } } stellaServer.Dispose(); }
static void Main(string[] args) { var word = new Word(24); // 0xA1 B2 // 1010 0001 1011 0010 word.Set(new bool[] { true, false, true, false, false, false, false, true, true, false, true, true, false, false, true, false }); Console.WriteLine($"Byte size = {word.ReadAsBytes().Length}"); Console.WriteLine("Expecting 0xA1B2..."); foreach (var item in word.ReadAsBytes()) { Console.WriteLine(((int)item).ToString("X")); } Console.WriteLine("Reporting bit value"); Console.Write(" "); foreach (var item in word.Read()) { Console.Write($"{(item ? 1 : 0)} "); } Console.WriteLine("Simulating Controllers "); IController led = new LedController("Simple", LedColor.Green); Console.WriteLine($"- Controller [{led.Label}] : State is [{led.State}]"); }
public LanCommunicationService(ILogger logger) { this.logger = logger; mc = new ModuleController(logger); mod = mc.GetCurrentModule(); canceller = new CancellationTokenSource(); networker = new MasterNetworker(mod?.Module?.Name, logger); lc = new LedController(logger); }
public Tracker(float confThreshold) { this.sittingTime = new TimeSpan(); this.standingTime = new TimeSpan(); this.avg = 0F; this.avgLen = 0; this.confThreshold = confThreshold; this.sw = new Stopwatch(); this.sw.Start(); ledStrip = new LedController(LEDQUANTITY, LEDMAXDURATION); Dictionary <ulong, Tuple <float, int> > people = new Dictionary <ulong, Tuple <float, int> >(); //ledStrip.refresh(0); }
public void Render__LedStripRenderGetsCalled() { FrameWithoutDelta frame = new FrameWithoutDelta(0, 100, 1); frame[0] = new PixelInstruction(10, 20, 30); var mock = new Mock <ILEDStrip>(); mock.Setup(x => x.Render()); LedController controller = new LedController(mock.Object); controller.RenderFrame(frame); mock.Verify(x => x.Render(), Times.Once); }
public void PrepareFrame_Frame_FrameGetsDrawnToStrip() { FrameWithoutDelta frame = new FrameWithoutDelta(0, 100, 1); frame[0] = new PixelInstruction(10, 20, 30); var mock = new Mock <ILEDStrip>(); int index = -1; Color color = new Color(); mock.Setup(x => x.SetLEDColor(It.IsAny <int>(), It.IsAny <int>(), It.IsAny <Color>())).Callback <int, int, Color>((i, j, c) => { index = j; color = c; }); LedController controller = new LedController(mock.Object); controller.RenderFrame(frame); Assert.AreEqual(0, index); Assert.AreEqual(Color.FromArgb(10, 20, 30), color); }
// The main entry point for glow smarts. public void Run() { // Create the LED controller m_ledController = new LedController(); // Create all of the programs and add them to the cache. IProgram program = new GlowControl(); program.InitProgram(this); m_programCache.Add(GlowPrograms.GlowControl, program); program = new DiscoveryControl(); program.InitProgram(this); m_programCache.Add(GlowPrograms.DiscoveryControl, program); program = new ManualColor(); program.InitProgram(this); m_programCache.Add(GlowPrograms.ManualColors, program); program = new Clock(); program.InitProgram(this); m_programCache.Add(GlowPrograms.Clock, program); program = new Weather(); program.InitProgram(this); m_programCache.Add(GlowPrograms.Weather, program); program = new WeatherCam(); program.InitProgram(this); m_programCache.Add(GlowPrograms.WeatherCam, program); program = new RandomColor(); program.InitProgram(this); m_programCache.Add(GlowPrograms.RandomColor, program); // Create a command listener m_commandServer = new CommandServer(this, CommandServer.CommmandServerMode.Server); // Setup the main worker thread. m_continueWorking = true; m_lastWorkTime = DateTime.Now; m_workerThread = new Task(WorkLoop); m_workerThread.Start(); }
public PresetController(ILogger logger) { this.logger = logger; ledController = new LedController(logger); }
public TimingController(ILogger logger) { this.logger = logger; ledController = new LedController(logger); }
public static void Main(string[] args) { //load settings Settings settings = Settings.Load(); if (settings == null) { Console.WriteLine("Invalid settings - check the Settings.json file"); Console.ReadKey(); return; } settings.Save(); //prepare storage FileBasedControllerStorage controllerStorage = new FileBasedControllerStorage(); FileBasedFirmwareStorage firmwareStorage = new FileBasedFirmwareStorage(); MemoryBasedLedStorage ledStorage = new MemoryBasedLedStorage(); FileBasedGroupStorage groupStorage = new FileBasedGroupStorage(); //initialize storage controllerStorage.Initialize(settings.ControllerPath); firmwareStorage.Initialize(settings.FirmwarePath); ledStorage.Initialize(); groupStorage.Initialize(settings.GroupPath); //initialize business logic (handlers) ControllerHandler controllerHandler = new ControllerHandler(controllerStorage, groupStorage, ledStorage); FirmwareHandler firmwareHandler = new FirmwareHandler(firmwareStorage, settings); LedHandler ledHandler = new LedHandler(ledStorage, controllerStorage); GroupHandler groupHandler = new GroupHandler(groupStorage, ledStorage); TrunkEndpoint trunkEndpoint = new TrunkEndpoint(controllerStorage, ledStorage); //initialize API endpoints (controllers) BaseController baseController = new BaseController(settings.Oauth); ControllerController controllerController = new ControllerController(controllerHandler); ControllerTrunk controllerTrunk = new ControllerTrunk(trunkEndpoint); FirmwareController firmwareController = new FirmwareController(firmwareHandler); LedController ledController = new LedController(ledHandler); GroupController groupController = new GroupController(groupHandler); //initialize web server HttpService service = new DefaultHttpSysService(false, "+", settings.ServerPort); service.AddController(baseController, settings.Multithreaded); service.AddController(controllerController, settings.Multithreaded); service.AddController(controllerTrunk, "Trunk", true); service.AddController(firmwareController, settings.Multithreaded); service.AddController(ledController, settings.Multithreaded); service.AddController(groupController, settings.Multithreaded); //service.GetProcessorPostManipulation(DefaultHttpSysService.INTERNAL_PROCESSING_GROUP).Add(new OptionsPayloadInjector("OptionsInjector")); //if OAuth is enabled... if (settings.Oauth) { //prepare OAuth storage ClientAccountFileStorage clientStorage = new ClientAccountFileStorage(); UserAccountFileStorage userStorage = new UserAccountFileStorage(); RefreshTokenFileStorage refreshTokenStorage = new RefreshTokenFileStorage(); //initialize oauth storage clientStorage.Initialize(settings.ClientPath); refreshTokenStorage.Initialize(settings.RefreshTokenPath); userStorage.Initialize(settings.UserPath); //prepare OAuth core OAuth2 oauth = new OAuth2("fwehnvd3432nfre7r834nfsfiu43kmvrew!"); oauth.ClientCredentialsAuthorization = new ClientCredentialsAuthorization(oauth, clientStorage); oauth.PasswordAuthorization = new PasswordAuthorization(oauth, clientStorage, userStorage); oauth.RefreshTokenAuthorization = new RefreshTokenAuthorization(oauth, clientStorage, userStorage, refreshTokenStorage); service.GetProcessorPreManipulation(false).Add(new CustomizedAccessTokenValidator(oauth.AccessTokenValidator)); //prepare OAuth Webkit IScopeHandler scopeHandler = new ScopeHandler(service, oauth); IClientHandler clientHandler = new ClientHandler(clientStorage); IUserHandler userHandler = new UserHandler(clientStorage, userStorage); //initialize API endpoints (controllers) for OAuth + Webkit service.AddController(new AuthController(oauth)); service.AddController(new ClientController(clientHandler)); service.AddController(new ScopeController(scopeHandler)); service.AddController(new UserController(userHandler)); //assign scopes to OAuth Webkit API endpoints ClientController.AssignScopesToEndpoints(skotstein.app.ledserver.tools.Scopes.AUTH_CLIENT_READ, skotstein.app.ledserver.tools.Scopes.AUTH_CLIENT_WRITE, oauth); ScopeController.AssignScopeToEndpoint(skotstein.app.ledserver.tools.Scopes.AUTH_SCOPE_READ, oauth); UserController.AssignScopesToEndpoints(skotstein.app.ledserver.tools.Scopes.AUTH_USER_READ, skotstein.app.ledserver.tools.Scopes.AUTH_USER_WRITE, oauth); } //generate YAML file OpenApiDocumentBuilder documentBuilder = new OpenApiDocumentBuilder(); OpenApiDocument document = documentBuilder.Build("V1"); if (settings.Oauth) { document = documentBuilder.AddSecuritySchema(document, new List <HttpController> { baseController, controllerController, groupController, ledController, firmwareController }, /*@"http://*****:*****@"http://localhost:4000/api/v1/auth/token"); } string json = documentBuilder.AsJson(document); json = documentBuilder.Replace(json, new ExampleValues()); json = documentBuilder.Replace(json, new HostValue("http://*****:*****@".\OpenApi.json", json); //start server Console.WriteLine(service.Routes); service.Start(); Console.WriteLine("Service is listening on port:" + settings.ServerPort); if (settings.Oauth) { Console.WriteLine("OAuth 2.0 is enabled"); Console.WriteLine("Access Token URL: POST " + restlayer.ApiBase.API_V1 + "/auth/token"); } else { Console.WriteLine("OAuth 2.0 is disabled"); } Console.WriteLine("Press key to terminate"); Console.ReadKey(); }