public void AddTest() { Sequence seq = new Sequence () { Pin = new DPin () { Name = "Pin of Awesome", Number = 13, PlotColor = GUIHelper.ColorHelper.SystemColorToGdkColor (System.Drawing.Color.Yellow), State = DPinState.HIGH }, Name = "Sequence of Awesome", Repetitions = 3, }; seq.AddSequenceOperation (new SequenceOperation () { State = DPinState.HIGH, Duration = TimeSpan.FromSeconds (30) }); Assert.AreEqual (1, seq.Chain.Count); Assert.AreEqual (0, seq.Cycle); seq.Next (); Assert.AreEqual (1, seq.Cycle); seq.Next (); Assert.AreEqual (2, seq.Cycle); seq.Next (); Assert.AreEqual (3, seq.Cycle); seq.Reset (); Assert.AreEqual (0, seq.Cycle); }
/// <summary> /// Initializes a new instance of the <see cref="PrototypeBackend.Sequence"/> class. /// </summary> /// <param name="copy">Copy.</param> public Sequence(Sequence copy) : base() { Pin = new DPin (copy.Pin); Name = copy.Name; Chain = new List<SequenceOperation> (copy.Chain); Repetitions = copy.Repetitions; }
public void ConstructorTest() { Sequence seq = new Sequence (); Assert.AreEqual (new DPin (), seq.Pin); Assert.AreEqual ("", seq.Name); Assert.AreEqual (seq.Pin.PlotColor, seq.Color); Assert.AreEqual (0, seq.Chain.Count); Assert.AreEqual (0, seq.Repetitions); Assert.AreEqual (0, seq.Cycle); }
/// <summary> /// Initializes a new instance of the <see cref="SequenceConfigurationsDialog.SequenceConfiguration"/> class. /// </summary> /// <param name="pins">Pins.</param> /// <param name="groups">Groups.</param> /// <param name="seq">Seq.</param> /// <param name="RefPin">Reference pin.</param> /// <param name="parent">Parent.</param> public SeqConfigDialog(DPin[] pins, List<string> groups, Sequence seq = null, DPin RefPin = null, Gtk.Window parent = null) : base("Digital Sequences - Dialog", parent, Gtk.DialogFlags.Modal, new object[0]) { this.Build (); sbRadioBtnStopAfter.Adjustment.Upper = int.MaxValue; sbRadioBtnStopAfter.Adjustment.Lower = 0; DPins = pins; //no DPin no Sequence if (DPins.Length > 0) { for (int i = 0; i < DPins.Length; i++) { // cbPin.AppendText (string.Format ("{0}(D{1})", DPins [i].Name, DPins [i].Number)); cbPin.AppendText (DPins [i].DisplayNumber); } } SetupNodeView (); SetupOxyPlot (); if (seq != null) { PinSequence = seq; if (seq.Repetitions == -1) { rbRepeateContinously.Active = true; } else { rbStopAfter.Active = true; sbRadioBtnStopAfter.Sensitive = true; sbRadioBtnStopAfter.Value = seq.Repetitions; } buttonOk.Label = "Apply"; buttonOk.Image = new Image (Gtk.Stock.Apply, IconSize.Button); } else { pinSequence = new Sequence (); pinSequence.Repetitions = -1; } if (RefPin == null) { cbPin.Active = 0; } else { cbPin.Active = pins.ToList ().IndexOf (RefPin); } SetupGroups (groups); DisplaySequenceInfos (); BuildEvents (); }
/// <summary> /// Initializes a new instance of the <see cref="PrototypeBackend.SequencesUpdatedArgs"/> class. /// </summary> /// <param name="seqUpdateOperation">Seq update operation.</param> /// <param name="oldseq">The old sequence.</param> /// <param name="newseq">The new sequence.</param> public SequencesUpdatedArgs(UpdateOperation seqUpdateOperation, Sequence oldseq = null, Sequence newseq = null) { OldSeq = oldseq; NewSeq = newseq; UpdateOperation = seqUpdateOperation; }
/// <summary> /// Removes the sequence. /// </summary> /// <param name="index">Index.</param> public void RemoveSequence(Sequence index) { if (index != null) { if (OnSequencesUpdated != null) { OnSequencesUpdated.Invoke (this, new SequencesUpdatedArgs (UpdateOperation.Remove, index)); } Sequences.Remove (index); } }
/// <summary> /// Removes the sequence. /// </summary> /// <param name="index">Index.</param> public void RemoveSequence(int index) { if (index > -1) { var seq = new Sequence (); seq = Sequences [index]; Sequences.RemoveAt (index); if (OnSequencesUpdated != null) { OnSequencesUpdated.Invoke (this, new SequencesUpdatedArgs (UpdateOperation.Remove, seq)); } } }
/// <summary> /// Edits the sequence. /// </summary> /// <param name="index">Index.</param> /// <param name="seq">Seq.</param> public void EditSequence(int index, Sequence seq) { Sequences [index] = seq; if (OnSequencesUpdated != null) { OnSequencesUpdated.Invoke (this, new SequencesUpdatedArgs (UpdateOperation.Change, null, seq)); } }
public void SerializeSequence() { DPin TestPin = new DPin () { Number = 42, Name = "Testor the Destroyer" }; Sequence Seq = new Sequence () { Pin = TestPin, Chain = new System.Collections.Generic.List<SequenceOperation> () { new SequenceOperation () { Duration = TimeSpan.FromSeconds (42), State = DPinState.HIGH }, new SequenceOperation () { Duration = TimeSpan.FromSeconds (42), State = DPinState.LOW } }, Repetitions = -1 }; Formator.Serialize (MemStream, Seq); MemStream.Seek (0, SeekOrigin.Begin); Sequence SeqEvilClone = (Sequence)Formator.Deserialize (MemStream); Console.WriteLine (Seq.ToStringLong ()); Console.WriteLine (SeqEvilClone.ToStringLong ()); Assert.AreEqual (Seq, SeqEvilClone); }
protected void OnButton359Clicked (object sender, EventArgs e) { con.Configuration.ClearPins (); con.Configuration.ClearSequences (); OnBtnFillDigitalOutputsClicked (null, null); int i = 0; while (i < con.Configuration.Pins.Count) { var seq1 = new Sequence () { Pin = (DPin)con.Configuration.Pins [i], Repetitions = -1 }; var seq2 = new Sequence () { Pin = (DPin)con.Configuration.Pins [i + 1], Repetitions = -1 }; for (int j = 0; j < 1; j++) { seq1.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromMilliseconds (1000), State = DPinState.HIGH }); seq1.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromMilliseconds (1000), State = DPinState.LOW }); seq2.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromMilliseconds (1000), State = DPinState.LOW }); seq2.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromMilliseconds (1000), State = DPinState.HIGH }); } con.Configuration.AddSequence (seq1); con.Configuration.AddSequence (seq2); i += 2; } }
protected void OnBtnAlternateBlinkSetup2Clicked (object sender, EventArgs e) { con.Configuration.ClearPins (); con.Configuration.ClearSequences (); OnBtnFillDigitalOutputsClicked (null, null); int i = 0; while (i < con.Configuration.Pins.Count) { var seq = new Sequence () { Pin = (DPin)con.Configuration.Pins [i], Repetitions = 0, }; seq.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromSeconds (i / 100.0), State = DPinState.LOW }); for (int j = 0; j < 100; j++) { seq.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromSeconds (con.Configuration.Pins.Count / 100.0), State = DPinState.HIGH }); seq.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromSeconds (con.Configuration.Pins.Count / 100.0), State = DPinState.LOW }); } con.Configuration.AddSequence (seq); i += 1; } Console.WriteLine (); }
private void RunSequenceDialog (Sequence seq = null, DPin RefPin = null) { SeqConfigDialog dialog; if (seq != null) { dialog = new SeqConfigDialog ( con.Configuration.GetPinsWithoutSequence (), con.Configuration.SequenceGroups, new Sequence (seq), RefPin, this ); } else { dialog = new SeqConfigDialog ( con.Configuration.GetPinsWithoutSequence (), con.Configuration.SequenceGroups, null, RefPin, this ); } dialog.Response += (o, args) => { if (args.ResponseId == ResponseType.Apply) { if (seq == null) { con.Configuration.AddSequence (dialog.PinSequence); } else { con.Configuration.EditSequence (con.Configuration.Sequences.IndexOf (seq), dialog.PinSequence); } } }; dialog.Run (); dialog.Destroy (); }
protected void OnBtnDoubleBlinkClicked (object sender, EventArgs e) { if (ArduinoController.IsConnected) { con.Configuration.Sequences.Clear (); var sequence = new Sequence () { Pin = new DPin ("Dings", 3), Repetitions = 10 }; sequence.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromSeconds (1), State = DPinState.HIGH, }); sequence.AddSequenceOperation (new SequenceOperation { Duration = TimeSpan.FromSeconds (1), State = DPinState.LOW, }); con.Configuration.Sequences.Add (sequence); sequence = new Sequence () { Pin = new DPin ("Dings", 4), Repetitions = 10 }; sequence.AddSequenceOperation (new SequenceOperation () { Duration = TimeSpan.FromSeconds (1), State = DPinState.LOW, }); sequence.AddSequenceOperation (new SequenceOperation { Duration = TimeSpan.FromSeconds (1), State = DPinState.HIGH, }); con.Configuration.Sequences.Add (sequence); foreach (Sequence seq in con.Configuration.Sequences) { Console.WriteLine (seq.ToString ()); } con.Start (); } else { MessageDialog dialog = new MessageDialog (this, DialogFlags.Modal, MessageType.Error, ButtonsType.Ok, "Please connect first to a Arduino."); dialog.Run (); dialog.Destroy (); } }
public SequenceTreeNode(Sequence seq, int index = -1) { Index = index; Seq = seq; }
public DPinTreeNode(DPin pin, int index = -1, Sequence seq = null) { Sequence = seq; Index = index; Pin = pin; }
public void SetTest() { Sequence seq = new Sequence () { Pin = new DPin () { Name = "Pin of Awesome", Number = 13, PlotColor = new Gdk.Color (0, 255, 255), State = DPinState.HIGH }, Name = "Sequence of Awesome", Repetitions = 3, }; Assert.AreNotEqual (null, seq.Pin); Assert.AreEqual ("Sequence of Awesome", seq.Name); Assert.AreEqual (0, seq.Chain.Count); Assert.AreEqual (3, seq.Repetitions); Assert.AreEqual (0, seq.Cycle); }
/// <summary> /// Adds the sequence. /// </summary> /// <param name="sequence">Sequence</param> public void AddSequence(Sequence sequence) { if (!Sequences.Contains (sequence)) { Sequences.Add (sequence); if (OnSequencesUpdated != null) { OnSequencesUpdated.Invoke (this, new SequencesUpdatedArgs (UpdateOperation.Add, sequence)); } } }
public void GetCurrentStateTest() { Sequence seq = new Sequence () { Pin = new DPin () { Name = "Pin of Awesome", Number = 13, PlotColor = GUIHelper.ColorHelper.SystemColorToGdkColor (System.Drawing.Color.Yellow), State = DPinState.HIGH }, Name = "Sequence of Awesome", Repetitions = 3, }; seq.AddSequenceOperation (new SequenceOperation () { State = DPinState.HIGH, Duration = TimeSpan.FromMilliseconds (10) }); seq.AddSequenceOperation (new SequenceOperation () { State = DPinState.LOW, Duration = TimeSpan.FromMilliseconds (10) }); Assert.AreEqual (2, seq.Chain.Count); Assert.AreEqual (0, seq.Chain [0].Moment.TotalMilliseconds); Assert.AreEqual (10, seq.Chain [1].Moment.TotalMilliseconds); Assert.AreEqual (DPinState.HIGH, seq.GetCurrentState (9)); Assert.AreEqual (DPinState.LOW, seq.GetCurrentState (10)); Assert.AreEqual (DPinState.LOW, seq.GetCurrentState (19)); Assert.AreEqual (DPinState.HIGH, seq.GetCurrentState (20)); Assert.AreEqual (DPinState.HIGH, seq.GetCurrentState (29)); Assert.AreEqual (DPinState.LOW, seq.GetCurrentState (30)); Assert.AreEqual (DPinState.LOW, seq.GetCurrentState (60)); Assert.AreEqual (DPinState.LOW, seq.GetCurrentState (61)); seq.Reset (); }
/// <summary> /// Clones a sequence. /// </summary> /// <param name="seq">Seq.</param> public void CloneSequence(Sequence seq) { if (GetPinsWithoutSequence ().Length == 0 && AvailableDigitalPins.Length > 0) { ClonePin (seq.Pin); } else if (GetPinsWithoutSequence ().Length == 0 && AvailableDigitalPins.Length == 0) { return; } Sequence copy = new Sequence (seq); copy.Pin = GetPinsWithoutSequence () [0]; AddSequence (copy); }