public Servos() { m_Servos = new Servo[8]; for (int servoIndex = 0; servoIndex < Servos.c_ServosCount; servoIndex++) { m_Servos[servoIndex] = new Servo(servoIndex); } }
public static void ConfigureServosFromFile(string filePath, Servo[] servos) { using (StreamReader file = new StreamReader(filePath)) { for (int servoIndex = 0; servoIndex < Servos.c_ServosCount; servoIndex++) { InitializeServo(file, servos[servoIndex]); } } }
private static void WriteParameters(StreamWriter writer, Servo servo, int index) { writer.Write(index); writer.Write('\t'); writer.Write(servo.Name); writer.Write('\t'); writer.Write(servo.MinPosMSecs); writer.Write('\t'); writer.Write(servo.MaxPosMSecs); writer.Write('\t'); writer.Write(servo.Slope); writer.Write('\t'); writer.Write(servo.YIntercept); writer.WriteLine(); }
private static void InitializeServo(StreamReader file, Servo servo) { bool isEnabled = ParseBoolean(file.ReadLine()); bool isReverse = ParseBoolean(file.ReadLine()); file.ReadLine(); // Rate file.ReadLine(); // Don't know what this number means int limit1Ticks = Int32.Parse(file.ReadLine(), CultureInfo.InvariantCulture); int limit2Ticks = Int32.Parse(file.ReadLine(), CultureInfo.InvariantCulture); int limit1Degrees = Int32.Parse(file.ReadLine(), CultureInfo.InvariantCulture); int limit2Degrees = Int32.Parse(file.ReadLine(), CultureInfo.InvariantCulture); int minPosMSecs; int maxPosMSecs; int maxDegrees; int minDegrees; if (limit2Ticks > limit1Ticks) { minPosMSecs = MillisecsFromTicks(limit1Ticks); maxPosMSecs = MillisecsFromTicks(limit2Ticks); minDegrees = limit1Degrees; maxDegrees = limit2Degrees; } else { // inverse minPosMSecs = MillisecsFromTicks(limit2Ticks); maxPosMSecs = MillisecsFromTicks(limit1Ticks); minDegrees = limit2Degrees; maxDegrees = limit1Degrees; } double slope = (double)((maxPosMSecs - minPosMSecs)) / ((double)(maxDegrees - minDegrees)); double yIntercept = maxPosMSecs - slope * maxDegrees; servo.Initialize( isEnabled, minPosMSecs, maxPosMSecs, slope, yIntercept); }
private static void InitializeServo(StreamReader reader, Servo servo) { string line = reader.ReadLine(); string[] parts = line.Split('\t'); int index = Int32.Parse(parts[(int)ParamField.Index], CultureInfo.InvariantCulture); string name = parts[(int)ParamField.Name]; int minPosMilliSecs = Int32.Parse(parts[(int)ParamField.MinPosMilliSecs], CultureInfo.InvariantCulture); servo.MinPosMSecs = minPosMilliSecs; int maxPosMilliSecs = Int32.Parse(parts[(int)ParamField.MaxPosMilliSecs], CultureInfo.InvariantCulture); servo.MaxPosMSecs = maxPosMilliSecs; double slope = Double.Parse(parts[(int)ParamField.Slope], CultureInfo.InvariantCulture); servo.Slope = slope; double yIntercept = Double.Parse(parts[(int)ParamField.YIntercept], CultureInfo.InvariantCulture); servo.YIntercept = yIntercept; }