public void scannerOff() { GpioManager manager1 = GpioManager.Instance; manager1.setGpioResponseListener(this); manager1.ScannerOff(); }
public async void OnDone(WHOAMI whoami) { if (whoami == WHOAMI.SCANNER) { manager = GpioManager.Instance; manager.setGpioResponseListener(this); manager.TriggerOff(); trigger = false; await this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () => { // This now works, because it's running on the UI thread: // txt_Search.Text = res.ToString(); //lst_Category.Visibility = Visibility.Visible; pr_scan.Visibility = Visibility.Collapsed; pr_scan.IsActive = false; Info_Text.Visibility = Visibility.Collapsed; txt_ScannedData.Visibility = Visibility.Visible;; btn_Scan.Visibility = Visibility.Visible; //Scan_btn.IsEnabled = true; //btn_Checkout.IsEnabled = true; //btn_CartView.IsEnabled = true; //btn_SearchItem.IsEnabled = true; }); } }
private static void Main() { // Build pipe server var ipcServer = new NamedPipeServerStream(PipeName, PipeDirection.InOut, 1); // TODO: TEST new Thread(TestClient) { IsBackground = true }.Start(); // Start pipe server while (Thread.CurrentThread.ThreadState == ThreadState.Running) { if (!ipcServer.IsConnected) { ipcServer.WaitForConnection(); } var request = ipcServer.ReadMessage <GpioRequest>(); var response = new GpioResponse(); using (new UserContext(ipcServer.GetImpersonationUserName())) { #if DEBUG Console.WriteLine(JsonConvert.SerializeObject(request)); #endif var gpioManager = new GpioManager(); // TODO: Get from DI switch (request.Action) { case RequestAction.Export: response.Result = gpioManager.TryExport(request.PinNumber, out IGpioPin pin); response.Payload = (pin as GpioPin)?.Path; break; case RequestAction.Unexport: response.Result = gpioManager.TryUnexport(new GpioPin(request.PinNumber)); break; default: response.Result = false; break; } } ipcServer.Disconnect(); } ipcServer.Dispose(); }
private void mn_PowerOffClick(object sender, RoutedEventArgs e) { GpioManager manager = GpioManager.Instance; manager.PaymentOff(); }
/// <summary> /// Class constructor. /// </summary> public GpioHandler(IErrorHandler errorHandler, IConfig config, ILogger logger, ServiceStats serviceStats, GpioManager gpio) : base(errorHandler, config, logger, serviceStats) { _gpio = gpio; }
/// <summary> /// Starts the service. /// </summary> public void Start() { try { //message _logger = Log.Instance; _logger.WriteMessage("Service", "=========================================="); _logger.WriteMessage("Service", "Starting service.."); //start time _startTime = DateTime.Now; //events Console.CancelKeyPress += Console_CancelKeyPress; //config _logger.WriteMessage("Service", "Loading configuration.."); IConfigurationRoot root = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("Config.json", optional: true, reloadOnChange: false) .Build(); _config = new Config(root); _logger.WriteMessage("Service", $"Service version is {_config.ServiceVersion}"); //init pi (if linux) if (_config.IsLinux) { Pi.Init <BootstrapWiringPi>(); } //singletons _logger.WriteMessage("Service", "Creating support structures.."); ((Log)Log.Instance).Initialize(_config.IsWindows ? "C:\\Temp\\" : "/var/log/", _config.ServiceVersion); _errorCache = new ErrorCache(null, _config.ErrorRetention); _errorHandler = new ErrorHandler(_errorCache, _logger); _serviceState = new ServiceState(_errorHandler, _logger, ServiceStateType.Down); _serviceStats = new ServiceStats(_errorHandler); _heartbeat = new Heartbeat(_errorHandler, _config, _logger, _serviceStats, _serviceState); _piInfo = new PiInfo(_config); _gpio = new GpioManager(_errorHandler, _config); //stats writers _statsWriters.Add(_serviceState); _statsWriters.Add(_serviceStats); _statsWriters.Add(_gpio); _statsWriters.Add(_piInfo); _statsWriters.Add((IStatsWriter)_errorCache); //start health thread _logger.WriteMessage("Service", "Starting health thread.."); _healthThread = new Thread(Health_Thread) { IsBackground = true }; _healthThread.Start(); //finish init on another thread, finish start Task.Run(() => { //start gpio loop _gpio.Initialize(); //wait for ip assignment WaitForIPAssignment(); //start heatbeat timer _heartbeat.Start(); //start http listener StartHttpListener(); }); //log start operation _serviceStats.LogOperation("ServiceStart", DateTime.Now.Subtract(_startTime)); //wait for exit signal _exitSignal.WaitOne(); } catch (Exception ex) { if (_errorHandler != null) { _errorHandler.LogError(ex); } else { Console.WriteLine(ex); } } }