private static void Hb04_Input(object sender, HB04InputEventArgs e) { var data = e.InputReport; x += (decimal)(data.Wheel * 10.0); Console.WriteLine(data.ToString()); ((Device)sender).Write(new OutputReport() { MachineX = 12, MachineY = 34, MachineZ = 56, WorkX = x, WorkY = 90, WorkZ = 123, FeedrateOverride = 100, SpindleSpeedOverride = 100, Feedrate = UInt16.MaxValue }); if (data.Wheel != 0) { switch (data.WheelMode) { case WheelMode.X: for (int i = 0; i < Math.Abs(data.Wheel); i++) { if (data.Wheel > 0) { SendKeys.SendWait("{RIGHT}"); } else { SendKeys.SendWait("{LEFT}"); } } break; case WheelMode.Y: for (int i = 0; i < Math.Abs(data.Wheel); i++) { if (data.Wheel > 0) { SendKeys.SendWait("{UP}"); } else { SendKeys.SendWait("{DOWN}"); } } break; case WheelMode.Z: for (int i = 0; i < Math.Abs(data.Wheel); i++) { if (data.Wheel > 0) { SendKeys.SendWait("{PGUP}"); } else { SendKeys.SendWait("{PGDN}"); } } break; } } switch (data.Button1) { case Button.StartPause: SendKeys.SendWait(" "); break; case Button.Step: SendKeys.SendWait("{ADD}"); break; case Button.MPG: SendKeys.SendWait("{SUBTRACT}"); break; } }
protected virtual void OnInput(HB04InputEventArgs e) { Input?.Invoke(this, e); }