From 62ccfbdaf3e5ef9bb3606059308ceaaf7f42e7a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?IOhannes=20m=20zm=C3=B6lnig?= Date: Wed, 3 Aug 2011 15:00:08 +0000 Subject: w32mote svn path=/trunk/externals/hardware/; revision=15195 --- w32mote/WiiYourself/History.txt | 281 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 281 insertions(+) create mode 100644 w32mote/WiiYourself/History.txt (limited to 'w32mote/WiiYourself/History.txt') diff --git a/w32mote/WiiYourself/History.txt b/w32mote/WiiYourself/History.txt new file mode 100644 index 0000000..6601dc9 --- /dev/null +++ b/w32mote/WiiYourself/History.txt @@ -0,0 +1,281 @@ +____________________________________________________________ + + - WiiYourself! - native C++ Wiimote library v1.15 + (c) gl.tter 2007-10 - http://gl.tter.org +____________________________________________________________ + +History: + +What's new since 1.01a? - Main Features (see ReadMe & full history for details) + + + Balance Board support with automatic offset removal. + + + Seemingly solid MotionPlus support. + + + Library no longer includes project files - just add wiimote.cpp & + header to your project (avoids all build-settings releated issues) + + + better MinGW support: (thanks Elmo) + adds functional _ASSERT/TRACE/WARN/DEEP_TRACE macros + non-MSYS dependent build option via 'make_mingw.bat'. + Demo builds & works under MinGW. + + + new Python wrapper (by Robert Xiao, see 'Python' folder for details) + + + library now compiles on Borland (thanks Griff - demo not tested). + + + many fixes, connections should be more reliable. + + + join my mailing list to give feedback, share ideas & stay informed: + http://gl.tter.org/mailman/listinfo/wiiyourself_gl.tter.org + +1.15 Final: + + fixed MotionPlus detection on stacks that require HID writes! + + Balance Board corner weight values have been quartered (.Total remains + unchanged). The non-raw corner weight incorrectly reported 4x their + real value. + + Wiimote calibration info is more reliably received (it may not have + arrived in many instances) + + exposed a partially-unique device ID (wiimote::UniqueID). This 64bit + number is set during the Connect() call, and is derived from the + device-specific calibration values. It's therefore not guaranteed to + be truly unique (several devices may conceivably hold the same calibration + values). However in practice it is likely to be unique between a + few wiimotes, so it can be used to eg. assign a particular wiimote to the + same player every time. + + internal: made the HID report output queue fixed-size to remove any + glitches from frequent dynamic memory allocation (thanks + Steve). The old STL-queue based code can still be reenabled + by defining USE_DYNAMIC_HIDQUEUE. + +1.15 RC2: + + added Python wrapper by Robert Xiao - you can now use WiiYourself! with + Python! (thanks Robert) + + hopefully fixed MotionPlus connection problems! (send report to my + mailing list) + + + added virtual event-change notifier to the wiimote object (thanks Robert + Xio) - works the same as external callbacks. To use, derive your own + class from the wiimote object and override ChangedNotifier() + + + changed the way callbacks work: + + in previous versions, it was OK to access the wiimote object's state + from callbacks. This required an internal RefreshState() call just + before the callback function is executed - but this could then change + the internal state unexpectedly, so values could change in polling + loops even between the app's own RefreshState() calls. + + to correct this, the callback functions now get a read-only copy + of the newest state passed in, you should only access this copy as + state in the wiimote object is likely out-of-date. + + In short, the wiimote object's exposed state is now _only_ refreshed + by the application, not by callbacks. + + (this also solved Motion+ connection and disabling failures). + + + added new change event 'CONNECTED' + + the demo previously used callbacks to set most of its report types, but + it also set them once shortly after connecting the wiimote, and this could + cause it to set the wrong one, breaking extension data. Instead it now + uses the CONNECTED event in the callback. It's best to only set these + in one place. + +1.15 RC: + + fixed missing Balance Board calibration values for the 34kg category + (thanks Benjamin Lassort). + + + fixed Wiimote disconnecting in certain scenarios (ReportType wasn't + initialised, and this could sometimes be sent to the 'mote, causing + it to disconnect - thanks Robert Xiao). + + + minor changes to support Robert Xiao's WiiYourself! Python Wrapper! + (next release). + +1.14 BETA: + - added new state & callback event: bBatteryDrained / BATTERY_DRAINED + this is sent went the wiimote signals that the batteries are nearly + empty. + - added MotionPlus extension events (ie. for extensions plugged into it): + MOTIONPLUS_EXTENSION_CONNECTED + MOTIONPLUS_EXTENSION_DISCONNECTED + wiimote::MotionPlusHasExtension() + wiimote::DisableMotionPlus() + wiimote::EnableMotionPlus() + + (apps can now decide if they want to disable the MotionPlus to read the + extension instead, see demo for an example) + + ** however **, MotionPlus disabling isn't reliable at the moment (it + rarely works), and so extension connected to an already enabled plus + rarely are activated. Could use some help on this one. + +1.13 BETA: + + ** BALANCE BOARDS no longer require setting a report type! ** + there is only one type for it, and this is now set automatically. + + + 'At Rest' offset removal added (currently only for Balance Boards). + this reads the current analogue sensor values after a Connect() call, + and then subtracts them from future values, to remove any unwanted + offsets (currently ~ +- 0-2.5kg with Balance Boards). 'raw' values + are not affected. + + If the device was not at rest during Connect(), then the app can + remove the current offsets manually via CalibrateAtRest(). + + + ** PRELIMINARY MOTION PLUS SUPPORT! ** + + Motion Plus does not report itself until queried, so it's currently + queried every second. If detected, it is activated and is reported + like any other extension. Note that extensions plugged into the + MotionPlus itself can't currently be used at the same time (it's not + known if this is even possible). Right now you need to unplug the + MotionPlus to use another extension (I will add some way to toggle + the MotionPlus so that another extensions becomes available again) + in the next release. + + According to this interview with the MotionPlus designers + + there are two gyro sensitivity modes, but this has not been reverse + engineered yet. Also I'm not 100% certain of the correctness of the + values (although they seem right), or their actual scale (ie. how many + degrees rotations per second do the float values actually represent)? + + + the Demo has been updated for both devices. + + ReadMe has been updated with new relevant info. + +1.12 BETA: + + ** REMOVED ALL LIBRARY PROJECTS ** + instead just add wiimote.cpp to your application and include the header + as before (this removes all build/project related-problems, like matching + the runtime/Unicode settings etc). + + + Balance Board is now working (thanks to Akihiko's donation of a board!) + + added wiimote::IsBalanceBoard() (Balance Boards are detected as wiimotes + with a permanent BALANCE_BOARD extension). + NOTE: Balance Boards require the IN_BUTTONS_BALANCE_BOARD report type + (see demo). + + changed some of the wiimote_state extension enums to ID a wider variety. + + no more invalid acceleration values from devices that don't support it. + + fixed some project settings. + +1.11 BETA: + + new way to detect extensions (supposedly works on all of them, including + wireless Nunchuks) - only tested on stock Nunchuk. + + longer sleep after SetReportType (may help data not being reported). + +1.1 BETA: + + beta Balance Board support! + + better MinGW support: (thanks Elmo) + adds functional _ASSERT/TRACE/WARN/DEEP_TRACE macros + non-MSYS dependent build option via 'make_mingw.bat'. + Demo builds & works under MinGW. + + directory reorganisation: + - Each compiler has own project dir (VC2005/VC2005/MinGW), + and equivialent lib/ sudir. + + now ships with working VC2005 SP1 / VC2008 / MinGW libraries + (and MinGW DLL). + + library now compiles on Borland (thanks Griff) - demo may not. + +1.01a: (1.01 had incorrect version defines) + + extensions now work when already connected before Connect(), + & also when an EXT SetReportType() is used initially. + + ** renamed wiimote_state::IR::dot::bVisible to 'bVisible'. ** + + Disconnect() now waits for its threads to exit. + + made TRACE/WARN macros VC2005+ specific (as earlier VC versions don't + support variable arg macros). + + corrected wiimote.h Connect() comments (wiimote selection is 1-based, + not 0-based) + +1.00: + + ** major bug fix, write buffer was abused. ** might have caused various + problems. + + ** added delay to EnableIR(), fixed IR init problems for those that + had them (thanks Cameron) **. if you had to use your own delays + to get things to work, try removing them now. + + wiimote_state::classic_controller::buttons::TriggerL() / R were reversed + (thanks Vico). + + patch & Makefile for MSYS / MinGW (thanks Dario). + + updated ReadMe. + +0.99b: + + added support for the Guitar Hero controller (thanks Morgan). + It's just a Classic Controller with a different ID and is read the same, + but can be differentiated via wiimote_state::extension_type::CLASSIC_GUITAR. + +0.96b: + + fix ClassicButtonNameFromBit[] + + fix WIIYOURSELF_VERSION_MINOR2 + +0.95b: + + Classic Controller button fixes (thanks Farshid). + + sightly longer Sleep() in Reset() - hopefully fixes some reports of + wiimote acceleration values not working. + +0.94b: + + deadzones weren't working. + +0.93b: + + ** compiled libs are now stored in /libs ** + + ** up to 4 dots are now available in every IR mode ** + + some 'state_change_flags' weren't quite generated correctly. + - removed 'wiimote_state::polling' flags (redundant, flags are already + returned via RefreshState()). + + various internal improvements + +0.92b: + ** Polling changes ** + - now need to call RefreshState() once before each polling pass (see + header comments & demo). this was done to synchronise the threaded + state updates, so that data integrity is guaranteed. + ** Callback changes ** + - combined 'wiimote_state_changed' and 'extension_state_changed' flags + into 'state_change_flags + - removed 'ExtensionChangedCallback' (only a single callback is used now) + - added 'CallbackTriggerFlags' to minimize callback overhead + (see header comments & demo) + + added Reset() (see header comments) + + button mask TRIGGER is now _B + + Demo: removed 'wiimote2' line (debug leftover) + +0.82b: + ** code/demo failed pre-XP (HID writes require XP+). code now detects + HID write support dynamically. ** + + tidied code & surpressed redundant warning (or just enable C++ exceptions). + + Improved debug output (mainly DEEP_TRACE) + + Connect() can now take (and defaults to) 'FIRST_AVAILABLE' as the wiimote + index (see header comments). + + 'wiimote_sample' is now auto-cleared on construction + + Adjusted max 'theoretical' raw IR coord values (1023x767) to largest + actually observed, to output full 0-1 float range. + + **Inverted** IR X float coord to match traditional 'left = 0' convention + (raw coords unaffected for now). + + Added state recording ability to aid state/motion analysis. See RecordState(); + - removed RequestBatteryUpdate() (battery level is now periodically refreshed) + - disabled ...CALIBRATION_CHANGED flags (not useful) + + Demo : should now work pre-XP. + ReadMe: added Wiimote/PC installation notes (MS stack is especially tricky). + +0.81b: + + connection loss is now detected (via failed writes) + + ConnectionWasLost() added + + report modes renamed for clarity. + + Connect(): added 'force_hidwrites' (for testing only). + + Extension connections now seem to be reliable. + + Battery is now periodically refreshed (also used for loss detection) + + 'BatteryRaw' was set incorrectly + + added 'wiimote::ClassicButtonNameFromBit[]' + + + Demo : Classic Controller data shown. + + Demo : IR dot sizes now reported when possible (only if extension + data isn't requested as they're not available then). + + + License: 'no harm' clause added. + + ReadMe : added build notes etc. + +0.1b: + First release. \ No newline at end of file -- cgit v1.2.1