修改好速度档位不能正常切换的问题。
This commit is contained in:
@@ -61,7 +61,7 @@ unsigned __stdcall CSO7_Proto::g_EP02_Thread(LPVOID pThis)
|
|||||||
}
|
}
|
||||||
case THREAD_RUNNING_STATE2:
|
case THREAD_RUNNING_STATE2:
|
||||||
{
|
{
|
||||||
//TRACE0("g_hSerialUsbThread processing _write_usb_data_only();\n");
|
//TRACE0("g_hSerDialUsbThread processing _write_usb_data_only();\n");
|
||||||
_This->_write_usb_data_only(EP_02_CMD_IDX);
|
_This->_write_usb_data_only(EP_02_CMD_IDX);
|
||||||
//TRACE0("g_hSerialUsbThread return from _write_usb_data_only();\n");
|
//TRACE0("g_hSerialUsbThread return from _write_usb_data_only();\n");
|
||||||
break;
|
break;
|
||||||
@@ -3463,7 +3463,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_X(char SpeedGear)
|
|||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEX;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEX;
|
||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
||||||
|
|
||||||
TRACE1("[MOVE_X]:%d\n",SpeedGear);
|
TRACE1("[MOVE_X]:%d\n",static_cast<int>(SpeedGear));
|
||||||
|
|
||||||
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
||||||
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
||||||
@@ -3484,7 +3484,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_Y(char SpeedGear)
|
|||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEY;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEY;
|
||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
||||||
|
|
||||||
TRACE1("[MOVE_Y]:%d\n",SpeedGear);
|
TRACE1("[MOVE_Y]:%d\n",static_cast<int>(SpeedGear));
|
||||||
|
|
||||||
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
||||||
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
||||||
@@ -3505,7 +3505,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_Z(char SpeedGear)
|
|||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEZ;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_MOVEZ;
|
||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+2) = SpeedGear;
|
||||||
|
|
||||||
TRACE1("[MOVE_Z]:%d\n",SpeedGear);
|
TRACE1("[MOVE_Z]:%d\n",static_cast<int>(SpeedGear));
|
||||||
|
|
||||||
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
ep_buff[EP_02_CMD_IDX]._size = 0x03;
|
||||||
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
ep_buff[EP_81_DATA_IDX]._size = 0x03;
|
||||||
@@ -3545,7 +3545,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_STOP_MOVE_XYZ()
|
|||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOPA;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+1) = CT_STOPA;
|
||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0x00;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=0x00;
|
||||||
|
|
||||||
TRACE("[STOP_XYZ]");
|
TRACE("[STOP_XYZ]\n");
|
||||||
|
|
||||||
ep_buff[EP_02_CMD_IDX]._size = 0x04;
|
ep_buff[EP_02_CMD_IDX]._size = 0x04;
|
||||||
ep_buff[EP_81_DATA_IDX]._size = 0x04;
|
ep_buff[EP_81_DATA_IDX]._size = 0x04;
|
||||||
@@ -4694,7 +4694,7 @@ SSI_STATUS_MOTION CSO7_Proto::_send_cmd_SO7_CMD_MOVE_XY(char SpeedGearX,char Spe
|
|||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=SpeedGearX;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+2)=SpeedGearX;
|
||||||
*(ep_buff[EP_02_CMD_IDX]._buffer+3)=SpeedGearY;
|
*(ep_buff[EP_02_CMD_IDX]._buffer+3)=SpeedGearY;
|
||||||
|
|
||||||
TRACE2("[MOVE_XY]:X %d;Y %d.\n",SpeedGearX,SpeedGearY);
|
TRACE2("[MOVE_XY]:X %d;Y %d.\n",static_cast<int>(SpeedGearX),static_cast<int>(SpeedGearY));
|
||||||
|
|
||||||
ep_buff[EP_02_CMD_IDX]._size = 0x04;
|
ep_buff[EP_02_CMD_IDX]._size = 0x04;
|
||||||
ep_buff[EP_81_DATA_IDX]._size = 0x45;
|
ep_buff[EP_81_DATA_IDX]._size = 0x45;
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ CTesaStarE::CTesaStarE(void)
|
|||||||
SerialComPort=1;
|
SerialComPort=1;
|
||||||
_bReading=FALSE;
|
_bReading=FALSE;
|
||||||
bEnComm=false;
|
bEnComm=false;
|
||||||
m_TesaStarEAngle[0]=(double)0.0;
|
|
||||||
m_TesaStarEAngle[1]=(double)0.0;
|
|
||||||
memset(m_RecvData,0,sizeof(m_RecvData));
|
memset(m_RecvData,0,sizeof(m_RecvData));
|
||||||
}
|
}
|
||||||
//==================================================================
|
//==================================================================
|
||||||
@@ -20,6 +18,9 @@ CTesaStarE::~CTesaStarE(void)
|
|||||||
BOOL CTesaStarE::Initialization(bool _bInitConfig)
|
BOOL CTesaStarE::Initialization(bool _bInitConfig)
|
||||||
{
|
{
|
||||||
BOOL status(FALSE);
|
BOOL status(FALSE);
|
||||||
|
|
||||||
|
m_TesaStarEAngle[0]=0.0;
|
||||||
|
m_TesaStarEAngle[1]=0.0;
|
||||||
if (_bInitConfig)
|
if (_bInitConfig)
|
||||||
{
|
{
|
||||||
LoadConfig();
|
LoadConfig();
|
||||||
|
|||||||
@@ -3962,3 +3962,201 @@ Init:Open device succeed .
|
|||||||
_start_machine
|
_start_machine
|
||||||
Exit: Exit_SO7Usb
|
Exit: Exit_SO7Usb
|
||||||
Destruct Cso7_Proto.
|
Destruct Cso7_Proto.
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
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
|
||||||
|
Destruct Cso7_Proto.
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
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
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
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
|
||||||
|
Destruct Cso7_Proto.
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Destruct Cso7_Proto.
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
Construct Cso7_Proto.
|
||||||
|
Init:Open device succeed .
|
||||||
|
_start_machine
|
||||||
|
Exit: Exit_SO7Usb
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
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
|
||||||
|
Destruct Cso7_Proto.
|
||||||
|
|||||||
@@ -15,13 +15,13 @@ SPEED_BASE_X1=20
|
|||||||
SPEED_MAX_X1=20
|
SPEED_MAX_X1=20
|
||||||
SPEED_START_X1=20
|
SPEED_START_X1=20
|
||||||
SPEED_FRESH_X1=8
|
SPEED_FRESH_X1=8
|
||||||
SPEED_SLOW_X1=3.299
|
SPEED_SLOW_X1=2.000
|
||||||
;
|
;
|
||||||
SPEED_BASE_X2=16
|
SPEED_BASE_X2=16
|
||||||
SPEED_MAX_X2=10
|
SPEED_MAX_X2=10
|
||||||
SPEED_START_X2=12
|
SPEED_START_X2=12
|
||||||
SPEED_FRESH_X2=10
|
SPEED_FRESH_X2=10
|
||||||
SPEED_SLOW_X2=2.000
|
SPEED_SLOW_X2=1.000
|
||||||
;
|
;
|
||||||
SPEED_BASE_X3=2
|
SPEED_BASE_X3=2
|
||||||
SPEED_MAX_X3=0
|
SPEED_MAX_X3=0
|
||||||
|
|||||||
@@ -444,12 +444,7 @@ void CSO7_UtilDlg::OnBnClickedButtonStartSo7machine()
|
|||||||
//=====================================================================
|
//=====================================================================
|
||||||
void CSO7_UtilDlg::OnBnClickedButtonStopSo7machine()
|
void CSO7_UtilDlg::OnBnClickedButtonStopSo7machine()
|
||||||
{
|
{
|
||||||
|
XBoxPlayer->XBoxControllerExit();
|
||||||
if(XBoxPlayer->IsConnected())
|
|
||||||
{
|
|
||||||
XBoxPlayer->XBoxControllerExit();
|
|
||||||
}
|
|
||||||
|
|
||||||
CString csPath;
|
CString csPath;
|
||||||
m_pSO7_Proto->GetAppPath(csPath);
|
m_pSO7_Proto->GetAppPath(csPath);
|
||||||
m_pSO7_Proto->Save_SevenOcean_Inifile(csPath+_T("\\Utility_Config.ini"));
|
m_pSO7_Proto->Save_SevenOcean_Inifile(csPath+_T("\\Utility_Config.ini"));
|
||||||
|
|||||||
@@ -174,10 +174,10 @@ void CSo7_Option::OnBnClickedOk()
|
|||||||
XBoxPlayer = new CXBOXController(1);
|
XBoxPlayer = new CXBOXController(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
CSO7_UtilDlg* pSO7_UtilDlg=new CSO7_UtilDlg();
|
CSO7_UtilDlg* pSO7_UtilDlg=new CSO7_UtilDlg();
|
||||||
pSO7_UtilDlg->DoModal();
|
pSO7_UtilDlg->DoModal();
|
||||||
delete pSO7_UtilDlg;
|
delete pSO7_UtilDlg;
|
||||||
|
|
||||||
if (XBoxPlayer)
|
if (XBoxPlayer)
|
||||||
{
|
{
|
||||||
delete XBoxPlayer;
|
delete XBoxPlayer;
|
||||||
|
|||||||
@@ -4,10 +4,10 @@
|
|||||||
#include "So7_XBoxController.h"
|
#include "So7_XBoxController.h"
|
||||||
|
|
||||||
#define M_PI 3.14159265358979323846
|
#define M_PI 3.14159265358979323846
|
||||||
const double XBOX_X_ANGLE=(M_PI / 180.0 * 10.0);
|
const double XBOX_X_ANGLE=(M_PI / 180.0 * 18.0);
|
||||||
const double XBOX_Y_ANGLE=(M_PI / 180.0 * 80.0);
|
const double XBOX_Y_ANGLE=(M_PI / 180.0 * 72.0);
|
||||||
const double XBOX_XY_ANGLE_BEGIN=(M_PI / 180.0 * 35.0);
|
const double XBOX_XY_ANGLE_BEGIN=(M_PI / 180.0 * 20.0);
|
||||||
const double XBOX_XY_ANGLE_END=(M_PI / 180.0 * 55.0);
|
const double XBOX_XY_ANGLE_END=(M_PI / 180.0 * 70.0);
|
||||||
|
|
||||||
extern CSO7_Proto* m_pSO7_Proto;
|
extern CSO7_Proto* m_pSO7_Proto;
|
||||||
|
|
||||||
@@ -15,21 +15,19 @@ HANDLE CXBOXController::XBoxhThread = NULL;
|
|||||||
HANDLE CXBOXController::XBoxThreadMutex = NULL;
|
HANDLE CXBOXController::XBoxThreadMutex = NULL;
|
||||||
HANDLE CXBOXController::XBoxhTriggerEvent;
|
HANDLE CXBOXController::XBoxhTriggerEvent;
|
||||||
int CXBOXController::XBoxThreadState = XBTHREAD_PAUSED;
|
int CXBOXController::XBoxThreadState = XBTHREAD_PAUSED;
|
||||||
bool CXBOXController::XYWAITSTOP = false;
|
|
||||||
bool CXBOXController::ZWAITSTOP = false;
|
|
||||||
|
|
||||||
static short LX = 0, LY = 0, RX = 0, RY = 0;
|
static short LX(0), LY(0), RX(0), RY(0);
|
||||||
static WORD wBtns = 0;
|
static WORD wBtns(0);
|
||||||
static BYTE TopLightValue = 0;
|
static BYTE TopLightValue(0);
|
||||||
static BYTE BottomLightValue = 0;
|
static BYTE BottomLightValue(0);
|
||||||
static int TopLightBtnDown = 0;
|
static int TopLightBtnDown(0);
|
||||||
static int BottomLightBtnDown = 0;
|
static int BottomLightBtnDown(0);
|
||||||
static char MoveSpeedGear[3]={0};
|
static INT m_MoveXYZType(0);
|
||||||
|
static INT m_MoveSpeedGear[3]={0};
|
||||||
|
|
||||||
CXBOXController::CXBOXController(int playerNumber)
|
CXBOXController::CXBOXController(int playerNumber)
|
||||||
{
|
{
|
||||||
m_ControllerNum = playerNumber - 1;
|
m_ControllerNum = playerNumber - 1;
|
||||||
m_IsConnected=false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
CXBOXController::~CXBOXController()
|
CXBOXController::~CXBOXController()
|
||||||
@@ -78,6 +76,7 @@ void CXBOXController::XBoxControllerExit(void)
|
|||||||
|
|
||||||
bool CXBOXController::IsConnected()
|
bool CXBOXController::IsConnected()
|
||||||
{
|
{
|
||||||
|
m_IsConnected=false;
|
||||||
ZeroMemory(&m_ControllerState, sizeof(XINPUT_STATE));
|
ZeroMemory(&m_ControllerState, sizeof(XINPUT_STATE));
|
||||||
DWORD Result = XInputGetState(m_ControllerNum, &m_ControllerState);
|
DWORD Result = XInputGetState(m_ControllerNum, &m_ControllerState);
|
||||||
if (Result == ERROR_SUCCESS)
|
if (Result == ERROR_SUCCESS)
|
||||||
@@ -108,114 +107,184 @@ void CXBOXController::Vibrate(int leftVal, int rightVal)
|
|||||||
XInputSetState(m_ControllerNum, &Vibration);
|
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)
|
unsigned __stdcall CXBOXController::g_XBox_Thread(LPVOID pThis)
|
||||||
{
|
{
|
||||||
CXBOXController* _This = (CXBOXController*)pThis;
|
CXBOXController* _This = (CXBOXController*)pThis;
|
||||||
|
|
||||||
|
bool bXYWAITSTOP(false);
|
||||||
|
bool bZWAITSTOP(false);
|
||||||
|
INT MoveSpeedGear[3]={0};
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
|
if(XBoxThreadState == XBTHREAD_EXIT)
|
||||||
|
{
|
||||||
|
ExitThread(0);
|
||||||
|
}
|
||||||
LX = _This->GetState().Gamepad.sThumbLX;
|
LX = _This->GetState().Gamepad.sThumbLX;
|
||||||
LY = _This->GetState().Gamepad.sThumbLY;
|
LY = _This->GetState().Gamepad.sThumbLY;
|
||||||
RX = _This->GetState().Gamepad.sThumbRX;
|
RX = _This->GetState().Gamepad.sThumbRX;
|
||||||
RY = _This->GetState().Gamepad.sThumbRY;
|
RY = _This->GetState().Gamepad.sThumbRY;
|
||||||
wBtns = _This->GetState().Gamepad.wButtons;
|
wBtns = _This->GetState().Gamepad.wButtons;
|
||||||
|
|
||||||
//TRACE2("[XBOX]LX:%d LY:%d\n",LX,LY);
|
//TRACE2("[XBOX]LX:%d LY:%d\n",static_cast<int>(LX),static_cast<int>(LY));
|
||||||
//TRACE2("[XBOX]RX:%d RY:%d\n",RX,RY);
|
//TRACE2("[XBOX]RX:%d RY:%d\n",static_cast<int>(RX),static_cast<int>(RY));
|
||||||
|
|
||||||
//Z Direction
|
//Z Direction
|
||||||
if(LY>128 && abs(LX)<LY/tan(XBOX_Y_ANGLE))
|
if(LY>128 && abs(LX)<LY/tan(XBOX_Y_ANGLE))
|
||||||
{
|
{
|
||||||
MoveSpeedGear[2]=static_cast<char>((LY - 128) / 8160 + 1);
|
MoveSpeedGear[0]=0;
|
||||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(MoveSpeedGear[2]);
|
MoveSpeedGear[1]=0;
|
||||||
ZWAITSTOP = true;
|
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);
|
MoveSpeedGear[0]=0;
|
||||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_Z(MoveSpeedGear[2]);
|
MoveSpeedGear[1]=0;
|
||||||
ZWAITSTOP = true;
|
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();
|
_This->MoveXYZ(E_XBOX_STOPXYZ,MoveSpeedGear);
|
||||||
ZWAITSTOP = false;
|
bZWAITSTOP=false;
|
||||||
}
|
}
|
||||||
|
|
||||||
//XY Direction
|
//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]=static_cast<INT>((RX + 128) / 8160.25 - 1);
|
||||||
MoveSpeedGear[0]=3;
|
MoveSpeedGear[1]=0;
|
||||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(MoveSpeedGear[0]);
|
_This->MoveXYZ(E_XBOX_MOVE_XR,MoveSpeedGear);
|
||||||
XYWAITSTOP = true;
|
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.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;
|
|
||||||
}
|
}
|
||||||
else if(RX>128 && abs(RY)<RX*tan(XBOX_X_ANGLE))
|
else if(RX>128 && abs(RY)<RX*tan(XBOX_X_ANGLE))
|
||||||
{
|
{
|
||||||
MoveSpeedGear[0]=static_cast<char>((RX - 128) / 8160 + 1);
|
MoveSpeedGear[0]=static_cast<INT>((RX - 128) / 8160 + 1);
|
||||||
MoveSpeedGear[0]=-3;
|
MoveSpeedGear[1]=0;
|
||||||
m_pSO7_Proto->_send_cmd_SO7_CMD_MOVE_X(MoveSpeedGear[0]);
|
_This->MoveXYZ(E_XBOX_MOVE_XL,MoveSpeedGear);
|
||||||
XYWAITSTOP = true;
|
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))
|
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[0]=static_cast<INT>((RX - 128) / 8160 + 1);
|
||||||
MoveSpeedGear[1]=static_cast<char>((RY + 128) / 8160.25 - 1);
|
MoveSpeedGear[1]=static_cast<INT>((RY + 128) / 8160.25 - 1);
|
||||||
|
_This->MoveXYZ(E_XBOX_MOVE_XLYF,MoveSpeedGear);
|
||||||
MoveSpeedGear[0]=-3;
|
bXYWAITSTOP=true;
|
||||||
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))
|
else if(bXYWAITSTOP)
|
||||||
{
|
{
|
||||||
MoveSpeedGear[1]=static_cast<char>((RY + 128) / 8160.25 - 1);
|
_This->MoveXYZ(E_XBOX_STOPXYZ,MoveSpeedGear);
|
||||||
|
bXYWAITSTOP=false;
|
||||||
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)
|
|
||||||
{
|
|
||||||
m_pSO7_Proto->_send_cmd_SO7_CMD_STOP_MOVE_XYZ();
|
|
||||||
XYWAITSTOP = false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//TopLight
|
//TopLight
|
||||||
@@ -474,13 +543,12 @@ unsigned __stdcall CXBOXController::g_XBox_Thread(LPVOID pThis)
|
|||||||
if(_This->GetState().Gamepad.wButtons & XINPUT_GAMEPAD_BACK)
|
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(200);
|
||||||
Sleep(100);
|
|
||||||
};
|
};
|
||||||
|
XBoxThreadState = XBTHREAD_EXIT;
|
||||||
ExitThread(0);
|
ExitThread(0);
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,22 @@
|
|||||||
|
|
||||||
#pragma comment(lib, "XInput.lib")
|
#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
|
class CXBOXController
|
||||||
{
|
{
|
||||||
protected:
|
protected:
|
||||||
@@ -14,12 +30,12 @@ protected:
|
|||||||
static HANDLE XBoxThreadMutex;
|
static HANDLE XBoxThreadMutex;
|
||||||
static HANDLE XBoxhTriggerEvent;
|
static HANDLE XBoxhTriggerEvent;
|
||||||
static int XBoxThreadState;
|
static int XBoxThreadState;
|
||||||
static bool XYWAITSTOP;
|
|
||||||
static bool ZWAITSTOP;
|
|
||||||
|
|
||||||
XINPUT_STATE m_ControllerState;
|
XINPUT_STATE m_ControllerState;
|
||||||
int m_ControllerNum;
|
int m_ControllerNum;
|
||||||
bool m_IsConnected;
|
bool m_IsConnected;
|
||||||
|
|
||||||
|
bool MoveXYZ(int _EMoveType,INT* _SpeedGear);
|
||||||
public:
|
public:
|
||||||
CXBOXController(int playerNumber);
|
CXBOXController(int playerNumber);
|
||||||
~CXBOXController();
|
~CXBOXController();
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user