https://www.nsl.tuis.ac.jp/xoops/modules/d3pipes/
2024-03-29T18:43:27+0900
ブログ
NSL
XOOPS - d3pipes
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=21
2013-01-06T00:42:59+0900
2024-03-29T18:43:27+0900
About Message of Mone...
Sorry bad English.<br /><br />This problem is <a href="http://www.nsl.tuis.ac.jp/xoops/modules/d3forum/index.php?topic_id=110" target="_blank">http://www.nsl.tuis.ac.jp/xoops/modules/d3forum/index.php?topic_id=110</a><br /><br />Protocol of this Message is MoneyBalanceReply (UDP, Low 314)<br />See also <a href="http://wiki.secondlife.com/wiki/MoneyBalanceReply" target="_blank">http://wiki.secondlife.com/wiki/MoneyBalanceReply</a><br />But, recently, this protocol was extended. TransactionInfo block was added.<br /><br />At Second Life, example, this udp packet is <br /><pre><br />40 00 00 01 df 00 ff ff 01 3a 31 58 ca 38 cd 95 @ . . . . . . . . : 1 X . 8 . .<br />4a 23 9e 22 b5 5f 7c f8 a6 66 2b 73 c8 9f 3c 9c J # . " . _ | . . f + s . . < .<br />de 37 03 36 5f af c1 e1 a7 4a 01 fe f5 01 00 00 . 7 . 6 _ . . . . J . . . . . .<br />22 00 00 c0 1f 00 00 21 59 6f 75 20 70 61 69 64 " . . . . . . ! Y o u p a i d<br />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 <br />4c 24 31 32 33 34 35 2e 00 89 13 00 00 31 58 ca L $ 1 2 3 4 5 . . . . . . 1 X .<br />38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 00 f5 d6 8 . . J # . " . _ | . . f . . .<br />f0 17 60 b7 46 89 96 24 67 1f 09 81 9e 80 00 39 . . ` . F . . $ g . . . . . . 9<br />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<br />42 42 42 00 B B B .<br /></pre><br />Namely<br /><pre><br />40 00 00 01 df 00 ff ff 01 3a Header<br />31 58 ca 38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 AgentID<br />2b 73 c8 9f 3c 9c de 37 03 36 5f af c1 e1 a7 4a TransactionID<br />01 TransactionSuccess<br />fe f5 01 00 MoneyBalance<br />00 22 00 00 SquareMetersCredit<br />c0 1f 00 00 SquareMetersCommitted<br />21 Length of Description<br />59 6f 75 20 70 61 69 64 20 46 75 6d 69 6b 61 20 Description<br />43 61 6e 6e 69 6e 67 20 4c 24 31 32 33 34 35 2e <br />00 <br /><br />89 13 00 00 TransactionInfo: TransactionType<br />31 58 ca 38 cd 95 4a 23 9e 22 b5 5f 7c f8 a6 66 TransactionInfo: SourceID<br />00 TransactionInfo: IsSourceGroup<br />f5 d6 f0 17 60 b7 46 89 96 24 67 1f 09 81 9e 80 TransactionInfo: DestID<br />00 TransactionInfo: IsDestGroup<br />39 30 00 00 TransactionInfo: Amount<br />10 TransactionInfo: Length of ItemDescription<br />42 42 42 42 42 42 42 42 42 42 42 42 42 42 42 00 TransactionInfo: ItemDescription<br /></pre><br />However, At OpenSim, this packet is<br /><pre><br />c0 00 00 06 1b 00 ff ff 01 3a 75 1c 15 31 03 b5 . . . . . . . . . : u . . 1 . .<br />48 a9 8f 2d 51 a0 52 7b e7 ca 07 44 fa 48 3c 02 H . . - Q . R { . . . D . H < .<br />48 aa b4 14 49 9f 7f 87 94 ba 01 da 14 01 00 09 H . . . I . . . . . . . . . . .<br />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<br />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<br />2e 00 2b 05 4e 4f 4e 45 00 01 . . + . N O N E . .<br /></pre><br />This is Zerocoded packet. Namely<br /><pre><br />c0 00 00 06 1b 00 ff ff 01 3a Header<br />75 1c 15 31 03 b5 48 a9 8f 2d 51 a0 52 7b e7 ca AgentID<br />07 44 fa 48 3c 02 48 aa b4 14 49 9f 7f 87 94 ba TransactionID<br />01 TransactionSuccess<br />da 14 01 00 MoneyBalance<br />00 00 00 00 SquareMetersCredit<br />00 00 00 00 SquareMetersCommitted<br />21 Length of Description<br />53 65 6e 74 20 47 69 66 74 20 4c 24 31 30 20 74 Description<br />6f 20 61 6c 69 63 65 20 49 6e 66 6f 73 79 73 2e <br />00 <br /><br />00 00 00 00 TransactionInfo: TransactionType<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 TransactionInfo: SourceID<br />00 TransactionInfo: IsSourceGroup<br />00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 TransactionInfo: DestID<br />00 TransactionInfo: IsDestGroup<br />00 00 00 00 TransactionInfo: Amount<br />05 TransactionInfo: Length of ItemDescription<br />4e 4f 4e 45 00 TransactionInfo: ItemDescription<br /></pre><br />So, at OpenSim, TransactionInfo: SourceID and DestID are NULL.<br /><br />On the other hand, source code of Viewer 3 (llviewermessage.cpp) is<br /><pre><br />static void process_money_balance_reply_extended(LLMessageSystem* msg)<br />{<br /> .................<br /> .................<br /> msg->getS32("TransactionInfo", "TransactionType", transaction_type);<br /> msg->getUUID("TransactionInfo", "SourceID", source_id);<br /> msg->getBOOL("TransactionInfo", "IsSourceGroup", is_source_group);<br /> msg->getUUID("TransactionInfo", "DestID", dest_id);<br /> msg->getBOOL("TransactionInfo", "IsDestGroup", is_dest_group);<br /> msg->getS32("TransactionInfo", "Amount", amount);<br /> msg->getString("TransactionInfo", "ItemDescription", item_description);<br /> msg->getBOOL("MoneyData", "TransactionSuccess", success);<br /> LL_INFOS("Money") << "MoneyBalanceReply source " << source_id <br /> << " dest " << dest_id<br /> << " type " << transaction_type<br /> << " item " << item_description << LL_ENDL;<br /><br /> if (source_id.isNull() && dest_id.isNull())<br /> {<br /> // this is a pure balance update, no notification required<br /> return; // <b><- Return Here!!!!</b><br /> }<br /> .................<br /></pre><br />As a result, at OpenSim, notification dialog is not displayed.
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=20
2012-01-23T21:46:16+0900
2024-03-29T18:43:27+0900
Windows で Kinect ...
Kinect の LED を操作するという記事<br /><a href="http://exout.net/blog/?p=303" target="_blank">http://exout.net/blog/?p=303</a> <br />があったのですが,試したところ Windows では動きませんでした.(Mac用かな?)<br /><br />そこで,検索したところ<br /><a href="http://akatukisiden.wordpress.com/2011/12/10/openniでkinectのチルトモーター首を動かす/" target="_blank">http://akatukisiden.wordpress.com/2011/12/10/openniでkinectのチルトモーター首を動かす/</a><br />という記事がありましたので,2つを合わせてプログラムを作成しました.<br /><br />なお,プログラムは書き換えると間違える可能性がありますので,使用している物の抜粋を<br />ほぼそのまま載せます.まあプログラマなら分かりますよ...ね.<br />VC++ 2008, 2010 で動くのを確認しています. xn の頭の :: は気にしないでください.惰性で付けてます.<br /><br /><hr /><br />ヘッダファイル<br /><pre><br />// USB<br />#define OPENNI_VID_MICROSOFT 0x45e<br />#define OPENNI_PID_NUI_MOTOR 0x02b0<br /><br />#define OPENNI_LED_OFF 0<br />#define OPENNI_LED_GREEN 1<br />#define OPENNI_LED_RED 2<br />#define OPENNI_LED_ORANGE 3<br />#define OPENNI_LED_BLINK_GREEN 4<br />#define OPENNI_LED_BLINK_RED 5<br />#define OPENNI_LED_BLINK_ORANGE 6<br /><br />....<br /><br />class COpenNiTool<br />{<br />public:<br /> COpenNiTool(void) { init();}<br /> ....<br /><br /> ....<br /> // USB<br /> BOOL openUSBDevice (void);<br /> void closeUSBDevice(void);<br /> void setLEDColor (int col);<br /> void setTiltMotor(int ang);<br /> ....<br /><br /> // USB<br /> XN_USB_DEV_HANDLE usb_dev;<br /> XnUSBConnectionString* devPath;<br /> ....<br />}<br /></pre><br /><br /><br /><hr /><br />cppファイル<br /><pre><br />void COpenNiTool::init()<br />{<br /> ....<br /> //<br /> usb_dev = NULL;<br /> devPath = NULL;<br /> ....<br />}<br /><br />....<br />....<br /><br />/////////////////////////////////////////////////////////////////////////////////////////////////////<br />// USB<br /><br />BOOL COpenNiTool::openUSBDevice(void)<br />{<br /> rc = ::xnUSBInit();<br /> if (rc!=XN_STATUS_OK && rc!=XN_STATUS_USB_ALREADY_INIT) return FALSE;<br /> <br />#ifdef WIN32<br /> XnUInt32 count;<br /> rc = ::xnUSBEnumerateDevices(OPENNI_VID_MICROSOFT, OPENNI_PID_NUI_MOTOR, (const XnUSBConnectionString**)&devPath, &count);<br /> if (rc!=XN_STATUS_OK) {<br /> ::xnUSBShutdown();<br /> return FALSE;<br /> }<br /><br /> rc = ::xnUSBOpenDeviceByPath(*devPath, &usb_dev);<br /> if (rc!=XN_STATUS_OK) {<br /> ::xnUSBFreeDevicesList(devPath);<br /> return FALSE;<br /> }<br /><br />#else<br /> rc = ::xnUSBOpenDevice(OPENNI_VID_MICROSOFT, OPENNI_PID_NUI_MOTOR, NULL, NULL, &usb_dev);<br /> if (rc!=XN_STATUS_OK) {<br /> ::xnUSBShutdown();<br /> return FALSE;<br /> }<br />#endif<br /><br /> return TRUE;<br />}<br /><br /><br />void COpenNiTool::closeUSBDevice(void)<br />{<br /> if (usb_dev!=NULL) {<br /> ::xnUSBCloseDevice(usb_dev);<br /> usb_dev = NULL;<br /> }<br /><br />#ifdef WIN32<br /> if (devPath!=NULL) {<br /> ::xnUSBFreeDevicesList(devPath);<br /> devPath = NULL;<br /> }<br />#endif<br /><br /> ::xnUSBShutdown();<br />}<br /><br /><br />void COpenNiTool::setLEDColor(int col)<br />{<br /> if (usb_dev==NULL) return;<br /> ::xnUSBSendControl(usb_dev, XN_USB_CONTROL_TYPE_VENDOR, 0x06, (XnUInt16)col, 0, NULL, 0, 0);<br /> return;<br />}<br /><br /><br />void COpenNiTool::setTiltMotor(int ang)<br />{<br /> if (usb_dev==NULL) return;<br /> //if (ang>30 || ang<-30) return;<br /> ::xnUSBSendControl(usb_dev, XN_USB_CONTROL_TYPE_VENDOR, 0x31, (XnUInt16)(ang*2), 0, NULL, 0, 0);<br /> return;<br />}<br /></pre>
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=19
2011-11-04T18:46:42+0900
2024-03-29T18:43:27+0900
SLKinect
SLKinect リリースしました.<br /><br />本当は年内の予定だったんだけど,あんまりゆっくりやっていると,世間から忘れ去られそうで.<br />激務で死にそう....<br />明日は子供と動物園だ.休みたい... <img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d75edb5e.gif" alt="" /><br /><br />次は OpenSim の物理エンジンですか....<br />まだまだ続く,デスマーチ....<br /><br />あれ~.改行はどうやるんだっけ? そうか,Auto break か.
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=18
2010-06-24T19:00:00+0900
2024-03-29T18:43:27+0900
SnowGlobe v1.3 + Sock...
フリーの SL Viewerである SnowGlobe には Socks5 の設定画面がある.ただし,v1.3 はまだ完全ではないようだ.<br />接続時のエラーメッセージから察するに,どうも最初のHTTPS接続で失敗しているようだ.実際にログイン時のTCP接続を調べると,確かにSocksサーバを経由していない.<br /><br />一方,(配布元ページはなくなっているが) SocksCap という, MS Windows ソフトをラップしてSocks対応にしてしまうプログラムがある.<br />こちらを試すと,今度はUDP転送に失敗した時の特徴のあるエラーメッセージをだす.<br /><br />それならば,ということで,SnowGlobe をSocksCap でラップして,しかも ネットワーク設定で Socksサーバ経由を指定したらどうなるかやってみたら.....あらあら. FWを超えて繋がっちゃたよ.... まいったな sl_proxy いらないじゃん.<br /><br />どうしよう.<img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d8676346.gif" alt="" /> でもでも,sl_proxy なら Socksサーバ,SocksCap 2つもいらない.Macでも動く.設定も簡単だよ~.速度も sl_proxyの方が早い気がする!! プロトコル解析もできちゃうよ!! <img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d6422f04.gif" alt="" />
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=17
2010-04-17T22:09:07+0900
2024-03-29T18:43:27+0900
osprofile
OpenSim 0.7Dev のデータベースにはアバタのプロフィールを入れる項目がなくなっている.<br />盛大なバグかと思っていたら,たいして話題にならないし,知らないところで何とかなっているんだなと思っていたら osprofile というのがあるのを知った.<br /><br />ちゃんと解決が示されているんだ!! と思ってプロジェクトページに移動したら,議論も情報も何にもなし.SVNだけ.<br />試しに落として動かそうとしたら,(今度こそ本当に)Bugの山.<br /><br />データベースの項目名間違えてる.項目足りない.必要なイベント関数なし.余計なイベント関数あり.関数の中身なし.<br />うげ~.何だ何だ!! これは私に対する挑戦だな!!.よし,書き換えてやる!! 書き換えてやる!! 徹夜で書き換えてやる(どうせ喘息で夜寝れないし)!! とことん書き換えてやる!! <br />子供が遊びに連れて行けと泣いているが,無視して書き変えてやる!!! ついでに XoopenSim に組み込んでやる.<br />xmlrpc_encode()ではエンコード指定できないから日本語は扱えないけど,Base64で強制的に転送してやる! やる!! やる!!! やってやるぜ!!!!<br /><br />というわけで,データベースアクセスは XoopsCube用に書き換えてないけど(だからXoops Cube以外でもいごく),一応動くのができた!! <br />XoopenSim 1.32β だ!! ただ今テスト中.<br /><br />ああっ.いつになったらMoodleに戻れるの?
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=16
2009-12-26T19:12:59+0900
2024-03-29T18:43:27+0900
Sloodle-Set-1.0
Sloodle 1.0 を OpenSim で動くように,ちょこちょこ弄り回す.<br />ToolBar のアイコン化手法は秀逸 <img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d6422f04.gif" alt="" /> 笑った!!
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=15
2009-12-26T19:11:09+0900
2024-03-29T18:43:27+0900
OpenSim 0.6.8
OpenSim の 0.6.8 がリリースされてる.<br />前々から準備していた 0.6.8用パッチやらマネーサーバやらをリリース.
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=14
2009-12-26T19:07:35+0900
2024-03-29T18:43:27+0900
Linden Lab はやる...
先日の授業で,学生に Second Life のアバタを登録させたら,登録数の制限に引っかかってアバタの新規登録ができなかった.<br />大学では学外の WEBサイトを見る場合 Proxy Server を使用していて,登録側からみると同一IPから複数のアバタを登録しているように見えるためだ.<br />一般家庭などとは違い大学の教育で使いたいと思っているので,大学の固定IPの範囲について制限を解除できないか Linden Lab に問い合わせた所.<br />「学生には自宅で登録させてください」 とのこと.<img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d75edb5e.gif" alt="" /><br />ふつう学生は顧客獲得の狙い目なのに,まるっきりやる気なしですね.
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=13
2009-07-02T17:15:01+0900
2024-03-29T18:43:27+0900
XoopenSim β
Xoops Cube用の OpenSim インターフェイスがほぼ完成.<br /><br />後はバグだしと日本語ファイルとマニュアルとアイコンの作成だけ!!<br />って.マニュアル書きが一番大変そうな気がしないでもない.......
https://www.nsl.tuis.ac.jp/xoops/modules/d3blog/details.php?bid=12
2009-03-04T15:25:40+0900
2024-03-29T18:43:27+0900
sl_proxy-1.7.0 リリ...
一応 sl_proxy の 1.7.0 をリリースしました.<br /><br />結局 Berkeley DBのロックではお茶を濁しましたが(若干sl_cacheのパフォーマンスが落ちる),Berkeley DB自体がそんなに早くないので,いいかな <img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4e29bbcc7.gif" alt="" /><br /><br />次の仕事のスタックが溢れそうだし..... <img src="https://www.nsl.tuis.ac.jp/xoops/uploads/smil3dbd4d8676346.gif" alt="" /><br />バグがでないといいなー(儚い望みであることは重々承知)