From 98e334d4ad64dad9bda24086c09b85aa4b1b1a06 Mon Sep 17 00:00:00 2001 From: BlubbFish Date: Thu, 3 Dec 2015 13:56:49 +0000 Subject: [PATCH] bla --- .../Arduino/AbstractArduino.cs | 10 +++++-- AdvancedServo-simple/Arduino/MainArduino.cs | 29 +++++++++++-------- AdvancedServo-simple/Program.cs | 20 +++++++------ AdvancedServo-simple/Robots/GlassBot.cs | 7 ++--- AdvancedServo-simple/Robots/LaserBot.cs | 10 +++---- AdvancedServo-simple/Robots/PaintBot.cs | 28 +++++++++--------- 6 files changed, 58 insertions(+), 46 deletions(-) diff --git a/AdvancedServo-simple/Arduino/AbstractArduino.cs b/AdvancedServo-simple/Arduino/AbstractArduino.cs index 086843e..0e910e2 100644 --- a/AdvancedServo-simple/Arduino/AbstractArduino.cs +++ b/AdvancedServo-simple/Arduino/AbstractArduino.cs @@ -62,10 +62,14 @@ namespace ebbits.Arduino { internal void clearStack(char key) { LinkedList.Enumerator e = readStack.GetEnumerator(); - while(e.MoveNext()) { - if(e.Current.key == key) { - readStack.Remove(e.Current); + try { + while(e.MoveNext()) { + if(e.Current.key == key) { + readStack.Remove(e.Current); + } } + } catch(InvalidOperationException) { + return; } } } diff --git a/AdvancedServo-simple/Arduino/MainArduino.cs b/AdvancedServo-simple/Arduino/MainArduino.cs index 0cfc93e..8aaa018 100644 --- a/AdvancedServo-simple/Arduino/MainArduino.cs +++ b/AdvancedServo-simple/Arduino/MainArduino.cs @@ -29,8 +29,9 @@ namespace ebbits.Arduino { serialSend('b', 2, 1); //Bremse = an } - public void trainMove() { + public void trainMove(byte speed) { serialSend('b', 2, 0); //Bremse aus + serialSend('p', 2, speed); } internal void changeDir(byte dir) { @@ -77,7 +78,7 @@ namespace ebbits.Arduino { public bool findStart() { changeDir(0); if(this.whereRead() == 0) { - trainMove(); + trainMove(70); System.Threading.Thread.Sleep(3000); } if(this.whereRead() == 0) { @@ -95,35 +96,35 @@ namespace ebbits.Arduino { switch(this.whereRead()) { case 6: Logger.Info("Fahre von 6 nach 5"); - trainMove(); + trainMove(70); readStop('r',4); - trainMove(); + trainMove(70); readStop('r',5); break; case 4: Logger.Info("Fahre von 4 nach 5"); - trainMove(); + trainMove(70); readStop('r',5); break; case 3: Logger.Info("Fahre von 3 nach 5"); - trainMove(); + trainMove(70); readStop('r',2); - trainMove(); + trainMove(70); readStop('r',1); - trainMove(); + trainMove(70); readStop('r',5); break; case 2: Logger.Info("Fahre von 2 nach 5"); - trainMove(); + trainMove(70); readStop('r',1); - trainMove(); + trainMove(70); readStop('r',5); break; case 1: Logger.Info("Fahre von 1 nach 5"); - trainMove(); + trainMove(70); readStop('r',5); break; } @@ -132,6 +133,10 @@ namespace ebbits.Arduino { return (this.whereRead() == 5); } - + public bool trainSwitchIsOff() { + serialSend('s', 0, 0); + ArduinoInput a = base.getInputWait('s'); + return a.value == 0; + } } } diff --git a/AdvancedServo-simple/Program.cs b/AdvancedServo-simple/Program.cs index 2e805ec..2a7ea0b 100644 --- a/AdvancedServo-simple/Program.cs +++ b/AdvancedServo-simple/Program.cs @@ -53,44 +53,46 @@ namespace ebbits { continue; } } + while(a.trainSwitchIsOff()) { + Thread.Sleep(100); + } Logger.Message("Move from Start to Welding Pos"); - a.trainMove(); + a.trainMove(70); a.measureAndStop('r', 1); Logger.Message("Welding"); l.run(); - + Logger.Message("Move from Welding to Paint Pos"); - a.trainMove(); + a.trainMove(68); a.measureAndStop('r', 2); Logger.Message("Paint"); p.run(); Logger.Message("Move from Paint to Glas Pos"); - a.trainMove(); + a.trainMove(68); a.measureAndStop('r', 3); Logger.Message("Glas"); g.run(); Logger.Message("Move from Glas to Turn around Pos"); - a.trainMove(); - a.readStop('r',6); + a.trainMove(78); + a.measureAndStop('r',6); Logger.Message("Turn aroud and move from Turn around to Waiting Pos"); System.Threading.Thread.Sleep(500); a.changeDir(0); - a.trainMove(); + a.trainMove(90); a.readStop('r',4); Logger.Message("Move from Waiting Pos to Start Pos"); - a.trainMove(); + a.trainMove(90); a.readStop('r', 5); Logger.Info("Runde zuende!"); - Console.ReadLine(); } } } diff --git a/AdvancedServo-simple/Robots/GlassBot.cs b/AdvancedServo-simple/Robots/GlassBot.cs index 51a7a6a..c0dd513 100644 --- a/AdvancedServo-simple/Robots/GlassBot.cs +++ b/AdvancedServo-simple/Robots/GlassBot.cs @@ -25,15 +25,14 @@ namespace ebbits.Robots { setPosition(new int[] { -1, 13, -1, -1, -1 }, 300); setPosition(new int[] { -1, -1, 90, 100, 20 }, 200); - setPosition(new int[] { -1, -1, 82, 97, 25 }, 20); // Fine Settings + setPosition(new int[] { -1, -1, 80, 94, 26 }, 20); // Fine Settings System.Threading.Thread.Sleep(1000); setPosition(new int[] { -1, -1, 90, 90, 20 }, 20); // Fine Lift setPosition(new int[] { -1, -1, 103, 105, 80 }, 150); - setPosition(new int[] { -1, -1, -1, -1, 174 }, 300); - setPosition(new int[] { -1, 154, 118, 122, -1 }, 300); + setPosition(new int[] { -1, 154, 118, 122, 174 }, 300); setPosition(new int[] { -1, -1, 86, 102, 42 }, 300); - setPosition(new int[] { -1, -1, 81, 113, 48 }, 100); + setPosition(new int[] { -1, -1, 83, 113, 48 }, 100); setPosition(new int[] { -1, -1, -1, 117, -1 }, 20); setPosition(new int[] { 20, -1, 78, -1, -1 }, 150); setPosition(new int[] { -1, -1, 81, 111, -1 }, 20); diff --git a/AdvancedServo-simple/Robots/LaserBot.cs b/AdvancedServo-simple/Robots/LaserBot.cs index 769f56d..e4de21b 100644 --- a/AdvancedServo-simple/Robots/LaserBot.cs +++ b/AdvancedServo-simple/Robots/LaserBot.cs @@ -19,12 +19,12 @@ namespace ebbits.Robots { base.setStartPosition(new int[] {77, 175, 155, 84 }, 500); base.setPosition(new int[] { 77, 157, 134, 84 }, 400); - base.setPosition(new int[] { 83, 97, 116, 44 }, 200); + base.setPosition(new int[] { 83, 96, 114, 44 }, 200); Arduino.setLaser(MainArduino.ON); - base.setPosition(new int[] { 102, 90, 108, 42 }, 20); - base.setPosition(new int[] { 98, 79, 90, 48 }, 20); - base.setPosition(new int[] { 83, 82, 95, -1 }, 20); - base.setPosition(new int[] { 83, 97, 116, 44 }, 20); + base.setPosition(new int[] { 101, 91, 107, 45 }, 20); + base.setPosition(new int[] { 98, 78, 88, 49 }, 20); + base.setPosition(new int[] { 83, 82, 95, 46 }, 20); + base.setPosition(new int[] { 83, 96, 114, 44 }, 20); Arduino.setLaser(MainArduino.OFF); base.setPosition(new int[] { 77, 157, 134, 84 }, 400); base.setPosition(new int[] { 77, 175, 155, 84 }, 400); diff --git a/AdvancedServo-simple/Robots/PaintBot.cs b/AdvancedServo-simple/Robots/PaintBot.cs index 20bc623..3609eb1 100644 --- a/AdvancedServo-simple/Robots/PaintBot.cs +++ b/AdvancedServo-simple/Robots/PaintBot.cs @@ -25,25 +25,27 @@ namespace ebbits.Robots { setPosition(new int[] {-1, 71, 55, 110 }, 200); setPosition(new int[] {-1, 43, 42, 175 }, 200); Arduino.setColor(MainArduino.RED); - setPosition(new int[] {60, 33, 22, -1 }, 50); + setPosition(new int[] { 75, 37, 39, -1 }, 50); + setPosition(new int[] { 68, 39, 30, -1 }, 50); + setPosition(new int[] { 68, 39, 30, -1 }, 50); + setPosition(new int[] { 60, 32, 20, -1 }, 50); Arduino.setColor(MainArduino.OFF); setPosition(new int[] {-1, 63, 45, 150 }, 200); setPosition(new int[] {50, 68, 76, 132 }, 200); Arduino.setColor(MainArduino.WHITE); - setPosition(new int[] {-1, -1, -1, 160 }, 100); - setPosition(new int[] {60, -1, -1, 172 }, 100); - setPosition(new int[] {-1, -1, -1, 144 }, 100); + setPosition(new int[] {44, -1, -1, 153 }, 100); + setPosition(new int[] {60, -1, -1, 164 }, 100); + setPosition(new int[] {58, -1, -1, 138 }, 100); setPosition(new int[] {70, -1, -1, 150 }, 100); - setPosition(new int[] {-1, -1, -1, 175 }, 100); - setPosition(new int[] {80, -1, -1, -1 }, 100); - setPosition(new int[] {-1, -1, -1, 155 }, 100); - setPosition(new int[] {90, 74, 84, 148 }, 100); - setPosition(new int[] {-1, -1, -1, 175 }, 100); - setPosition(new int[] {100, -1, -1, 166 }, 100); - setPosition(new int[] {-1, -1, -1, 146 }, 100); + setPosition(new int[] {60, -1, -1, 170 }, 100); + setPosition(new int[] {75, -1, -1, 175 }, 100); + setPosition(new int[] {77, -1, -1, 155 }, 100); + setPosition(new int[] {83, -1, -1, -1 }, 100); + setPosition(new int[] {-1, 77, 88, 162 }, 100); Arduino.setColor(MainArduino.OFF); - setPosition(new int[] { -1, -1, 100, -1, -1 }, 200); - setPosition(new int[] { 0, 87, 175, 160, 92 }, 400); + setPosition(new int[] { -1, 132, -1, -1 }, 250); + setPosition(new int[] { 87, 153, 138, 92 }, 400); + setPosition(new int[] { 87, 175, 160, 92 }, 400); shutdownServo(); }