flagflag  If you want to see English page, please click "English" Button at Left.

ブログ - 最新エントリー

Sorry bad English.

This problem is http://www.nsl.tuis.ac.jp/xoops/modules/d3forum/index.php?topic_id=110

Protocol of this Message is MoneyBalanceReply (UDP, Low 314)
See also http://wiki.secondlife.com/wiki/MoneyBalanceReply
But, recently, this protocol was extended. TransactionInfo block was added.

At Second Life, example, this udp packet is

40 00 00 01 df 00 ff ff 01 3a 31 58 ca 38 cd 95 @ . . . . . . . . : 1 X . 8 . .
4a 23 9e 22 b5 5f 7c f8 a6 66 2b 73 c8 9f 3c 9c J # . " . _ | . . f + s . . < .
de 37 03 36 5f af c1 e1 a7 4a 01 fe f5 01 00 00 . 7 . 6 _ . . . . J . . . . . .
22 00 00 c0 1f 00 00 21 59 6f 75 20 70 61 69 64 " . . . . . . ! Y o u p a i d
20 46 75 6d 69 6b 61 20 43 61 6e 6e 69 6e 67 20 F u m i k a C a n n i n g
4c 24 31 32 33 34 35 2e 00 89 13 00 00 31 58 ca L $ 1 2 3 4 5 . . . . . . 1 X .
38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 00 f5 d6 8 . . J # . " . _ | . . f . . .
f0 17 60 b7 46 89 96 24 67 1f 09 81 9e 80 00 39 . . ` . F . . $ g . . . . . . 9
30 00 00 10 42 42 42 42 42 42 42 42 42 42 42 42 0 . . . B B B B B B B B B B B B
42 42 42 00 B B B .

Namely

40 00 00 01 df 00 ff ff 01 3a Header
31 58 ca 38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 AgentID
2b 73 c8 9f 3c 9c de 37 03 36 5f af c1 e1 a7 4a TransactionID
01 TransactionSuccess
fe f5 01 00 MoneyBalance
00 22 00 00 SquareMetersCredit
c0 1f 00 00 SquareMetersCommitted
21 Length of Description
59 6f 75 20 70 61 69 64 20 46 75 6d 69 6b 61 20 Description
43 61 6e 6e 69 6e 67 20 4c 24 31 32 33 34 35 2e
00

89 13 00 00 TransactionInfo: TransactionType
31 58 ca 38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 TransactionInfo: SourceID
00 TransactionInfo: IsSourceGroup
f5 d6 f0 17 60 b7 46 89 96 24 67 1f 09 81 9e 80 TransactionInfo: DestID
00 TransactionInfo: IsDestGroup
39 30 00 00 TransactionInfo: Amount
10 TransactionInfo: Length of ItemDescription
42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 00 TransactionInfo: ItemDescription

However, At OpenSim, this packet is

c0 00 00 06 1b 00 ff ff 01 3a 75 1c 15 31 03 b5 . . . . . . . . . : u . . 1 . .
48 a9 8f 2d 51 a0 52 7b e7 ca 07 44 fa 48 3c 02 H . . - Q . R { . . . D . H < .
48 aa b4 14 49 9f 7f 87 94 ba 01 da 14 01 00 09 H . . . I . . . . . . . . . . .
21 53 65 6e 74 20 47 69 66 74 20 4c 24 31 30 20 ! S e n t G i f t L $ 1 0
74 6f 20 61 6c 69 63 65 20 49 6e 66 6f 73 79 73 t o a l i c e I n f o s y s
2e 00 2b 05 4e 4f 4e 45 00 01 . . + . N O N E . .

This is Zerocoded packet. Namely

c0 00 00 06 1b 00 ff ff 01 3a Header
75 1c 15 31 03 b5 48 a9 8f 2d 51 a0 52 7b e7 ca AgentID
07 44 fa 48 3c 02 48 aa b4 14 49 9f 7f 87 94 ba TransactionID
01 TransactionSuccess
da 14 01 00 MoneyBalance
00 00 00 00 SquareMetersCredit
00 00 00 00 SquareMetersCommitted
21 Length of Description
53 65 6e 74 20 47 69 66 74 20 4c 24 31 30 20 74 Description
6f 20 61 6c 69 63 65 20 49 6e 66 6f 73 79 73 2e
00

00 00 00 00 TransactionInfo: TransactionType
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 TransactionInfo: SourceID
00 TransactionInfo: IsSourceGroup
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 TransactionInfo: DestID
00 TransactionInfo: IsDestGroup
00 00 00 00 TransactionInfo: Amount
05 TransactionInfo: Length of ItemDescription
4e 4f 4e 45 00 TransactionInfo: ItemDescription

So, at OpenSim, TransactionInfo: SourceID and DestID are NULL.

On the other hand, source code of Viewer 3 (llviewermessage.cpp) is

static void process_money_balance_reply_extended(LLMessageSystem* msg)
{
.................
.................
msg->getS32("TransactionInfo", "TransactionType", transaction_type);
msg->getUUID("TransactionInfo", "SourceID", source_id);
msg->getBOOL("TransactionInfo", "IsSourceGroup", is_source_group);
msg->getUUID("TransactionInfo", "DestID", dest_id);
msg->getBOOL("TransactionInfo", "IsDestGroup", is_dest_group);
msg->getS32("TransactionInfo", "Amount", amount);
msg->getString("TransactionInfo", "ItemDescription", item_description);
msg->getBOOL("MoneyData", "TransactionSuccess", success);
LL_INFOS("Money") << "MoneyBalanceReply source " << source_id
<< " dest " << dest_id
<< " type " << transaction_type
<< " item " << item_description << LL_ENDL;

if (source_id.isNull() && dest_id.isNull())
{
// this is a pure balance update, no notification required
return; // <- Return Here!!!!
}
.................

As a result, at OpenSim, notification dialog is not displayed.

Windows で Kinect の LEDを操作する (with OpenNI)

カテゴリ : 
雑記帳
執筆 : 
iseki 2012-1-23 21:46
Kinect の LED を操作するという記事
http://exout.net/blog/?p=303
があったのですが,試したところ Windows では動きませんでした.(Mac用かな?)

そこで,検索したところ
http://akatukisiden.wordpress.com/2011/1​2/10/openniでkinectのチルトモーター首を動かす/
という記事がありましたので,2つを合わせてプログラムを作成しました.

なお,プログラムは書き換えると間違える可能性がありますので,使用している物の抜粋を
ほぼそのまま載せます.まあプログラマなら分かりますよ...ね.
VC++ 2008, 2010 で動くのを確認しています. xn の頭の :: は気にしないでください.惰性で付けてます.



ヘッダファイル

// USB
#define OPENNI_VID_MICROSOFT 0x45e
#define OPENNI_PID_NUI_MOTOR 0x02b0

#define OPENNI_LED_OFF 0
#define OPENNI_LED_GREEN 1
#define OPENNI_LED_RED 2
#define OPENNI_LED_ORANGE 3
#define OPENNI_LED_BLINK_GREEN 4
#define OPENNI_LED_BLINK_RED 5
#define OPENNI_LED_BLINK_ORANGE 6

....

class COpenNiTool
{
public:
COpenNiTool(void) { init();}
....

....
// USB
BOOL openUSBDevice (void);
void closeUSBDevice(void);
void setLEDColor (int col);
void setTiltMotor(int ang);
....

// USB
XN_USB_DEV_HANDLE usb_dev;
XnUSBConnectionString* devPath;
....
}





cppファイル

void COpenNiTool::init()
{
....
//
usb_dev = NULL;
devPath = NULL;
....
}

....
....

/////////////////////////////////////////////////////////////////////////////////////////////////////
// USB

BOOL COpenNiTool::openUSBDevice(void)
{
rc = ::xnUSBInit();
if (rc!=XN_STATUS_OK && rc!=XN_STATUS_USB_ALREADY_INIT) return FALSE;

#ifdef WIN32
XnUInt32 count;
rc = ::xnUSBEnumerateDevices(OPENNI_VID_MICROSOFT, OPENNI_PID_NUI_MOTOR, (const XnUSBConnectionString**)&devPath, &count);
if (rc!=XN_STATUS_OK) {
::xnUSBShutdown();
return FALSE;
}

rc = ::xnUSBOpenDeviceByPath(*devPath, &usb_dev);
if (rc!=XN_STATUS_OK) {
::xnUSBFreeDevicesList(devPath);
return FALSE;
}

#else
rc = ::xnUSBOpenDevice(OPENNI_VID_MICROSOFT, OPENNI_PID_NUI_MOTOR, NULL, NULL, &usb_dev);
if (rc!=XN_STATUS_OK) {
::xnUSBShutdown();
return FALSE;
}
#endif

return TRUE;
}


void COpenNiTool::closeUSBDevice(void)
{
if (usb_dev!=NULL) {
::xnUSBCloseDevice(usb_dev);
usb_dev = NULL;
}

#ifdef WIN32
if (devPath!=NULL) {
::xnUSBFreeDevicesList(devPath);
devPath = NULL;
}
#endif

::xnUSBShutdown();
}


void COpenNiTool::setLEDColor(int col)
{
if (usb_dev==NULL) return;
::xnUSBSendControl(usb_dev, XN_USB_CONTROL_TYPE_VENDOR, 0x06, (XnUInt16)col, 0, NULL, 0, 0);
return;
}


void COpenNiTool::setTiltMotor(int ang)
{
if (usb_dev==NULL) return;
//if (ang>30 || ang<-30) return;
::xnUSBSendControl(usb_dev, XN_USB_CONTROL_TYPE_VENDOR, 0x31, (XnUInt16)(ang*2), 0, NULL, 0, 0);
return;
}

SLKinect

カテゴリ : 
開発日誌 » セカンドライフ
執筆 : 
iseki 2011-11-4 18:46
SLKinect リリースしました.

本当は年内の予定だったんだけど,あんまりゆっくりやっていると,世間から忘れ去られそうで.
激務で死にそう....
明日は子供と動物園だ.休みたい...

次は OpenSim の物理エンジンですか....
まだまだ続く,デスマーチ....

あれ~.改行はどうやるんだっけ? そうか,Auto break か.

SnowGlobe v1.3 + SocksCap + Socks5

カテゴリ : 
開発日誌 » セカンドライフ
執筆 : 
iseki 2010-6-24 19:00
フリーの SL Viewerである SnowGlobe には Socks5 の設定画面がある.ただし,v1.3 はまだ完全ではないようだ.
接続時のエラーメッセージから察するに,どうも最初のHTTPS接続で失敗しているようだ.実際にログイン時のTCP接続を調べると,確かにSocksサーバを経由していない.

一方,(配布元ページはなくなっているが) SocksCap という, MS Windows ソフトをラップしてSocks対応にしてしまうプログラムがある.
こちらを試すと,今度はUDP転送に失敗した時の特徴のあるエラーメッセージをだす.

それならば,ということで,SnowGlobe をSocksCap でラップして,しかも ネットワーク設定で Socksサーバ経由を指定したらどうなるかやってみたら.....あらあら. FWを超えて繋がっちゃたよ.... まいったな sl_proxy いらないじゃん.

どうしよう. でもでも,sl_proxy なら Socksサーバ,SocksCap 2つもいらない.Macでも動く.設定も簡単だよ~.速度も sl_proxyの方が早い気がする!! プロトコル解析もできちゃうよ!!

osprofile

カテゴリ : 
開発日誌
執筆 : 
iseki 2010-4-17 22:09
OpenSim 0.7Dev のデータベースにはアバタのプロフィールを入れる項目がなくなっている.
盛大なバグかと思っていたら,たいして話題にならないし,知らないところで何とかなっているんだなと思っていたら osprofile というのがあるのを知った.

ちゃんと解決が示されているんだ!! と思ってプロジェクトページに移動したら,議論も情報も何にもなし.SVNだけ.
試しに落として動かそうとしたら,(今度こそ本当に)Bugの山.

データベースの項目名間違えてる.項目足りない.必要なイベント関数なし.余計なイベント関数あり.関数の中身なし.
うげ~.何だ何だ!! これは私に対する挑戦だな!!.よし,書き換えてやる!! 書き換えてやる!! 徹夜で書き換えてやる(どうせ喘息で夜寝れないし)!! とことん書き換えてやる!!
子供が遊びに連れて行けと泣いているが,無視して書き変えてやる!!! ついでに XoopenSim に組み込んでやる.
xmlrpc_encode()ではエンコード指定できないから日本語は扱えないけど,Base64で強制的に転送してやる! やる!! やる!!! やってやるぜ!!!!

というわけで,データベースアクセスは XoopsCube用に書き換えてないけど(だからXoops Cube以外でもいごく),一応動くのができた!!
XoopenSim 1.32β だ!! ただ今テスト中.

ああっ.いつになったらMoodleに戻れるの?

Sloodle-Set-1.0

カテゴリ : 
開発日誌
執筆 : 
iseki 2009-12-26 19:12
Sloodle 1.0 を OpenSim で動くように,ちょこちょこ弄り回す.
ToolBar のアイコン化手法は秀逸  笑った!!

OpenSim 0.6.8

カテゴリ : 
開発日誌
執筆 : 
iseki 2009-12-26 19:11
OpenSim の 0.6.8 がリリースされてる.
前々から準備していた 0.6.8用パッチやらマネーサーバやらをリリース.

Linden Lab はやる気なし

カテゴリ : 
開発日誌 » セカンドライフ
執筆 : 
iseki 2009-12-26 19:07
先日の授業で,学生に Second Life のアバタを登録させたら,登録数の制限に引っかかってアバタの新規登録ができなかった.
大学では学外の WEBサイトを見る場合 Proxy Server を使用していて,登録側からみると同一IPから複数のアバタを登録しているように見えるためだ.
一般家庭などとは違い大学の教育で使いたいと思っているので,大学の固定IPの範囲について制限を解除できないか Linden Lab に問い合わせた所.
「学生には自宅で登録させてください」 とのこと.
ふつう学生は顧客獲得の狙い目なのに,まるっきりやる気なしですね.

XoopenSim β

カテゴリ : 
開発日誌
執筆 : 
iseki 2009-7-2 17:15
Xoops Cube用の OpenSim インターフェイスがほぼ完成.

後はバグだしと日本語ファイルとマニュアルとアイコンの作成だけ!!
って.マニュアル書きが一番大変そうな気がしないでもない.......

sl_proxy-1.7.0 リリース

カテゴリ : 
開発日誌 » セカンドライフ
執筆 : 
iseki 2009-3-4 15:25
一応 sl_proxy の 1.7.0 をリリースしました.

結局 Berkeley DBのロックではお茶を濁しましたが(若干sl_cacheのパフォーマンスが落ちる),Berkeley DB自体がそんなに早くないので,いいかな

次の仕事のスタックが溢れそうだし.....
バグがでないといいなー(儚い望みであることは重々承知)

サイト内 検索

ログイン

ユーザー名:

パスワード:


パスワード紛失
新規登録

カテゴリ一覧

サブ メニュー

ミニカレンダー

前月2024年 3月翌月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
<今日>

オンライン状況

76 人のユーザが現在オンラインです。 (1 人のユーザが ブログ を参照しています。)

登録ユーザ: 0
ゲスト: 76

もっと...

アクセスカウンタ

今日 : 2663266326632663
昨日 : 4473447344734473
総計 : 2312920823129208231292082312920823129208231292082312920823129208
Powered by XOOPS Cube 2.1© 2001-2006 XOOPS Cube Project
Design by XoopsDesign.com