public UnsureNetworkForm() { InitializeComponent(); NodeSavingReading reader = new NodeSavingReading(); net = new NeuralNet(7, 7, ANNfilename, KFoldFilename); inputTrainingData = reader.GetStoredDataFromFile(Globals.inputDataStorage); outputTrainingData = reader.GetStoredDataFromFile(Globals.outputDataStorage); //inputTrainingData = new List<double[]>(); //outputTrainingData = new List<double[]>(); controls = new PatsControlScheme(); controls.Initialize(); controls.timeNeededForChange = 7000; serial = new SerialReader(); serial.Read(); UnityCommunicationHub.InitializeUnityCommunication(); UnityCommunicationHub.TwoWayTransmission(); indexList = Globals.GetBasicValues(); reverseIndexList = Globals.GetBasicValuesReversed(); setPointList = Globals.GetBasicPositions(); foreach (KeyValuePair <string, int> position in indexList) { DefaultPositionsBox.Items.Add(position.Key); } }
public NeuralNetForm() { InitializeComponent(); NodeSavingReading reader = new NodeSavingReading(); net = new NeuralNet(8, 7, ANNfilename, KFoldFilename); inputTrainingData = reader.GetStoredDataFromFile(Globals.inputDataStorage); outputTrainingData = reader.GetStoredDataFromFile(Globals.outputDataStorage); //inputTrainingData = new List<double[]>(); //outputTrainingData = new List<double[]>(); serial = new SerialReader(); serial.Read(); UnityCommunicationHub.InitializeUnityCommunication(); UnityCommunicationHub.TwoWayTransmission(); indexList = Globals.GetBasicValues(); setPointList = Globals.GetBasicPositions(); foreach (KeyValuePair <string, int> position in indexList) { DefaultPositionsBox.Items.Add(position.Key); } }
public ContinuousNeuralNetForm() { InitializeComponent(); net = new NeuralNet(8, 7, ANNfilename, KFoldFilename); inputTrainingData = new List <double[]>(); outputTrainingData = new List <double[]>(); if (inputTrainingData.Count > expirationTimer) { inputTrainingData.RemoveAt(0); outputTrainingData.RemoveAt(0); } serial = new SerialReader(); serial.Read(); UnityCommunicationHub.InitializeUnityCommunication(); UnityCommunicationHub.TwoWayTransmission(); Random rand = new Random(23); setPointList = Globals.GetBasicPositions(); var firstPoint = setPointList[3]; Globals.A1DesiredPosition = firstPoint.A1Position; Globals.A2DesiredPosition = firstPoint.A2Position; Globals.A3DesiredPosition = firstPoint.A3Position; Globals.B1DesiredPosition = firstPoint.B1Position; Globals.B2DesiredPosition = firstPoint.B2Position; Globals.B3DesiredPosition = firstPoint.B3Position; Globals.C1DesiredPosition = firstPoint.C1Position; Globals.C2DesiredPosition = firstPoint.C2Position; Globals.C3DesiredPosition = firstPoint.C3Position; Globals.D1DesiredPosition = firstPoint.D1Position; Globals.D2DesiredPosition = firstPoint.D2Position; Globals.D3DesiredPosition = firstPoint.D3Position; Globals.T1DesiredPosition = firstPoint.T1Position; Globals.T2DesiredPosition = firstPoint.T2Position; //Globals.T1DesiredPosition = (float)rand.Next(0, 90); //Globals.T2DesiredPosition = (float)rand.Next(0, 90); //Globals.A1DesiredPosition = (float)rand.Next(0, 90); //Globals.A2DesiredPosition = (float)rand.Next(0, 90); //Globals.A3DesiredPosition = (float)rand.Next(0, 90); //Globals.B1DesiredPosition = (float)rand.Next(0, 90); //Globals.B2DesiredPosition = (float)rand.Next(0, 90); //Globals.B3DesiredPosition = (float)rand.Next(0, 90); //Globals.C1DesiredPosition = (float)rand.Next(0, 90); //Globals.C2DesiredPosition = (float)rand.Next(0, 90); //Globals.C3DesiredPosition = (float)rand.Next(0, 90); //Globals.D1DesiredPosition = (float)rand.Next(0, 90); //Globals.D2DesiredPosition = (float)rand.Next(0, 90); //Globals.D3DesiredPosition = (float)rand.Next(0, 90); lastSetPoint = firstPoint; UnityCommunicationHub.WriteData(true); }
private void button2_Click(object sender, EventArgs e) { //Starts reading information from serial serialReader.Read(); }
private void beginControllingHandButton_Click(object sender, EventArgs e) { int desiredMillisecondDelay = controls.timeNeededForChange; int arraySize = (desiredMillisecondDelay / 1000) * rate; reader.Read(); rate = reader.getRate(); double lowConcentration = 0; double highConcentration = 0; //first get threshholds bool done = false; while (!done) { int reads = 0; decimal allReads = 0; MessageBox.Show("First try to let your mind wander until the next popup appears. Hit OK when ready.", string.Empty, MessageBoxButtons.OK); timer.Start(); while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime) { decimal currentIn = (decimal)Math.Abs(reader.GetData()[Globals.inputNode]); allReads += currentIn; reads++; currentAverageBox.Text = (allReads / reads).ToString(); currentInputBox.Text = currentIn.ToString(); } timer.Reset(); lowConcentration = (double)(allReads / reads); midpointTextBox.Text = lowConcentration.ToString(); Console.WriteLine("Low concentration was: " + lowConcentration); reads = 0; allReads = 0; MessageBox.Show("Next try to focus as hard as possible something. Hit OK when ready.", string.Empty, MessageBoxButtons.OK); timer.Start(); while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime) { decimal currentIn = (decimal)Math.Abs(reader.GetData()[Globals.inputNode]); allReads += currentIn; reads++; currentAverageBox.Text = (allReads / reads).ToString(); currentInputBox.Text = currentIn.ToString(); } timer.Reset(); highConcentration = (double)(allReads / reads); configuredMidPoint = ((highConcentration + lowConcentration) / 2); midpointTextBox.Text = configuredMidPoint.ToString(); Console.WriteLine("High concentration was: " + highConcentration); if (highConcentration > lowConcentration) { done = true; } } MessageBox.Show("Ready to control hand. Press OK when ready.", string.Empty, MessageBoxButtons.OK); }
private void FocusButton_Click(object sender, EventArgs e) { int desiredMillisecondDelay = controls.timeNeededForChange; int arraySize = (desiredMillisecondDelay / 1000) * rate; serial.Read(); rate = serial.getRate(); double lowConcentration = 0; double highConcentration = 0; //first get threshholds bool done = false; while (!done) { int reads = 0; decimal allReads = 0; MessageBox.Show("First try to let your mind wander until the next popup appears. Hit OK when ready.", string.Empty, MessageBoxButtons.OK); timer.Start(); while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime) { decimal currentIn = (decimal)Math.Abs(serial.GetData()[Globals.inputNode]); allReads += currentIn; reads++; } timer.Reset(); lowConcentration = (double)(allReads / reads); Console.WriteLine("Low concentration was: " + lowConcentration); reads = 0; allReads = 0; MessageBox.Show("Next try to focus as hard as possible something. Hit OK when ready.", string.Empty, MessageBoxButtons.OK); timer.Start(); while (timer.ElapsedMilliseconds < Globals.threshholdAquisitionTime) { decimal currentIn = (decimal)Math.Abs(serial.GetData()[Globals.inputNode]); allReads += currentIn; reads++; } timer.Reset(); highConcentration = (double)(allReads / reads); Console.WriteLine("High concentration was: " + highConcentration); if (highConcentration > lowConcentration) { done = true; } } double differenceInConcentrations = highConcentration - lowConcentration; double deltaBetweenThreshholds = differenceInConcentrations / 2; //make ranges for this run ranges = new List <Threshhold>(2); //make sure all reads work for it ranges.Add(new Threshhold(Double.MinValue, lowConcentration + (deltaBetweenThreshholds))); ranges.Add(new Threshhold(lowConcentration + (deltaBetweenThreshholds), Double.MaxValue)); MessageBox.Show("Ready to control hand. Press OK when ready.", string.Empty, MessageBoxButtons.OK); }