private void RandomPositionTimerOnTick(object sender, object o) { int?min = ViewUtility.GetInt(MinRandomTextBox); int?max = ViewUtility.GetInt(MaxRandomTextBox); if (!min.HasValue || !max.HasValue) { return; } int position = random.Next(min.Value, max.Value); NeedlePosition positionCommand = new NeedlePosition { Position = (uint)position, Direction = NeedlePosition.NeedleDirectionValue.DoNotPassZero }; App.FizViz.SendCommand(positionCommand); }
/// <summary> /// Do a simple conversion of current metric value to needle position, and update the FizViz accordingly /// </summary> /// <param name="value"></param> private void SimplePosition(float value) { value = Math.Max(value, MetricMinimum); value = Math.Min(value, MetricMaximum); uint needlePosition = (uint)((((value - MetricMinimum) / (MetricMaximum - MetricMinimum)) * (displayPositionMaximum - displayPositionMinimum)) + displayPositionMinimum); FizVizCommand positionCommand = new NeedlePosition { Direction = NeedlePosition.NeedleDirectionValue.DoNotPassZero, Position = needlePosition }; Debug.WriteLine("Set position to " + needlePosition); if (App.FizViz != null) { App.FizViz.SendCommand(positionCommand); } }
/**************************************************************** * UI Callbacks * ****************************************************************/ /// <summary> /// Generate and send a manual needle position command to FizViz /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void NeedlePositionButton_Click(object sender, RoutedEventArgs e) { ViewUtility.ResetControlBorders(ControlGrid); ushort?position = ViewUtility.GetUShort(NeedlePositionTextBox); if (!position.HasValue) { return; } NeedlePosition positionCommand = new NeedlePosition { Position = position.Value, Direction = (NeedlePosition.NeedleDirectionValue)NeedleDirectionComboBox.SelectedValue }; App.FizViz.SendCommand(positionCommand); }