Luaスクリプト対応計算機 - sancy -

最終更新 2012-02-04

絵


************************************************************************

 Luaスクリプト対応計算機 - sancy -
                                        Copyright (c) 2011. 2012. Janus

************************************************************************

--------------------------------
. はじめに
--------------------------------

     sancy は Lua スクリプトを搭載した計算機です。計算機なのに
    加減乗除ぐらいしかできません。そのくせ通信なんかが行えたりします。

    【アーカイブ内容】
    sancy.exe : プログラム
    sancy.txt : ヘルプファイル


--------------------------------
. 取り扱い説明
--------------------------------

    Luaスクリプト内で下記関数を用いることが可能です。
    スクリプトはグローバルテーブル変数 arg にて自身のスクリプトファイルパス名と
    引数情報が参照可能です。


    ・シリアル通信の開始

        <書式> sci.start(ポート, 速度, データビット長,
                           パリティ, ストップビット, エラー制御)

        <引数>
            ポート          : COMのポート番号を指定します。
            速度            : 通信速度(bps)を指定します。
            データビット長  : データビットの長さを指定します。
            パリティ        : 次の何れかを指定します。
                                0 ... none
                                1 ... even
                                2 ... odd
            ストップビット  : 次の何れかを指定します。
                                0 ... 1bit
                                1 ... 2bit
                                2 ... 1.5bit
            エラー制御      : 次の何れかを指定します。
                                0 ... Xon/Xoff
                                1 ... H/W
                                2 ... none

        <戻り>
            true            : 成功
            false           : 失敗

        <概要>
            COMポートを初期化し、通信可能な状態にします。


    ・シリアル通信の終了

        <書式> sci.stop()

        <引数>
            なし

        <戻り>
            なし

        <概要>
            COMポートの使用を終了します。


    ・COMポートからの文字列受信

        <書式> sci.read(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            COMポートから受信したデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・COMポートからの1行受信

        <書式> sci.read_line(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            COMポートから受信した LF までのデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。

    ・COMポートからのデータ受信

        <書式> sci.read_table(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信データテーブル

        <概要>
            COMポートから受信したデータをテーブルとして返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・COMポートからのデータ送信

        <書式> sci.write(データ)

        <引数>
            データ          : 送信データ(数値, 文字列, テーブル)

        <戻り>
            なし

        <概要>
            COMポートからデータを送信します。


    ・TCPパケット通信の開始

        <書式> tcp.start(ホスト, ポート, サーバー, 共有)

        <引数>
            ホスト      : [C];接続先ホスト名を文字列で指定します。
            ポート      : [C]:接続先ポート番号を指定します。
                          [S]:待機するポート番号を指定します。
            サーバー    : 次の何れかを指定します。
                            0 ... クライアント動作
                            1 ... サーバー動作
            共有        : 次の何れかを指定します。
                            0 ... ポート共有しない
                            1 ... ポート共有する

        <戻り>
            true            : 成功
            false           : 失敗

        <概要>
            TCPパケット通信を開始します。


    ・TCPパケット通信の終了

        <書式> tcp.stop()

        <引数>
            なし

        <戻り>
            なし

        <概要>
            TCPパケット通信を終了します。


    ・TCPパケット通信からの文字列受信

        <書式> tcp.read(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            TCPパケット通信から受信したデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・TCPパケット通信からの1行受信

        <書式> tcp.read_line(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            TCPパケット通信から受信した LF までのデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。

    ・TCPパケット通信からのデータ受信

        <書式> tcp.read_table(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信データテーブル

        <概要>
            TCPパケット通信から受信したデータをテーブルとして返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・TCPパケット通信からのデータ送信

        <書式> tcp.write(データ)

        <引数>
            データ          : 送信データ(数値, 文字列, テーブル)

        <戻り>
            なし

        <概要>
            TCPパケット通信からデータを送信します。


    ・UDPパケット通信の開始

        <書式> udp.start(ホスト, 待機ポート, 接続ポート, モード)

        <引数>
            ホスト      : 接続先ホスト名を文字列で指定します。
            待機ポート  : 待機ポート番号を指定します。
            接続ポート  : 接続ポート番号を指定します。
            モード      : 次の何れかを指定します。
                            0 ... 通常
                            1 ... ブロードキャスト
                            2 ... マルチキャスト

        <戻り>
            true            : 成功
            false           : 失敗

        <概要>
            UDPパケット通信を開始します。


    ・UDPパケット通信の終了

        <書式> udp.stop()

        <引数>
            なし

        <戻り>
            なし

        <概要>
            UDPパケット通信を終了します。


    ・UDPパケット通信からの文字列受信

        <書式> udp.read(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            UDPパケット通信から受信したデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・UDPパケット通信からの1行受信

        <書式> udp.read_line(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信文字列

        <概要>
            UDPパケット通信から受信した LF までのデータを文字列として返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。

    ・UDPパケット通信からのデータ受信

        <書式> udp.read_table(タイムアウト)

        <引数>
            タイムアウト    : 受信タイムアウト時間(msec)

        <戻り>
            受信データテーブル

        <概要>
            UDPパケット通信から受信したデータをテーブルとして返します。
            タイムアウト時間内にデータを受信出来なかった場合、nil を返します。


    ・UDPパケット通信からのデータ送信

        <書式> udp.write(データ)

        <引数>
            データ          : 送信データ(数値, 文字列, テーブル)

        <戻り>
            なし

        <概要>
            UDPパケット通信からデータを送信します。


    ・文字の入力ダイアログ表示

        <書式> eui.input([タイトル [, 初期値]])

        <引数>
            タイトル    : ダイアログのタイトルを指定します。
            初期値      : 入力文字の初期値を指定します。

        <戻り>
            結果        : 操作結果を boolean で返します。
            入力文字列  : 入力文字列を返します。

        <概要>
            入力用ダイアログボックスを表示します。ダイアログボックスには
            ファイル選択ボタンとディレクトリ選択ボタンが付加されています。


    ・色選択ダイアログの表示

        <書式> eui.color([初期色値])

        <引数>
            初期値      : 色情報(RGB)を数値で指定します。

        <戻り>
            結果        : 操作結果を boolean で返します。
            色情報      : 選択した色情報を数値で返します。

        <概要>
            色選択用ダイアログボックスを表示します。


    ・外部フィルターの実行

        <書式> eui.execute(実行ファイル)

        <引数>
            実行ファイル    : 実行ファイルのパスを文字列で指定します。

        <戻り>
            実行ファイルのコンソール出力結果文字列を返します。

        <概要>
            実行ファイルを実行します。戻りには終了コードではなく
            実行ファイルが出力した文字列となります。


    ・環境変数の設定

        <書式> eui.putenv(文字列)

        <引数>
            文字列      : "ENV=値" の形で文字列を指定します。

        <戻り>
            結果        : 設定結果を boolean で返します。

        <概要>
            環境変数を登録します。


    ・ビット演算

        <書式> eui.bit_and(値 [,値]+)
        <書式> eui.bit_or(値 [,値]+)
        <書式> eui.bit_xor(値 [,値]+)
        <書式> eui.bit_shift((0|1), 値)

        <戻り>
            ビット操作の結果を数値で返します。

        <概要>
            各種ビット操作を行います。シフト操作の第1引数は0の場合、
            左シフト, 1の場合右シフトとなります。


--------------------------------
. 動作環境
--------------------------------

    Windows7(64bit)の動作する環境で確認しています。


--------------------------------
. 配布条件等
--------------------------------

    ・フリーソフトウェアです。配布する際はアーカイブのまま行ってください。
    ・バージョン情報は実行ファイルのプロパティにて確認できます。
    ・連絡先 mailto:janus@fj8.so-net.ne.jp
    ・ホームページ http://www002.upp.so-net.ne.jp/janus/
    ・本ソフトウェアは技術的制限手段を違法に回避するものではありません。
    ・本ソフトウェアはスクリプト Lua 5.2 を組み込んでいます。


--------------------------------
. License for Lua 5.0 and later versions
--------------------------------

    Copyright(c) 1994-2011 Lua.org, PUC-Rio.

    Permission is hereby granted, free of charge, to any person obtaining a
    copy of this software and associated documentation files (the "Software"),
    to deal in the Software without restriction, including without limitation
    the rights to use, copy, modify, merge, publish, distribute, sublicense,
    and/or sell copies of the Software, and to permit persons to whom the
    Software is furnished to do so, subject to the following conditions:

    The above copyright notice and this permission notice shall be included
    in all copies or substantial portions of the Software.

    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
    OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
    THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
    FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
    DEALINGS IN THE SOFTWARE.


--------------------------------
. 著作権・免責
--------------------------------

    ・本ソフトウェアに関する著作権は Janus が保有します。
    ・本ソフトウェアを使用した上で生じた損害について Janus は一切責任を
      負いません。
    ・本ソフトウェアの保守を行う義務を Janus は負いません。
    ・製品名などは、各社の商標・登録商標です。


--------------------------------
. 変更履歴
--------------------------------

1.01 11/04/19   ・リリース
1.02 12/02/01   ・Lua 5.2 に対応


戻る