public void AddHeadAnimationCombo(HeadComboAnimations anim, bool repeat = false, double scale = 0.2d) { if (anim != lastHeadAnimationCombo || lastHeadAnimationComboRepeat && !repeat || !lastHeadAnimationComboRepeat && (DateTime.Now - lastHeadAnimationComboStarted).TotalSeconds > 3.0d) { Console.WriteLine("AddHeadAnimationCombo('" + anim + "')"); StartHeadAnimationComboNow(anim, true, repeat, scale); } }
public void StartHeadAnimationCombo(HeadComboAnimations anim, bool repeat = false, double scale = 0.2d) { // we call StartHeadAnimationComboNow if: // - requested different animation // - stopping repeat of the same animation // - requesting the same animation after 3 seconds if (anim != lastHeadAnimationCombo || lastHeadAnimationComboRepeat && !repeat || !lastHeadAnimationComboRepeat && (DateTime.Now - lastHeadAnimationComboStarted).TotalSeconds > 3.0d) { Console.WriteLine("StartHeadAnimationCombo('" + anim + "')"); StartHeadAnimationComboNow(anim, false, repeat, scale); } }
private void StartHeadAnimationComboNow(HeadComboAnimations anim, bool add, bool repeat, double scale) { string animName = (add ? "+" : string.Empty) + anim.ToString(); animhead.ArduinoDeviceCommand cmd = new animhead.ArduinoDeviceCommand() { Command = animhead.AnimatedHeadCommands.SetAnimCombo, Args = animName, Scale = scale, doRepeat = repeat }; _animatedHeadCommandPort.Post(new animhead.SendArduinoDeviceCommand(cmd)); lastHeadAnimationComboStarted = DateTime.Now; lastHeadAnimationCombo = anim; lastHeadAnimationComboRepeat = repeat; }