Example #1
0
        public void Configure(int nInputNeuron, int nHiddenNeuron, int nOutputNeuron, double learnRate, double momentum, double error, string inputDatasetFilePath, string outputDatasetFilePath, string serialPort)
        {
            _neuralNetwork = new NeuralNetwork();
            _neuralNetwork.NInputNeurons      = nInputNeuron;
            _neuralNetwork.NHiddenNeurons     = nHiddenNeuron;
            _neuralNetwork.NOutputNeurons     = nOutputNeuron;
            _neuralNetwork.AnnInputDimension  = 13; //TODO: Da aggiustare in base al file del dataset
            _neuralNetwork.AnnOutputDimension = 13; //TODO: Da aggiustare in base al file del dataset
            _neuralNetwork.LearnRate          = learnRate;
            _neuralNetwork.Momentum           = momentum;
            _neuralNetwork.Error = error;
            LoadDatasetInputOutput(inputDatasetFilePath, outputDatasetFilePath);
            _networkState = _neuralNetwork.CommitDataSet();

            //_serialManger = new SerialManger(serialPort);
            _socketManager = new SocketManager("192.168.4.1", 65535);
        }
Example #2
0
        private void Action()
        {
            if (NetworkState == NeuralNetwork.NetworkState.CONFIGURED)
            {
                _networkState = _neuralNetwork.TrainNetwork();
                if (NetworkState == NeuralNetwork.NetworkState.TRAINED)
                {
                    while (!_requestStop)
                    {
                        _tempSensorData = DequeueElementToSensorDataQueue();

                        if (_tempSensorData != null)
                        {
                            _neuralNetwork.InputToAnalize = new double[] { _normUtilPosition.normalize((int)_tempSensorData.ProximityDirection),
                                                                           _normUtilDistance.normalize((int)_tempSensorData.ProximityDistance),
                                                                           _normUtilLux.normalize((int)_tempSensorData.LuxIntensity) };

                            _processOutput = _neuralNetwork.ProcessInput();

                            //Effettuo la denormalizzazione degli elementi
                            _processOutput[0] = _normUtilPosition.denormalize(_processOutput[0]);
                            _processOutput[1] = _normUtilSpeed.denormalize(_processOutput[1]);
                            _processOutput[2] = _normUtilLux.denormalize(_processOutput[2]);


                            PrepareDataForSerialTrasmission(ref _processOutput);
                            Console.WriteLine(_processOutput[0] + " " + _processOutput[1] + " " + _processOutput[2]);
#if DEBUG
                            //Console.WriteLine(_processOutput[0] + " " + _processOutput[1] + " " + _processOutput[2]);
#endif
                            //_serialManger.EnqueueElementToRS232DataQueue(new RS232Data(_processOutput));

                            SpiderCommandAdapter.MenageSpiderCommand((byte)_processOutput[0], (byte)_processOutput[1], (byte)_processOutput[2], ref _socketManager);
                        }


                        Thread.Sleep(500);
                    }
                }
            }
        }