175 lines
4.8 KiB
C#
175 lines
4.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using AR;
|
|
using arDev;
|
|
|
|
namespace Project
|
|
{
|
|
public partial class FMain
|
|
{
|
|
|
|
private void Joystick_InputChanged(object sender, arDev.Joystick.JoystickRaw.InputChangedEventHandler e)
|
|
{
|
|
|
|
var keyName = e.input.ToString();
|
|
if (e.input == HidSharp.Reports.Usage.Button5) keyName = "L-TRIGGER";
|
|
else if (e.input == HidSharp.Reports.Usage.Button6) keyName = "R-TRIGGER";
|
|
else if (e.input == HidSharp.Reports.Usage.Button9) keyName = "SELECT";
|
|
else if (e.input == HidSharp.Reports.Usage.Button10) keyName = "START";
|
|
else if (e.input == HidSharp.Reports.Usage.Button4) keyName = "BUT-Y";
|
|
else if (e.input == HidSharp.Reports.Usage.Button1) keyName = "BUT-X";
|
|
|
|
PUB.log.Add("JOYSTICK", string.Format("[{0}] {1}->{2}", keyName, e.oldValue, e.newValue));
|
|
|
|
if (PUB.sm.Step != eSMStep.IDLE && PUB.sm.Step != eSMStep.ERROR && PUB.flag.get(eVarBool.FG_MOVE_PICKER) == false && PUB.sm.Step != eSMStep.WAITSTART) return;
|
|
|
|
if (e.input == HidSharp.Reports.Usage.Button4) //stop
|
|
{
|
|
if (e.newValue > 0)
|
|
{
|
|
PUB.log.Add("Joystick Click : Stop");
|
|
_BUTTON_STOP();
|
|
}
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.Button1) //reset
|
|
{
|
|
if (e.newValue > 0)
|
|
{
|
|
PUB.log.Add("Joystick Click : Reset");
|
|
_BUTTON_RESET();
|
|
}
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.Button9) //select button
|
|
{
|
|
if (e.newValue == 1)
|
|
{
|
|
PUB.Result.JoystickAxisGroup += 1;
|
|
if (PUB.Result.JoystickAxisGroup > 3) PUB.Result.JoystickAxisGroup = 0;
|
|
}
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.Button10) //start button
|
|
{
|
|
if (e.newValue == 1 && PUB.flag.get(eVarBool.FG_SCR_JOBSELECT) == false)
|
|
{
|
|
if (PUB.sm.Step >= eSMStep.IDLE)
|
|
{
|
|
PUB.log.AddI("START BUTTON");
|
|
this._BUTTON_START();
|
|
}
|
|
}
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.Button5) //ltrigger
|
|
{
|
|
AR.SETTING.Data.Enable_SpeedLimit = true;
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.Button6) //ltrigger
|
|
{
|
|
AR.SETTING.Data.Enable_SpeedLimit = false;
|
|
}
|
|
|
|
//트리거 L,R을 눌렀을때 홈 가능한 위치라면 홈을 진행한다
|
|
if (e.newValue > 0 && (e.input == HidSharp.Reports.Usage.Button5 || e.input == HidSharp.Reports.Usage.Button6))
|
|
{
|
|
//두개가 동시에 눌렷을때
|
|
if (PUB.joystick.Buttons[4] && PUB.joystick.Buttons[5])
|
|
{
|
|
if (PUB.flag.get(eVarBool.FG_INIT_MOTIO) == false) return;
|
|
if (PUB.sm.isRunning == true) return;
|
|
if (DIO.IsEmergencyOn() == true) return;
|
|
if (PUB.sm.Step == eSMStep.RUN) return;
|
|
|
|
PUB.log.AddAT("조이스틱으로 홈 초기화작업");
|
|
Func_sw_initialize();
|
|
}
|
|
}
|
|
|
|
//동작중만 아니면 작동하게한다.
|
|
if (PUB.sm.Step != eSMStep.RUN)
|
|
{
|
|
short axisH = 0;
|
|
short axisV = 1;
|
|
if (PUB.Result.JoystickAxisGroup == 1) //왼쪽뭉치
|
|
{
|
|
axisH = 2;
|
|
axisV = 3;
|
|
}
|
|
else if (PUB.Result.JoystickAxisGroup == 2) //오른쪽뭉치
|
|
{
|
|
axisH = 4;
|
|
axisV = 5;
|
|
}
|
|
else if (PUB.Result.JoystickAxisGroup == 3) //theta, picker-Z
|
|
{
|
|
axisH = 6;
|
|
axisV = 1;
|
|
}
|
|
|
|
//X축으로 이동하는것은 PX,
|
|
if (e.input == HidSharp.Reports.Usage.GenericDesktopX)
|
|
{
|
|
if (e.newValue == 0)
|
|
{
|
|
//좌
|
|
PUB.mot.JOG(axisH, arDev.MOT.MOTION_DIRECTION.Negative, 100, 500, false, false);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick");
|
|
}
|
|
else if (e.newValue == 127)
|
|
{
|
|
//멈춤
|
|
PUB.mot.MoveStop("Joystick", axisH);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, false, "joystick");
|
|
}
|
|
else if (e.newValue == 255)
|
|
{
|
|
//우
|
|
PUB.mot.JOG(axisH, arDev.MOT.MOTION_DIRECTION.Positive, 100, 500, false, false);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick");
|
|
}
|
|
}
|
|
else if (e.input == HidSharp.Reports.Usage.GenericDesktopY)
|
|
{
|
|
if (e.newValue == 0)
|
|
{
|
|
//상
|
|
PUB.mot.JOG(axisV, arDev.MOT.MOTION_DIRECTION.Negative, 100, 500, false, false);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick");
|
|
}
|
|
else if (e.newValue == 127)
|
|
{
|
|
//멈춤
|
|
PUB.mot.MoveStop("Joystick", axisV);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, false, "joystick");
|
|
}
|
|
else if (e.newValue == 255)
|
|
{
|
|
//하
|
|
PUB.mot.JOG(axisV, arDev.MOT.MOTION_DIRECTION.Positive, 100, 500, false, false);
|
|
PUB.flag.set(eVarBool.FG_JOYSTICK, true, "joystick");
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
private void Joystick_Disconnected(object sender, EventArgs e)
|
|
{
|
|
PUB.log.AddE("조이스틱 연결 종료");
|
|
}
|
|
|
|
private void Joystick_Connected(object sender, EventArgs e)
|
|
{
|
|
PUB.log.AddI("조이스틱 연결 완료");
|
|
}
|
|
|
|
private void Joystick_Changed(object sender, EventArgs e)
|
|
{
|
|
PUB.log.AddAT("조이스틱 감지");
|
|
}
|
|
|
|
}
|
|
}
|