修改好速度档位不能正常切换的问题。
This commit is contained in:
@@ -3962,3 +3962,201 @@ Init:Open device succeed .
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Destruct Cso7_Proto.
|
||||
|
||||
Construct Cso7_Proto.
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
_start_machine
|
||||
Exit: Exit_SO7Usb
|
||||
|
||||
Init:Open device succeed .
|
||||
|
||||
@@ -15,13 +15,13 @@ SPEED_BASE_X1=20
|
||||
SPEED_MAX_X1=20
|
||||
SPEED_START_X1=20
|
||||
SPEED_FRESH_X1=8
|
||||
SPEED_SLOW_X1=3.299
|
||||
SPEED_SLOW_X1=2.000
|
||||
;
|
||||
SPEED_BASE_X2=16
|
||||
SPEED_MAX_X2=10
|
||||
SPEED_START_X2=12
|
||||
SPEED_FRESH_X2=10
|
||||
SPEED_SLOW_X2=2.000
|
||||
SPEED_SLOW_X2=1.000
|
||||
;
|
||||
SPEED_BASE_X3=2
|
||||
SPEED_MAX_X3=0
|
||||
|
||||
@@ -443,13 +443,8 @@ void CSO7_UtilDlg::OnBnClickedButtonStartSo7machine()
|
||||
|
||||
//=====================================================================
|
||||
void CSO7_UtilDlg::OnBnClickedButtonStopSo7machine()
|
||||
{
|
||||
|
||||
if(XBoxPlayer->IsConnected())
|
||||
{
|
||||
XBoxPlayer->XBoxControllerExit();
|
||||
}
|
||||
|
||||
{
|
||||
XBoxPlayer->XBoxControllerExit();
|
||||
CString csPath;
|
||||
m_pSO7_Proto->GetAppPath(csPath);
|
||||
m_pSO7_Proto->Save_SevenOcean_Inifile(csPath+_T("\\Utility_Config.ini"));
|
||||
|
||||
@@ -173,11 +173,11 @@ void CSo7_Option::OnBnClickedOk()
|
||||
{
|
||||
XBoxPlayer = new CXBOXController(1);
|
||||
}
|
||||
|
||||
|
||||
|
||||
CSO7_UtilDlg* pSO7_UtilDlg=new CSO7_UtilDlg();
|
||||
pSO7_UtilDlg->DoModal();
|
||||
delete pSO7_UtilDlg;
|
||||
|
||||
if (XBoxPlayer)
|
||||
{
|
||||
delete XBoxPlayer;
|
||||
|
||||
@@ -4,10 +4,10 @@
|
||||
#include "So7_XBoxController.h"
|
||||
|
||||
#define M_PI 3.14159265358979323846
|
||||
const double XBOX_X_ANGLE=(M_PI / 180.0 * 10.0);
|
||||
const double XBOX_Y_ANGLE=(M_PI / 180.0 * 80.0);
|
||||
const double XBOX_XY_ANGLE_BEGIN=(M_PI / 180.0 * 35.0);
|
||||
const double XBOX_XY_ANGLE_END=(M_PI / 180.0 * 55.0);
|
||||
const double XBOX_X_ANGLE=(M_PI / 180.0 * 18.0);
|
||||
const double XBOX_Y_ANGLE=(M_PI / 180.0 * 72.0);
|
||||
const double XBOX_XY_ANGLE_BEGIN=(M_PI / 180.0 * 20.0);
|
||||
const double XBOX_XY_ANGLE_END=(M_PI / 180.0 * 70.0);
|
||||
|
||||
extern CSO7_Proto* m_pSO7_Proto;
|
||||
|
||||
@@ -15,21 +15,19 @@ HANDLE CXBOXController::XBoxhThread = NULL;
|
||||
HANDLE CXBOXController::XBoxThreadMutex = NULL;
|
||||
HANDLE CXBOXController::XBoxhTriggerEvent;
|
||||
int CXBOXController::XBoxThreadState = XBTHREAD_PAUSED;
|
||||
bool CXBOXController::XYWAITSTOP = false;
|
||||
bool CXBOXController::ZWAITSTOP = false;
|
||||
|
||||
static short LX = 0, LY = 0, RX = 0, RY = 0;
|
||||
static WORD wBtns = 0;
|
||||
static BYTE TopLightValue = 0;
|
||||
static BYTE BottomLightValue = 0;
|
||||
static int TopLightBtnDown = 0;
|
||||
static int BottomLightBtnDown = 0;
|
||||
static char MoveSpeedGear[3]={0};
|
||||
static short LX(0), LY(0), RX(0), RY(0);
|
||||
static WORD wBtns(0);
|
||||
static BYTE TopLightValue(0);
|
||||
static BYTE BottomLightValue(0);
|
||||
static int TopLightBtnDown(0);
|
||||
static int BottomLightBtnDown(0);
|
||||
static INT m_MoveXYZType(0);
|
||||
static INT m_MoveSpeedGear[3]={0};
|
||||
|
||||
CXBOXController::CXBOXController(int playerNumber)
|
||||
{
|
||||
m_ControllerNum = playerNumber - 1;
|
||||
m_IsConnected=false;
|
||||
}
|
||||
|
||||
CXBOXController::~CXBOXController()
|
||||
@@ -78,6 +76,7 @@ void CXBOXController::XBoxControllerExit(void)
|
||||
|
||||
bool CXBOXController::IsConnected()
|
||||
{
|
||||
m_IsConnected=false;
|
||||
ZeroMemory(&m_ControllerState, sizeof(XINPUT_STATE));
|
||||
DWORD Result = XInputGetState(m_ControllerNum, &m_ControllerState);
|
||||
if (Result == ERROR_SUCCESS)
|
||||
@@ -108,114 +107,184 @@ void CXBOXController::Vibrate(int leftVal, int rightVal)
|
||||
XInputSetState(m_ControllerNum, &Vibration);
|
||||
}
|
||||
|
||||
bool CXBOXController::MoveXYZ(int _EMoveType,INT* _SpeedGear)
|
||||
{
|
||||
bool rStatus(true);
|
||||
bool IsSameType(false);
|
||||
if (m_MoveXYZType==_EMoveType)
|
||||
{
|
||||
rStatus=false;
|
||||
IsSameType=true;
|
||||
}
|
||||
switch(_EMoveType)
|
||||
{
|
||||
case E_XBOX_STOPXYZ:
|
||||
{
|
||||
if (!IsSameType)
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
|
||||
}
|
||||
break;
|
||||
}
|
||||
case E_XBOX_MOVE_XL:
|
||||
case E_XBOX_MOVE_XR:
|
||||
{
|
||||
if (_SpeedGear[0]!=m_MoveSpeedGear[0])
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(static_cast<char>(_SpeedGear[0]));
|
||||
m_MoveSpeedGear[0]=_SpeedGear[0];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case E_XBOX_MOVE_YB:
|
||||
case E_XBOX_MOVE_YF:
|
||||
{
|
||||
if (_SpeedGear[1]!=m_MoveSpeedGear[1])
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Y(static_cast<char>(_SpeedGear[1]));
|
||||
m_MoveSpeedGear[1]=_SpeedGear[1];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case E_XBOX_MOVE_ZU:
|
||||
case E_XBOX_MOVE_ZD:
|
||||
{
|
||||
if (_SpeedGear[2]!=m_MoveSpeedGear[2])
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(static_cast<char>(_SpeedGear[2]));
|
||||
m_MoveSpeedGear[2]=_SpeedGear[2];
|
||||
}
|
||||
break;
|
||||
}
|
||||
case E_XBOX_MOVE_XLYB:
|
||||
case E_XBOX_MOVE_XLYF:
|
||||
case E_XBOX_MOVE_XRYB:
|
||||
case E_XBOX_MOVE_XRYF:
|
||||
{
|
||||
if ((_SpeedGear[0]!=m_MoveSpeedGear[0]) || (_SpeedGear[1]!=m_MoveSpeedGear[1]))
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(static_cast<char>(_SpeedGear[0]),static_cast<char>(_SpeedGear[1]));
|
||||
m_MoveSpeedGear[0]=_SpeedGear[0];
|
||||
m_MoveSpeedGear[1]=_SpeedGear[1];
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
m_MoveXYZType=_EMoveType;
|
||||
return rStatus;
|
||||
}
|
||||
|
||||
|
||||
unsigned __stdcall CXBOXController::g_XBox_Thread(LPVOID pThis)
|
||||
{
|
||||
CXBOXController* _This = (CXBOXController*)pThis;
|
||||
|
||||
bool bXYWAITSTOP(false);
|
||||
bool bZWAITSTOP(false);
|
||||
INT MoveSpeedGear[3]={0};
|
||||
|
||||
for (;;)
|
||||
{
|
||||
if(XBoxThreadState == XBTHREAD_EXIT)
|
||||
{
|
||||
ExitThread(0);
|
||||
}
|
||||
LX = _This->GetState().Gamepad.sThumbLX;
|
||||
LY = _This->GetState().Gamepad.sThumbLY;
|
||||
RX = _This->GetState().Gamepad.sThumbRX;
|
||||
RY = _This->GetState().Gamepad.sThumbRY;
|
||||
wBtns = _This->GetState().Gamepad.wButtons;
|
||||
|
||||
//TRACE2("[XBOX]LX:%d LY:%d\n",LX,LY);
|
||||
//TRACE2("[XBOX]RX:%d RY:%d\n",RX,RY);
|
||||
//TRACE2("[XBOX]LX:%d LY:%d\n",static_cast<int>(LX),static_cast<int>(LY));
|
||||
//TRACE2("[XBOX]RX:%d RY:%d\n",static_cast<int>(RX),static_cast<int>(RY));
|
||||
|
||||
//Z Direction
|
||||
if(LY>128 && abs(LX)<LY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[2]=static_cast<char>((LY - 128) / 8160 + 1);
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(MoveSpeedGear[2]);
|
||||
ZWAITSTOP = true;
|
||||
MoveSpeedGear[0]=0;
|
||||
MoveSpeedGear[1]=0;
|
||||
MoveSpeedGear[2]=static_cast<INT>((LY - 128) / 8160 + 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_ZU,MoveSpeedGear);
|
||||
bZWAITSTOP=true;
|
||||
}
|
||||
else if(LY<128 && abs(LX)<-LY/tan(XBOX_Y_ANGLE))
|
||||
else if(LY<-128 && abs(LX)<-LY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[2]=static_cast<char>((LY + 128) / 8160.25 - 1);
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(MoveSpeedGear[2]);
|
||||
ZWAITSTOP = true;
|
||||
MoveSpeedGear[0]=0;
|
||||
MoveSpeedGear[1]=0;
|
||||
MoveSpeedGear[2]=static_cast<INT>((LY + 128) / 8160.25 - 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_ZD,MoveSpeedGear);
|
||||
bZWAITSTOP=true;
|
||||
}
|
||||
else if(ZWAITSTOP)
|
||||
else if(bZWAITSTOP)
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
|
||||
ZWAITSTOP = false;
|
||||
_This->MoveXYZ(E_XBOX_STOPXYZ,MoveSpeedGear);
|
||||
bZWAITSTOP=false;
|
||||
}
|
||||
|
||||
//XY Direction
|
||||
if(RX<128 && abs(RY)<-RX*tan(XBOX_X_ANGLE))
|
||||
if(RX<-128 && abs(RY)<-RX*tan(XBOX_X_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[0]=3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(MoveSpeedGear[0]);
|
||||
XYWAITSTOP = true;
|
||||
}
|
||||
else if(RX<128 && RY>-RX*tan(XBOX_XY_ANGLE_BEGIN) && RY<-RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[1]=static_cast<char>((RY - 128) / 8160 + 1);
|
||||
MoveSpeedGear[0]=3;
|
||||
MoveSpeedGear[1]=-3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(MoveSpeedGear[0],MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
}
|
||||
else if(RY>128 && abs(RX)<RY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[1]=static_cast<char>((RY - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=-3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Y(MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
}
|
||||
else if(RX>128 && RY>RX*tan(XBOX_XY_ANGLE_BEGIN) && RY<RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=static_cast<char>((RY - 128) / 8160 +1);
|
||||
|
||||
MoveSpeedGear[0]=-3;
|
||||
MoveSpeedGear[1]=-3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(MoveSpeedGear[0],MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[1]=0;
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XR,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RX>128 && abs(RY)<RX*tan(XBOX_X_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[0]=-3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(MoveSpeedGear[0]);
|
||||
XYWAITSTOP = true;
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=0;
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XL,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RY<-128 && abs(RX)<-RY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[0]=0;
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY + 128) / 8160.25 - 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_YF,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RY>128 && abs(RX)<RY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[0]=0;
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY - 128) / 8160 + 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_YB,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RX<-128 && RY>-RX*tan(XBOX_XY_ANGLE_BEGIN) && RY<-RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY - 128) / 8160 + 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XRYB,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RX<-128 && -RY>-RX*tan(XBOX_XY_ANGLE_BEGIN) && -RY<-RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY + 128) / 8160.25 - 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XRYF,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RX>128 && RY>RX*tan(XBOX_XY_ANGLE_BEGIN) && RY<RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY - 128) / 8160 +1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XLYB,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RX>128 && -RY>RX*tan(XBOX_XY_ANGLE_BEGIN) && -RY<RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=static_cast<char>((RY + 128) / 8160.25 - 1);
|
||||
|
||||
MoveSpeedGear[0]=-3;
|
||||
MoveSpeedGear[1]=3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(MoveSpeedGear[0],MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
MoveSpeedGear[0]=static_cast<INT>((RX - 128) / 8160 + 1);
|
||||
MoveSpeedGear[1]=static_cast<INT>((RY + 128) / 8160.25 - 1);
|
||||
_This->MoveXYZ(E_XBOX_MOVE_XLYF,MoveSpeedGear);
|
||||
bXYWAITSTOP=true;
|
||||
}
|
||||
else if(RY<128 && abs(RX)<-RY/tan(XBOX_Y_ANGLE))
|
||||
{
|
||||
MoveSpeedGear[1]=static_cast<char>((RY + 128) / 8160.25 - 1);
|
||||
|
||||
MoveSpeedGear[0]=3;
|
||||
MoveSpeedGear[1]=3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Y(MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
}
|
||||
else if(RX<128 && -RY>-RX*tan(XBOX_XY_ANGLE_BEGIN) && -RY<-RX*tan(XBOX_XY_ANGLE_END))
|
||||
{
|
||||
MoveSpeedGear[0]=static_cast<char>((RX + 128) / 8160.25 - 1);
|
||||
MoveSpeedGear[1]=static_cast<char>((RY + 128) / 8160.25 - 1);
|
||||
|
||||
MoveSpeedGear[0]=3;
|
||||
MoveSpeedGear[1]=3;
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_XY(MoveSpeedGear[0],MoveSpeedGear[1]);
|
||||
XYWAITSTOP = true;
|
||||
}
|
||||
else if(XYWAITSTOP)
|
||||
else if(bXYWAITSTOP)
|
||||
{
|
||||
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
|
||||
XYWAITSTOP = false;
|
||||
_This->MoveXYZ(E_XBOX_STOPXYZ,MoveSpeedGear);
|
||||
bXYWAITSTOP=false;
|
||||
}
|
||||
|
||||
//TopLight
|
||||
@@ -474,13 +543,12 @@ unsigned __stdcall CXBOXController::g_XBox_Thread(LPVOID pThis)
|
||||
if(_This->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_BACK)
|
||||
***************************************************************/
|
||||
|
||||
if(XBoxThreadState == XBTHREAD_EXIT || _This->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_BACK)
|
||||
if(XBoxThreadState == XBTHREAD_EXIT)
|
||||
{
|
||||
break;
|
||||
ExitThread(0);
|
||||
}
|
||||
|
||||
Sleep(100);
|
||||
Sleep(200);
|
||||
};
|
||||
|
||||
XBoxThreadState = XBTHREAD_EXIT;
|
||||
ExitThread(0);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,6 +7,22 @@
|
||||
|
||||
#pragma comment(lib, "XInput.lib")
|
||||
|
||||
enum EXBOX_MOVEXYZ_TYPE
|
||||
{
|
||||
E_XBOX_STOPXYZ,
|
||||
E_XBOX_MOVE_XL,
|
||||
E_XBOX_MOVE_XR,
|
||||
E_XBOX_MOVE_YB,
|
||||
E_XBOX_MOVE_YF,
|
||||
E_XBOX_MOVE_ZU,
|
||||
E_XBOX_MOVE_ZD,
|
||||
E_XBOX_MOVE_XLYB,
|
||||
E_XBOX_MOVE_XLYF,
|
||||
E_XBOX_MOVE_XRYB,
|
||||
E_XBOX_MOVE_XRYF,
|
||||
|
||||
E_XBOX_MOVE_TOTAL=255
|
||||
};
|
||||
class CXBOXController
|
||||
{
|
||||
protected:
|
||||
@@ -14,12 +30,12 @@ protected:
|
||||
static HANDLE XBoxThreadMutex;
|
||||
static HANDLE XBoxhTriggerEvent;
|
||||
static int XBoxThreadState;
|
||||
static bool XYWAITSTOP;
|
||||
static bool ZWAITSTOP;
|
||||
|
||||
XINPUT_STATE m_ControllerState;
|
||||
int m_ControllerNum;
|
||||
bool m_IsConnected;
|
||||
|
||||
bool MoveXYZ(int _EMoveType,INT* _SpeedGear);
|
||||
public:
|
||||
CXBOXController(int playerNumber);
|
||||
~CXBOXController();
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user