示例#1
0
 public CoreApp(IPluginRegistry pluginRegistry, FunctionsEngine functionsEngine, ILoggerFactory loggerFactory, DeviceConfigurationProvider configurationProvider)
 {
     _pluginRegistry        = pluginRegistry;
     _functionsEngine       = functionsEngine;
     _log                   = loggerFactory.CreateLogger <CoreApp>();
     _configurationProvider = configurationProvider;
     _loggerFactory         = loggerFactory;
 }
示例#2
0
        static void Main(string[] args)
        {
            Console.WriteLine("Boondocks bootstrap starting...");

            try
            {
                var platformDetector = new PlatformDetector();

                IPathFactory pathFactory = platformDetector.CreatePathFactory();

                var deviceConfigurationProvider = new DeviceConfigurationProvider(pathFactory);

                if (deviceConfigurationProvider.Exists())
                {
                    //Get the device configuration
                    var deviceConfiguration = deviceConfigurationProvider.GetDeviceConfiguration();

                    //Create the container
                    using (var container = ContainerFactory.Create(pathFactory, deviceConfiguration, new BootstrapModule()))
                    {
                        //Get the agent host
                        var host = container.Resolve <BootstrapHost>();

                        var cancellationTokenSource = new CancellationTokenSource();

                        //We shall cancel on the keypress
                        Console.CancelKeyPress += (sender, eventArgs) => cancellationTokenSource.Cancel();

                        try
                        {
                            //Run the host
                            host.RunAsync(cancellationTokenSource.Token).GetAwaiter().GetResult();
                        }
                        catch (TaskCanceledException)
                        {
                        }
                    }
                }
                else
                {
                    //There is no sense is attempting to run without a configuration.
                    SleepForever("Unable to find device configuration.");
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine($"An exception occurred: {ex.Message}");
                Console.WriteLine(ex.ToString());
            }
            finally
            {
                Console.WriteLine("Bootstrap exiting.");
            }
        }
示例#3
0
        public void Initialize()
        {
            DeviceEventReceived  = OnDeviceEventReceived;
            ComPortEventReceived = OnComPortEventReceived;

            SerialPortMonitor.ComportEventOccured += OnComPortEventReceived;
            SerialPortMonitor.StartMonitoring();

            StateActionRules = new StateActionRules();

            DeviceConfigurationProvider.InitializeConfiguration();
            Configuration = DeviceConfigurationProvider.GetAppConfig();
            //LoggingClient = LoggingServiceClientProvider.GetLoggingServiceClient();
            //Connector = ListenerConnectorProvider.GetConnector(DeviceConfigurationProvider.GetConfiguration());

            stateActionController = DeviceStateActionControllerProvider.GetStateActionController(this);

            InitializeConnectorEvents();
        }