PCからwifi経由でファイルを取得する
昨日の続きですが、nds本体でスクリプトを書き換えるのが面倒なので、全てPCでできるように考えました。それは、OsoScriptから別のOsoScriptを実行できるコマンドexec()を使います。autorun.osoでも指定されたOsoScriptを呼び出すのに使っています。
OsoScriptからOsoScriptを呼び出す
先ず、httpget.osoをhttpget.osoとhttpgetbub.osoの2つに分けます。httpget.osoには、httpgetsub.osoをPCから取得して、httpgetsub.osoを実行するスクリプトを書きます。下記のような感じです。
#------------------------------------------------------- # httpgetsub.osoを読み込むプログラム # httpgetsub.osoにNDSに転送したいファイルが設定してある #------------------------------------------------------- function main() { local ret; local key = 0; cls( 0, rgb( 31,31,31 ) ); cls( 1, rgb( 31,31,31 ) ); print( 0, 4*6, 3*12, "httpgetsub.osoをPCから取得します", 32768 ); ret = httpget( "192.168.24.99", "httpgetsub.oso", "ososcript/httpgetsub.oso", 80 ); if( ret==0 ){ print( 1, 2*60, 3*12, "取得に失敗しました", 32768 ); while( key==0 ){key = touchkey();} poweroff(); #電源オフ } exec( "httpgetsub.oso" ); }
httpgetsub.osoは、常に書き換えて使うので、PCのフォルダでは共通部分のsHTTPd.exeに設定したフォルダに置いておきます。下記がhttpgetsub.osoです。
#------------------------------------------------------- # httpgetのサブプログラム # httpget.osoによりPCからNDSに読み込まれ、実行される # 変数は12文字以下なので注意。特にロングファイル名に注意 #------------------------------------------------------- function main() { local ret; local key = 0; print( 0, 2*6, 4*12, "fifosong.ndsを取得", 32768 ); ret = httpget( "192.168.24.99", "fifosong/fifosong.nds", "fifosong.nds", 80 ); print( 0, 2*6, 5*12, "dlowari.otoを取得", 32768 ); ret = httpget( "192.168.24.99", "fifosong/dlowari.oto", "dlowari.oto", 80 ); if( ret==0 ){ print( 1, 2*6, 3*12, "取得に失敗しました", 32768 ); while( key==0 ){key = touchkey();} } poweroff(); #電源オフ }
こんな感じです。retのif文が変ですがtry{}catch{}等が使えないので勘弁してください。
このhttpgetsub.osoは、ファイル取得時に常にPCから取り込まれることになるので、取得したいファイルを、PC上でhttpgetsub.osoを編集して書き直せばいいだけです。
ファイル取り込みが、ずいぶん楽になるのではないでしょうか。
試しに、httpget( "www.geocities.jp", "momoonga/bin/ososcript003.zip", "ososcript003.zip", 80 );としてみたところ、ちゃんと、www.geocities.jp/momoonga/bin/からososcript003.zipを取得することができました。
ただし、zip解凍ツールが無いので、nds単体で展開できないのが残念ですね。どっかにソースあるかな・・・。
本当にやりたいことリスト
(ブログの終わりにやりたいことを書いておきたいと思います)
- 求職活動・・・このブログで興味を持った人一声かけてください。m(_ _)m
- Androidプログラム
- Web系のプログラム