http://sdg.ex-group.jp/lua.htmlをまず見てね!内部処理を文字列で行うのか?テーブルで行うのか?どっちが得なんだよ!って事でテーブルで処理する事とします。なんかあれですね、ファイル書き込みにappendモードが無いので受信データを一旦全部テーブルに保存している訳です。ファイル受信試験で数十kbyteのファイルはイイですが、ちょっと大きな、と言っても4Mbyte程度のjpgですがね、メモリが足りなくなってスクリプトの実行エラーが起きますね。同じJPGファイルの送信時には発生しないのは謎ですね。あとあれですね、全体的に転送が重いので、細かく多量の処理をするのではなく、こうまとまった受信データをいっきに処理したい場合は、内部プログラム受信バッファサイズを大きくとってしまいましょう!と言う話でやんす。typeを指定していろいろなファイルの転送を可能とします。これにより、ブラウザの左上にfaviconが表示されるようになったり、CSVファイルのダウンロードなんかもできますね。http://sdg.ex-group.jp/lua.htmlをまず見てね!と言う訳で先人の知恵を借りて、文字列で処理をする事に。すれば変数がテーブルなのか?文字列なのか?それとも他の型なのか判らなくなってくるので、変数名、、、。GETのスクリプトをまず改造してみる。今回はファイルパスを検索するのに連想配列を使う。ファイルの追加は容易になると思う。上手く書ける気がする。文字列で処理した方がお得なのか?、テーブルで処理した方がお得なのか?、、、悩みますな。Debugger上に構築してブラウザからアクセスしてみた様子。内容はindex.htmlファイルとしてディスク上に保存、それを読み出す。PCのブラウザとのやり取りの様子。※もう少し上手く書ける気がする。Clienteとして動作させてみます。Clienteの例題を流用してみます。言ってもスクリプトは非常に簡単ですがね。取得したHTTP文はファイルに保存します。今回はポート1を使います。通信設定->接続:TCPクライアント動作とします。相手先アドレスが判らなくても右横の...ってボタンをクリックすればhost名で入力できますから。通信設定->動作:スクリプトで動かします。受信したデータをファイル化し、ブラウザで表示してみました。HTML文の前にHTTPの応答文が入っています。Webサーバーとのやり取りです。Webサーバーはリクエストに答えると、基本切断して来ることが判ります。今回作成したスクリプトです。作成したところのみを掲載しています。http://sdg.ex-group.jp/lua.htmlをまず見てね!※SokcetDebuggerはビット演算を行う拡張関数が有りました!通信で値を集めたレコードを送受信したい等という事はよくある要求じゃあないですか、特に業務辺りなら。レコード、C言語であれば構造体に値を代入してまるっと投げちゃうあれができるかどうかをやってみます。送信処理のところを以下にしてみます。なるのか?うーむ、最初の6個のデータはbyte型として送られ、浮動小数点型は0しか送られず、それ以降のデータは削除のようです。LANアナライザー上でも7byteしか認められません。DebuggerでサポートしているLuaのver.5.1では数値は実数(double)であり、大きな数値ほど誤差が大きくなる。言うか変数をネットワーク上に流すためにbyteデータに変換しようとしても正確に変換できない。tblendさらにLuaのver.5.1ではビット演算子もシフト演算子もサポートしていないもの痛い。Luaのver.5.3では64bit整数もビット演算子もサポートされている様な気がする。ひとつは整数で、もうひとつは浮動小数点数です。そのためプログラマは整数と浮動小数点数の違いをほとんど無視することもできますし、各数値の表現について完全に制御を握ることもできます。ビット演算子ビット演算子には以下のものがあります。参照)、その整数の全ビットを演算し、結果を整数で返します。右シフトと左シフトは両方とも、空いたビットをゼロで埋めます。変位に負の値を指定すると逆方向にシフトします。(すべてのビットが追い出されます)。http://sdg.ex-group.jp/lua.htmlをまず見てね!前回ではタイマーを使って半自動化を行いましたが、今回はローカル(127.0.0.1)相手ではなく自作したネットワークデバイスを相手にして、タイマー周期を短くしてみました。)200ms周期くらいまでは比較的ちゃんと動いていたような気がしますが、100ms周期となると結構厳しい感じで、処理が遅れている様子が見て取れます。この図では送信パケットのデータサイズが毎回1024byteであるのに対して受信パケットのサイズが1024以外の値を示す事が頻発します。停止ボタンなども効き辛くちょっと暴走気味です。192.168.50.21が相手デバイスで、192.168.50.254がPCです。LANアナライザーでは送受信ともに1024byteで行われています。これはSocketDebuggerか?、OSか?どちらかの内部処理の遅延が原因なのか、受信バッファの内容を複数パケット分処理している為に起きていると思われます。何かしら限界も有るという事で、その辺も踏まえて使う必要が有るんじゃないかと。※Windowを最小化して動かしている間は、タスクマネージャーのCPU負荷率はだいぶ減るので、可能ならばそれも有りなんではないかな。http://sdg.ex-group.jp/lua.htmlをまず見てね!前回ではぽちぽちボタンを押すと言うアナログな送信でしたが、今回はタイマーを使って半自動化を行います。OnConnected()を以下の様に改造します。現在のタイマーの状態を保持する変数の生成と初期化です。OnSendPush()を以下の様に改造します。ここでは送信は行わず、タイマーの制御を行います。OnTimer(id)を以下の様に改造します。0end成功しているようです。http://sdg.ex-group.jp/lua.htmlをまず見てね!前回では送信データは送信データエディタ上のデータを使っていましたが、今回は自分でデータを作成して送信、受信、比較を行います。データはランダムな値です。OnSendPush()を以下の様に改造します。0end成功しているようです。最近のコメントこんなものでよろしければ。場合..ありがとうございます。Electronicsアットマークエレ不要なデバイスドライバーを削除ダウンロードInterface付属SH2基板のSRAM有り/無しデバックモニタとHOS-V4同梱バージョンHOS本のサンプルをH8/3048Fでデバックする為のデバックモニタH8/3048Fのセクション情報ファイルインポートして使います。