id:yappo さんが書いたWiiFit対応パッチを WiiRemoteFramework に当てて、Cocoa から使ってみる
公開日:
:
最終更新日:2014/01/31
cocoa
記事内に広告を含む場合があります。記事内で紹介する商品を購入することで、当サイトに売り上げの一部が還元されることがあります。
id:yappo さんが書いたWiiFit対応パッチを WiiRemoteFramework に当てて、Cocoa による体重の取得に挑戦。んが、
- (void) baranceWiiBoardChanged:(short) zero rf:(short) rf rb:(short) rb lf:(short) lf lb:(short) lb {
NSLog(@"baranceWiiBoardChanged");
[textRF setIntValue:(int)rf];
[textRB setIntValue:(int)rb];
[textLF setIntValue:(int)lf];
[textLB setIntValue:(int)lb];
}
が呼ばれていない様子。何で??というわけで、WiiRemote.Framework の調査開始。
- (void) handleExtensionData:(unsigned char *) dp length:(size_t) dataLength
{
NSLog(@"handleExtensionData");
unsigned char startByte;
switch (dp[1]) {
// case 0x31 : // test code by akio0911
// startByte = 4;
// break;
case 0x34 :
startByte = 4;
break;
どうやら dp[1] に 0x31 が入ってきている様子。なので、
if (dp[1] == 0x34) {
// if (dp[1] == 0x34 || dp[1] == 0x31) { // akio0911
if ([_delegate respondsToSelector:@selector (baranceWiiBoardChanged:rf:rb:lf:lb:)]) {
short rf, rb, lf, lb;
rf = ((dp[4] << 8) | dp[5]);
rb = ((dp[6] << 8) | dp[7]);
lf = ((dp[8] << 8) | dp[9]);
lb = ((dp[10] << 8) | dp[11]);
[_delegate baranceWiiBoardChanged:0 rf:rf rb:rb lf:lf lb:lb];
}
ここで baranceWiiBoardChanged が呼ばれていないみたい。んー、何でだろう?今日は遅いのでまた明日調査してみよう。
#coderepos で id:yappo さんに色々とフォローしてもらった。ありがとうございます。体重が取得できるようになったら、CodeReposに上げてみます。
後で ホイール欲しい ハンドル欲しい » バランスWiiボードの解析メモ 3 あたりも読んでみよう。
追記
- (void) setExpansionPortEnabled:(BOOL) enabled
{
IOReturn ret = kIOReturnSuccess;
if (enabled)
NSLogDebug (@"Enabling expansion port.");
else
NSLogDebug (@"Disabling expansion port.");
if (_isExpansionPortAttached) {
_isExpansionPortEnabled = enabled;
// get expansion device calibration data
_shouldReadExpansionCalibration = YES;
ret = [self readData:0x04A40020 length: 16];
LogIOReturn (ret);
}
[self updateReportMode];
}
後でここら辺にNSLogでも埋め込んで調べてみるかなあ。isExpansionPortAttached が真になっているのかも気になる。
関連記事
- PREV
- iWork買ってきた
- NEXT
- メモリカードリーダライタを買い替えた