// SensorFrame.cpp : 実装ファイル // #include "stdafx.h" #include "SensorFrame.h" #include "MessageBoxDLG.h" using namespace jbxl; using namespace jbxwl; // CSensorFrame IMPLEMENT_DYNCREATE(CSensorFrame, CExFrame) CSensorFrame::CSensorFrame() { thisApp = NULL; } CSensorFrame::~CSensorFrame() { DEBUG_ERR("DESTRUCTOR: CSensorFrame"); OnCalibrationStop(); } BEGIN_MESSAGE_MAP(CSensorFrame, CExFrame) ON_UPDATE_COMMAND_UI(ID_CALIB_START, &CSensorFrame::OnStartButtonUpdate) ON_UPDATE_COMMAND_UI(ID_CALIB_STOP, &CSensorFrame::OnStopButtonUpdate) ON_UPDATE_COMMAND_UI(ID_CALIB_NEXT, &CSensorFrame::OnNextButtonUpdate) ON_COMMAND(ID_CALIB_START, OnCalibrationStart) ON_COMMAND(ID_CALIB_STOP, OnCalibrationStop) ON_COMMAND(ID_CALIB_NEXT, OnCalibrationNext) ON_UPDATE_COMMAND_UI(ID_REC_START, &CSensorFrame::OnRecStartButtonUpdate) ON_UPDATE_COMMAND_UI(ID_REC_STOP, &CSensorFrame::OnRecStopButtonUpdate) ON_COMMAND(ID_REC_START, OnRecStart) ON_COMMAND(ID_REC_STOP, OnRecStop) ON_UPDATE_COMMAND_UI(ID_MOTOR_UP, &CSensorFrame::OnMotorUpButtonUpdate) ON_UPDATE_COMMAND_UI(ID_MOTOR_CENTER, &CSensorFrame::OnMotorCenterButtonUpdate) ON_UPDATE_COMMAND_UI(ID_MOTOR_DOWN, &CSensorFrame::OnMotorDownButtonUpdate) ON_COMMAND(ID_MOTOR_UP, OnMotorUp) ON_COMMAND(ID_MOTOR_CENTER, OnMotorCenter) ON_COMMAND(ID_MOTOR_DOWN, OnMotorDown) ON_WM_CREATE() END_MESSAGE_MAP() // CSensorFrame メッセージ ハンドラ int CSensorFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) { if (CExFrame::OnCreate(lpCreateStruct) == -1) return -1; //toolBar = new CExToolBar(this); toolBar = new CExToolBar(); if (!toolBar->CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP | CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC | WS_CLIPCHILDREN) || !toolBar->LoadToolBar(IDR_CALIB_TOOLBAR)) { TRACE0("Failed to create toolbar\n"); return -1; } return 0; } ///////////////////////////////////////////////////////////////////////////////////////// // // ToolBar Click // // // Start Calibration // void CSensorFrame::OnCalibrationStart() { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_STOPPED) { thisApp->updateMenu(); //thisApp->niDevice->clearJointsData(); thisApp->niDevice->clearAvatarDetected(); if (thisApp->niDevice->startDetection()) { if (thisApp->isLoggedIn) { thisApp->niNetwork->openSendSocket(); if (thisApp->appParam.netOutMode==NETandLOCAL) thisApp->sharedMem->setLocalAnimationIndex(); } } else { MessageBoxDLG(IDS_STR_ERROR, thisApp->niDevice->getErrorMessage(), MB_OK, this); OnCalibrationStop(); } } } void CSensorFrame::OnCalibrationStop() { OnRecStop(); if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC) { if (!thisApp->niDevice->stopDetection()) { // set NI_STATE_DETECT_STOPPED MessageBoxDLG(IDS_STR_ERROR, thisApp->niDevice->getErrorMessage(), MB_OK, this); } } thisApp->sharedMem->isTracking = FALSE; thisApp->sharedMem->clearLocalAnimationData(); if (thisApp->isLoggedIn) { if (thisApp->appParam.netOutMode==NETandLOCAL) thisApp->sharedMem->clearLocalAnimationIndex(); thisApp->niNetwork->closeSendSocket(); } thisApp->updateMenu(); } void CSensorFrame::OnCalibrationNext() { thisApp->niDevice->setDenyTrackingSearch(); thisApp->updateMenu(); } void CSensorFrame::OnMotorUp() { if (thisApp->niDevice->enableUSBDev) { thisApp->motorTilt += 2; if (thisApp->motorTilt>25) thisApp->motorTilt = 25; thisApp->niDevice->setTiltMotor(thisApp->motorTilt); } } void CSensorFrame::OnMotorCenter() { if (thisApp->niDevice->enableUSBDev) { thisApp->motorTilt = 0; thisApp->niDevice->setTiltMotor(thisApp->motorTilt); } } void CSensorFrame::OnMotorDown() { if (thisApp->niDevice->enableUSBDev) { thisApp->motorTilt -=2; if (thisApp->motorTilt<-25) thisApp->motorTilt = -25; thisApp->niDevice->setTiltMotor(thisApp->motorTilt); } } void CSensorFrame::OnRecStart() { if (!thisApp->dataSaving) { CString mesg; NiFileType sv_mode = thisApp->niDevice->appParam.saveDataMode; if (sv_mode==FileDataBVH) mesg.LoadString(IDS_STR_REC_MODE_BVH); else if (sv_mode==FileDataONI) mesg.LoadString(IDS_STR_REC_MODE_ONI); else if (sv_mode==FileDataJTXT) mesg.LoadString(IDS_STR_REC_MODE_ORG); else { MessageBoxDLG(IDS_STR_ERROR, _T("OnRecStart(): Unknown File Type"), MB_OK, this); return; } int ret = MessageBoxDLG(IDS_STR_CNFRM, mesg, MB_YESNO, this); if (ret==IDNO) return; // thisApp->dataSaving = thisApp->niDevice->startRecorde(); if (thisApp->dataSaving) { thisApp->savedData = FALSE; } else { MessageBoxDLG(IDS_STR_ERROR, thisApp->niDevice->getErrorMessage(), MB_OK, this); } } } void CSensorFrame::OnRecStop() { if (thisApp->dataSaving) { thisApp->niDevice->stopRecorde(); thisApp->dataSaving = FALSE; thisApp->savedData = TRUE; } } ////////////////////////////////////////////////////////////////////////////////// // Button Enable void CSensorFrame::OnStartButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_STOPPED) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } void CSensorFrame::OnStopButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } void CSensorFrame::OnNextButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } // Record void CSensorFrame::OnRecStartButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC && !thisApp->dataSaving) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } void CSensorFrame::OnRecStopButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC && thisApp->dataSaving) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } /* void CSensorFrame::OnSensirLEDButtonUpdate(CCmdUI* pCmdUI) { //if (thisApp->niDevice->getDevState()==NI_STATE_DETECT_EXEC && thisApp->dataSaving) { if (thisApp->niDevice->inputDevice==NiDevice_NI) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } */ // Motor void CSensorFrame::OnMotorUpButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->enableUSBDev && thisApp->appParam.useDevMotor) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } void CSensorFrame::OnMotorCenterButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->enableUSBDev && thisApp->appParam.useDevMotor) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; } void CSensorFrame::OnMotorDownButtonUpdate(CCmdUI* pCmdUI) { if (thisApp->niDevice->enableUSBDev && thisApp->appParam.useDevMotor) { pCmdUI->Enable(TRUE); } else { pCmdUI->Enable(FALSE); } return; }