private void GenerateExampleXmls_Click(object sender, RoutedEventArgs e) { // Generate example sequence file. Frame exampleFrame1 = new Frame("Example Frame 1"); Frame exampleFrame2 = new Frame("Example Frame 2"); exampleFrame1.AddServoPosition(new ServoPosition(0, 100)); exampleFrame1.AddServoPosition(new ServoPosition(1, 500)); exampleFrame1.timeToDestination = 1; exampleFrame2.AddServoPosition(new ServoPosition(0, 200)); exampleFrame2.AddServoPosition(new ServoPosition(1, 600)); exampleFrame2.timeToDestination = 0.5; Sequence exampleSequence1 = new Sequence("Example Sequence 1"); Sequence exampleSequence2 = new Sequence("Example Sequence 2"); exampleSequence1.AddFrame(exampleFrame1); exampleSequence1.AddFrame(exampleFrame2); exampleSequence2.AddFrame(exampleFrame1); exampleSequence2.AddFrame(exampleFrame2); SequenceList exampleSequenceList = new SequenceList(); exampleSequenceList.AddSequence(exampleSequence1); exampleSequenceList.AddSequence(exampleSequence2); exampleSequenceList.SaveToXml("ExampleSequenceFile.xml"); // Generate example servo configuration file. servoManager.GenerateExampleConfigFile("ExampleServoConfig.xml"); }
public void AddSequence(Sequence newSequence) { sequenceList.Add(newSequence); }
// Starts running the selected sequence in a new thread. Fails if another sequence // is already running. public void RunSequence(string sequenceName) { Sequence sequence = sequenceList.GetSequences().Find(x => x.name == sequenceName); if (sequence == null) { ErrorLogging.AddMessage(ErrorLogging.LoggingLevel.Error, "Sequence '" + sequenceName + "' not found."); return; } lock (sequenceLock) { if (sequenceIsRunning) { ErrorLogging.AddMessage(ErrorLogging.LoggingLevel.Warning, "RunSequence() failed to run sequence '" + sequenceName + "', another sequence is already running."); return; } else { sequenceIsRunning = true; } } runningSequence = sequence; Thread oThread = new Thread(new ThreadStart(RunSequenceThread)); // Start the thread oThread.Start(); }