Page MenuHomePhabricator

Implement Wii driver support to open.source part
Closed, ResolvedPublic

Description

Implement and connect WiiDriver (WiiYourself) for Windows to be able to use Nintendos Wii Remote Control

Event Timeline

currently no recorces for it! Waiting for interested BA / MA or DA developers

[SVN revision 26096]
FIX (#1543): interaction with cameracontroller through IR sensor works, excluded files.cmake and core changes (wiiyourself library needs to be integrated differently)

[SVN revision 26097]
COMP (#1543): changed include from QMessageBox.h to QMessageBox

[SVN revision 26100]
COMP (#1543): excluded all wiimote related classes from files.cmake

[SVN revision 26101]
COMP (#1543): excluded wiimoteactivator from files.cmake

[SVN revision 26105]
COMP (#1543): excluded wiimoteactivator from manifest.cpp

[SVN revision 26111]
COMP (#1543): excluded wiimoteactivator from plugin.xml

[SVN revision 26112]
COMP (#1543): included WiiMoteActivator again (files.cmake,plugin.xml,manifest.cpp) but removed critical code

[SVN revision 26239]
FIX (#1543): wiiyourself library

[SVN revision 26277]
FIX (#1543): fixed time delay, removed static members, added reset function and first version of headtracking available

Cmake integration needs to be restructured.
For this a clear list on what needs to be included is necessary. I will include a patch for so long keep track of current changes into the right direction (hopefully).

cmake definition for integration of input devices

adding marco while working on cmake definition.

For the event handling from driver to controller there are some minor changes in the StateMachine.xml and in mitkInteractionConst.h necessary.

Core modifications are only possible for open source MITK bugs. Please change the product to "MITK", write a change request specification and switch the flag to "?" again.

[SVN revision 26658]
FIX (#1543): added calibration for sensitivity and created distinguishable event classes

[SVN revision 26662]
COMP (#1543): added return value to RegisterInputDevice method

For the WiiYourself library to work there are dependencies necessary. This outline will describe an attempt to integrate them properly into MITK.

Windows SDK and WDK

Available at:
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=c17ba869-9671-4330-a63e-1fd44e0e2505&displaylang=en&pf=true
http://www.microsoft.com/downloads/en/details.aspx?displaylang=en&FamilyID=36a2630f-5d56-43b5-b996-7633f2ec14ff&pf=true

First one has to make sure, if any version of the Windows SDK is used, that the version 7.0 has to be included before any other.
Second the following two paths of the WDK 7.1.0 have to specifically included:
WinDDK\inc\api
WinDDK\inc\ddk
This may vary considerung the OS and other factors. If the solution above is not working you can follow the Readme.txt of the WiiYourself library (..\Modules\mitkInputDevices\WiiMote\wiiyourself\).

Include

The idea is to include the dependencies to the module mitkInputDevices while configuring your project with CMake.

License

Both have standard MS licenses, which can be accessed by installing them and reading the license file. As far as I can see the license should not be in conflict with that of the MITK, but I would like someone else to confirm.

[SVN revision 26808]
FIX (#1543): added multiple wiimote support to thread for testing purpose

[SVN revision 26859]
FIX (#1543): added first version of multiIRevent for processing data coming from multiple wiimotes

[SVN revision 26909]
FIX (#1543): separated wiimote and spacenavigator

I will add two lines to cmake file of module WiMote.
Path to WDK / DDK will be searched for and library hid.lib has to be specified. This should resolve the problem of globally adding directories to visual studio for projects with wiimote.

[SVN revision 27388]
ENH (#1543): adding lib and include path in cmake configuration of module WiiMote.

[SVN revision 27403]
FIX (#1543): re-enabled WiiMoteActivator class

[SVN revision 27591]
FIX (#1543): Core changes for VR Headtracking

[SVN revision 27595]
FIX (#1543): integrated Motion Plus

[SVN revision 27672]
FIX (#1543): fixed warning by using class instead of struct for EventMapperAddOn.h

[SVN revision 27686]
FIX (#1543): added mechanism and gui elements to distinguish headtracking and surface interaction modus

[SVN revision 27812]
FIX (#1543): added event for all incoming data, wiimote model for 3D view, first version of interactor and a simple statemachine pattern

[SVN revision 27923]
FIX (#1543): added new statemachinepattern to restrict movement to button push; changed old statemachinepattern name to "WiiMoteHeadtracking"; implemented initial processing of the data in WiiMoteInteractor

[SVN revision 27931]
FIX (#1543): replaced ForceImmediateUpdate with RequestUpdate to solve problem with delay; added orientation and update age to WiiMoteAllDataEvent

[SVN revision 28041]
FIX (#1543): added fix for orientation parameter and added 2 additional (roll,pitch)

[SVN revision 28164]
FIX (#1543): added acceleration values to WiiMoteAllDataEvent;

[SVN revision 28187]
FIX (#1543): added still buggy translation and simple rotation through acceleration data

[SVN revision 28198]
FIX (#1543): fixed problem with release mode; motion plus now works properly

[SVN revision 28391]
FIX (#1543): added dynamic orientation with data from gyroscopes; added reset function;

[SVN revision 28474]
FIX (#1543): added code to record raw data of wiimote;

[SVN revision 28728]
FIX (#1543): added fix for higher resolution acceleration values (x,y,z); removed tabs, formatting changed slightly;

[SVN revision 28785]
FIX (#1543): removed required lib dependencies because there are problems with the current WDK (7.1.0) and VC8; added notice and referred to mitk homepage;

closing bug, because currently there is no need for wii support