public ConfigurationManager(NodeMapper nodeMapper, EdgeMapper edgeMapper, BoardConfiguration boardConfiguration,
                                    SerialConfiguration serialConfiguration, GpioConfiguration gpioConfiguration)
        {
            _nodeMapper = nodeMapper;
            _edgeMapper = edgeMapper;

            BoardConfiguration  = boardConfiguration;
            SerialConfiguration = serialConfiguration;
            GpioConfiguration   = gpioConfiguration;
        }
        private void btnStartConfiguration_Click(object sender, RoutedEventArgs e)
        {
            string profile = this.cbProfile.Text.Trim();

            SerialPreviousInformation portInformation     = cbCOMPorts.SelectedItem as SerialPreviousInformation;
            SerialConfiguration       serialConfiguration = new SerialConfiguration();

            serialConfiguration.ConfigBitsPerSecond = (int)cbBitsPerSecond.SelectedValue;
            serialConfiguration.ConfigDataBits      = (SerialConfiguration.EDataBits) this.cbDataBits.SelectedItem;
            serialConfiguration.ConfigParity        = (System.IO.Ports.Parity) this.cbParity.SelectedItem;
            serialConfiguration.ConfigStopBits      = (System.IO.Ports.StopBits) this.cbStopBits.SelectedItem;


            if (profile.Length > 0)
            {
                if (!this.settingsManager.CurrentSettings.Configurations.ContainsKey(profile))
                {
                    this.settingsManager.CurrentSettings.Configurations.Add(profile, serialConfiguration);
                }
                else
                {
                    this.settingsManager.CurrentSettings.Configurations[profile] = serialConfiguration;
                }
            }

            this.settingsManager.CurrentSettings.LastUsedPort       = portInformation.Port;
            this.settingsManager.CurrentSettings.DefaultPortSetting = profile;
            this.settingsManager.SaveToFile();

            TotalConfiguration configuration = new TotalConfiguration(portInformation.Port, serialConfiguration);

            ALDSerialPort serial = new ALDSerialPort(configuration);

            try
            {
                serial.OpenPort();

                WinContainer winContainer = new WinContainer(serial);

                this.Hide();
                winContainer.ShowDialog();
                this.Show();
            }
            catch
            {
                MessageBox.Show("Cannot open port.", "ERROR", MessageBoxButton.OK, MessageBoxImage.Error);
            }
        }
Esempio n. 3
0
        private static void ConfigureServices(IConfiguration configuration, IServiceCollection serviceCollection)
        {
            //Realiza a leitura das configurações para uso de porta Serial.
            ISerialConfiguration serialConfiguration = new SerialConfiguration();

            configuration.GetSection("SerialConnection").Bind(serialConfiguration);

            IElasticsearchConfiguration elasticConfiguration = new ElasticsearchConfiguration();

            configuration.GetSection("elasticSearch").Bind(elasticConfiguration);

            IDataAccess _dataAccess = DataAccessFactory.Create(elasticConfiguration, null);

            // DI
            serviceCollection.AddSingleton <IConfiguration>(configuration);
            serviceCollection.AddSingleton <ISerialConfiguration>(serialConfiguration);
            serviceCollection.AddSingleton <IElasticsearchConfiguration>(elasticConfiguration);
            serviceCollection.AddSingleton <IDataAccess>(_dataAccess);
            serviceCollection.AddSingleton <IScanner, Scanner>();
        }
Esempio n. 4
0
        public static async Task Main(string[] args)
        {
            if (args.Count().Equals(0))
            {
                Logger.Log("Error! Put serial port name in arguments ex.");
                Logger.Log("sudo dotnet GhostChess.Board.dll /dev/ttyUSB0");
                Logger.Log("./run.sh /dev/ttyUSB0");
                Environment.Exit(ERROR_BAD_ARGUMENTS);
            }

            Logger.Log("Configuring board...");
            var fieldSize          = 50;
            var boardZeroX         = 7;
            var boardZeroY         = 53;
            var sideFieldOffset    = 7.5;
            var boardConfiguration = new BoardConfiguration
            {
                LeftBoardZeroX    = boardZeroX,
                LeftBoardZeroY    = boardZeroY,
                FieldSizeX        = fieldSize,
                FieldSizeY        = fieldSize,
                SideFieldOffsetX  = sideFieldOffset,
                SideFieldOffsetY  = 0,
                CentralBoardZeroX = boardZeroX + 2 * fieldSize + sideFieldOffset,
                CentralBoardZeroY = boardZeroY,
                RightBoardZeroX   = (boardZeroX + 2 * fieldSize + sideFieldOffset) + 8 * fieldSize + sideFieldOffset,
                RightBoardZeroY   = boardZeroY
            };

            Logger.Log("Configuring serial port...");
            var serialConfiguration = new SerialConfiguration
            {
                BaudRate       = 115200,
                SerialPortName = args.First()
            };

            Logger.Log("Configuring GPIO...");
            var gpioConfiguration = new GpioConfiguration
            {
                Pin       = RaspberryPi.Enums.Pins.Gpio14,
                InputType = RaspberryPi.Enums.InputType.Output,
                State     = RaspberryPi.Enums.State.Low
            };

            Logger.Log("Initializing board...");
            var pathfinder           = new BreadthFirst();
            var nodeMapper           = new NodeMapper(boardConfiguration);
            var edgeMapper           = new EdgeMapper(boardConfiguration);
            var configurationManager = new ConfigurationManager(nodeMapper, edgeMapper, boardConfiguration, serialConfiguration, gpioConfiguration);

            var nodes  = configurationManager.MapBoard();
            var gpio   = configurationManager.InitializeGpio();
            var serial = configurationManager.InitializeSerialPort();

            Logger.Log("Configuring connection...");
            var controller = new Controller(gpio, serial);
            var connection = new HubConnectionBuilder()
                             .WithUrl("https://ghostchessweb.azurewebsites.net/chess?Password=P@ssw0rd&Board=true")
                             .Build();

            var gameHandler = new GameHandler(nodes, gpio, serial, controller, pathfinder, configurationManager, connection);

            Logger.Log("Starting game...");
            _ = Task.Factory.StartNew(controller.Run, TaskCreationOptions.LongRunning);
            _ = Task.Factory.StartNew(gameHandler.Run, TaskCreationOptions.LongRunning);

            await Task.Delay(-1);
        }