private static void Main(string[] args)
        {
            Log.Logger = new LoggerConfiguration()
                         .MinimumLevel.Debug()
                         .WriteTo.Console(outputTemplate:
                                          "[{Timestamp:yyyy-MM-dd HH:mm:ss.fff} {Level:u4}] {Message:lj}{NewLine}{Exception}")
                         .WriteTo.File("logs\\myapp.txt", rollingInterval: RollingInterval.Day, shared: true)
                         .CreateLogger();

            var        serialPortConfig = ConfigurationsUtils.GetDeviceSerialPortConfiguration("SickODValue");
            SerialPort serialPort       = new SerialPort()
            {
                PortName     = serialPortConfig["PortName"],
                BaudRate     = int.Parse(serialPortConfig["BaudRate"]),
                Parity       = (Parity)Enum.Parse(typeof(Parity), serialPortConfig["Parity"]),
                DataBits     = int.Parse(serialPortConfig["DataBits"]),
                StopBits     = (StopBits)Enum.Parse(typeof(StopBits), serialPortConfig["StopBits"]),
                Handshake    = (Handshake)Enum.Parse(typeof(Handshake), serialPortConfig["Handshake"]),
                ReadTimeout  = int.Parse(serialPortConfig["ReadTimeout"]),
                WriteTimeout = int.Parse(serialPortConfig["WriteTimeout"])
            };

            SickODController ODValue = new SickODController(serialPort);

            ODValue.Startup();
            ODValue.PingDevice();
            Log.Information($"Height : {ODValue.ReadHeight()}");
            ODValue.StartContinuousReadHeight();
            ODValue.StopContinuousReadHeight();
            Log.Information($"ReadHeight : {ODValue.ReadHeight()}");
            ODValue.StartContinuousQ2Output();
            ODValue.StopContinuousQ2Output();
            Log.Information($"Q2Status : {ODValue.Q2Status()}");
            Log.Information($"Q2HiStatus : {ODValue.Q2HiStatus()}");
            Log.Information($"Q2LoStatus : {ODValue.Q2LoStatus()}");
            ODValue.SetQ2Hi(12.5534);
            ODValue.SetQ2Lo(4.2214);
            ODValue.SetQ2ToDefault();
            Log.Information($"AveragingSpeedStatus : {ODValue.AveragingSpeedStatus()}");
            ODValue.SetAveragingSpeed(0);
            ODValue.SetAveragingSpeed(1);
            ODValue.SetAveragingSpeed(2);
            Log.Information($"MultifunctionalInputStatus : {ODValue.MultifunctionalInputStatus()}");
            ODValue.SetMFFunction(0);
            ODValue.SetMFFunction(1);
            ODValue.SetMFFunction(2);
            Log.Information($"AlarmStatus : {ODValue.AlarmStatus()}");
            ODValue.SetAlarmBehavior(0);
            ODValue.SetAlarmBehavior(1);
            ODValue.ResetSettingsToDefault();
            Log.Information($"BaudRateStatus : {ODValue.BaudRateStatus()}");
            ODValue.SetBaudRate("41000");
            ODValue.Shutdown();
            Console.ReadLine();
            //ISensorHelper ODValue = new ODValueHelper(args);
            //ODValue.OpenSerialPort();
        }
        static void Main(string[] args)
        {
            var changeQueue = new Queue <ChangeInfo>();
            var config      = ConfigurationsUtils.LoadConfigFile <WatcherConfigSection>(CONFIG_FILE_NAME);
            var dbConfig    = ConfigurationsUtils.LoadConfigFile <DbConfigSection>(DB_CONFIG_FILE_NAME);
            var watcherTask = Task.WhenAll(CreateWatcherTasks(config, changeQueue));

            var dbAdapter = new SqliteAdapter(dbConfig);

            var indexTask = Index(changeQueue, dbAdapter);

            Task.WhenAll(indexTask, watcherTask).GetAwaiter().GetResult();
        }
Beispiel #3
0
        static int Main(string[] args)
        {
            var defaultsConfig = ConfigurationsUtils.LoadConfigFile <DefaultsConfigSection>(DEFAULTS_CONFIG_FILE_NAME);

            var serviceProvider = new ServiceCollection()
                                  .AddScoped <IIndexer, ImportIndexer>()
                                  .AddScoped <IDbAdapter, SqliteAdapter>()
                                  .AddScoped <IRankedResults, RankedResults>()
                                  .AddScoped <ISearch, Search>()
                                  .AddScoped <IDisplayResults, TerminalDisplayResults>()
                                  .AddSingleton(ConfigurationsUtils.LoadConfigFile <DbConfigSection>(DB_CONFIG_FILE_NAME))
                                  .AddSingleton(defaultsConfig)
                                  .BuildServiceProvider();

            var app = new CommandLineApplication();

            app.Command("find", (command) =>
            {
                command.Description        = "search a file";
                var valuesOption           = command.Option("--v", "search for the exact value", CommandOptionType.SingleValue);
                var maxResultsOption       = command.Option("--m", "Max result count", CommandOptionType.SingleValue);
                var displayInTermialOption = command.Option("--t", "Dont open the result in file explorer, display in terminal", CommandOptionType.SingleValue);
                var explicitValueOption    = command.Option("--e", "Show only results with exact match", CommandOptionType.SingleValue);

                var t = command.Arguments;
                command.OnExecute(async() =>
                {
                    int resultsCount = defaultsConfig.DefaultResultCount;
                    if (maxResultsOption.HasValue())
                    {
                        if (maxResultsOption.Value() == "*")
                        {
                            resultsCount = -1;
                        }
                        else
                        {
                            resultsCount = int.Parse(maxResultsOption.Value());
                        }
                    }
                    var cmd = new Command
                    {
                        Type  = CommandType.Find,
                        Value = valuesOption.Value()
                    };

                    var findOptions = new FindOptions(explicitValueOption.Value(), resultsCount, displayInTermialOption.Value());

                    await Find(serviceProvider, cmd, findOptions);
                    return(0);
                });
            });

            app.Command("map", (command) =>
            {
                command.Description = "map a folder";
                var updateOption    = command.Option("--u", "update mapping info of a file", CommandOptionType.SingleValue);
                var newPathOption   = command.Option("--n", "map a new value to a folder or a file", CommandOptionType.SingleValue);
                var pathOption      = command.Option("--v", "map a file or folder and all of its sub folders", CommandOptionType.SingleValue);
                var mapAllOption    = command.Option("--a", "Map all the sub folders starting from the root path from the configuration", CommandOptionType.SingleValue);
                var overrideOption  = command.Option("--o", "override all mappings", CommandOptionType.SingleValue);
                var clearAllOption  = command.Option("--c", "clear all mappings", CommandOptionType.SingleValue);


                command.OnExecute(async() =>
                {
                    var dbAdapter = serviceProvider.GetService <IDbAdapter>();

                    if (clearAllOption.HasValue())
                    {
                        await dbAdapter.ClearMappings();
                    }
                    else if (!updateOption.HasValue())
                    {
                        string updatePath = pathOption.Value();
                        if (mapAllOption.HasValue() && bool.Parse(mapAllOption.Value()))
                        {
                            updatePath = serviceProvider.GetService <DefaultsConfigSection>().RootFolder;
                        }

                        bool overrideAll = overrideOption.HasValue() ? bool.Parse(overrideOption.Value()) : false;
                        System.Console.WriteLine($"mapping {updatePath}");

                        var toMap = new List <Index>();
                        if (File.GetAttributes(updatePath).HasFlag(FileAttributes.Directory))
                        {
                            IndexUtils.Map(toMap, updatePath);
                            System.Console.WriteLine(string.Join(",", toMap.Select(m => m.SearchKey)));
                            dbAdapter.SetIndexes(toMap, overrideAll);
                        }
                        else
                        {
                            toMap.Add(IndexUtils.CreateUpdateIndex(pathOption.Value().ToLower()));
                            dbAdapter.SetIndexes(toMap, overrideAll);
                        }
                        System.Console.WriteLine($"{toMap.Count} files mapped");
                    }
                    else
                    {
                        await dbAdapter.UpdateIndexes(IndexUtils.CreateUpdateIndex(pathOption.Value().ToLower(), newPathOption.Value().ToLower()));
                    }
                    return(0);
                });
            });

            return(app.Execute(args));
        }