コンピュータを楽しもう!!

今、自分が面白くていろいろやってみたことを書き綴りたいと思います。連絡先はtarosa.yでgmail.comです。

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系のプログラム