SocketはItaで行こう


ソフトの説明

【ソフトの概要説明】
このソフトはSocket通信をデバックするツールです。
表示がラインモニター風でとても見やすいです。
シリアルはWinで行こう2のLAN版です。
Socket通信をデバックはVC++2010で構築した物です。

【画面の説明】

画面の上にはメニューバー、下にはステータスバーがあります。
メニューには下記のようになっています

<ファイル>
LOGファイルの保存
LOGファイルの読込
アプリケーションの終了

<表示>
画面クリア
スクロールアップ
スクロールダウン
最上位
最下位
HEX表示

<送信>
入力文字送信
設定文字送信
マクロ実行

<通信設定>
Port Setting
Open
Close
HostName

<環境設定>
環境設定
Setup of language

<ヘルプ>
バージョン情報
Ken-Create
ヘルプ

ステータスバーは下記のようになっています。
IPアドレスの表示
Server時は、自分のIPアドレスを表示
Client時は、接続側のIPアドレスを表示
ポート番号の表示
Server/Clientの表示
文字/HEXの表示
切り替えても次の送受信された文から表示切替します。

BufferSizeとは
送受信された文字を記憶するバッファーサイズ
(現在の書き込みポイント)/(バッファーの最大値)

Scrollとは
送受信された文字を記憶されたのを
スクロールさせて表示出来ます。
そのスクロールの位置の事。
0=スクロールなしで最下位を表示
数字が多くなるほど最上位を表示します。


画面は下記のように表示します。
送信文字と受信文字がラインモニターのようにわかりやすい表示である。
READが受信した文字でSENDが送信した文字にを表示します。

送受信文字はバッファに記憶しますが、
サイズは256×512文字記憶出来ます。
これ以上になるとバッファの半分を切捨てします。
画面に表示されるのは一部ですが
「PgUP」・「PgDn」のキーを押すとスクロールして
全バッファの文字列が表示します。





【LOGファイル】

バッファに記憶された送受信の文字列はファイルに保存出来ます。
このファイルは特殊形式で保存します。
保存したファイルはこのアプリで開いてください。




【画面スクロール】


送受信文字はバッファに記憶しますが、
サイズは256×512文字記憶出来ます。
これ以上になるとバッファの半分を切捨てします。
画面に表示されるのは一部ですが
「PgUP」・「PgDn」のキーを押すとスクロールして
全バッファの文字列が表示します。

又、メニューの項目でもスクロールします。
スクロールのチッピも下記の設定画面で変更出来ます。

100=100文字分スクロールします。
200=200文字分スクロールします。
400=400文字分スクロールします。


画面クリアを実行すると
画面もクリアされますが、バッファもクリアします。

最上位をクリックすると
バッファの最上位(一番古い文字列)へスクロールします。

最下位をクリックすると
バッファの最下位(一番新しい文字列)へスクロールします。


【通信設定】

まず、OPENさせますが、
ServerでOPENするかClientでOPENするか決めます。

Serverとは
複数の相手から接続する事。
ServerでOPENした場合、
Windowsのファイヤウォールのブロックを
解除する必要があります。

Clientとは
Server側のIPアドレスを指定して接続する事。
ClientでOPENした場合、
Server側がOPENした事を確認してから
Client側をOPENして下さい。


【Port Setting】

<IPアドレスの設定>
ClientでOPENする場合
Server側のIPアドレスを指定して下さい。
パソコンの1対1でクロスケーブルで接続する場合
IPアドレスは、192.168.*.*です。
Server側でOPENする場合は
IPアドレスの設定は不要です。

<Port番号>
空いているポートを指定して下さい。


【OPEN】

Port Settingが完了後にメニューからOPENをクリックして下さい。
接続が成功したら「Success!」とメッセージが出ます。
「Err」と表示した場合は接続に失敗した事です。

Server側では、
相手側と接続したら、接続先のIPアドレスを表示します。
下記のように[OPEN:*.*.*.*]と表示します。




【CLOSE】

メニューからCLOSEをクリックして下さい。
切断が成功したら「Success!」とメッセージが出ます。
「Err」と表示した場合は切断に失敗した事です。

Server側では、
相手側が切断したら、接続していたIPアドレスを表示します。
下記のように{CLOSE:*.*.*.*}と表示します。



【Host Name】

メニューからHostNameをクリックして下さい。
自分のIPアドレスとホスト名を表示します。




【送信】


【入力文字送信】



送信文字入力のEditBoxに文字を入れ
「ASC送信」のボタンを押せば、
入力文字をそのままASC文字で送信します。

「HEX送信」のボタンを押せば、
入力文字の2文字をHEXとして送信します。
「”」で区切っていればASC文字として認識します。
例)1:「303132」と入力した場合、「012」で送信します。
例)2:「41434445」と入力した場合、「ACDE」で送信します。
例)3:「41”123”42」と入力した場合、「A123B」で送信します。

Server側では、
複数の相手と接続れれるので、必ず送信相手先のIPアドレスを指定します。
右下のComboBoxで接続相手先を選んで下さい。

Client側では、
接続先は1つなので、送信相手先を指定する必要はありません。
右下のComboBoxで接続相手先は選べません。



【設定文字送信】



あらかじめ、mdata.txtに書かれた文字を画面に表示します。
CR・LFで区切った文字が1行になります。
1行は最大256文字です。
行は最大20行表示します。

「ASC送信」のボタンを押せば、
入力文字をそのままASC文字で送信します。

「HEX送信」のボタンを押せば、
入力文字の2文字をHEXとして送信します。
「”」で区切っていればASC文字として認識します。
例)1:「303132」と入力した場合、「012」で送信します。
例)2:「41434445」と入力した場合、「ACDE」で送信します。
例)3:「41”123”42」と入力した場合、「A123B」で送信します。

Server側では、
複数の相手と接続れれるので、必ず送信相手先のIPアドレスを指定します。
右下のComboBoxで接続相手先を選んで下さい。

Client側では、
接続先は1つなので、送信相手先を指定する必要はありません。
右下のComboBoxで接続相手先は選べません。



【マクロ実行】



マクロ文はメモ帳なのでエディターで編集します。
そのマクロのファイルを指定し、「Macro実行」の
ボタンを押します。

実行ステップに応じてSetp番号が表示します。
中断を押せば、中断されますが、
受信待機中は、受信完了するまで中断されません。


マクロ文は下記を参照して下さい。

MACRO文について
  MACROは4文字のコマンド文字とパラメーター文字により送信・受信などの
  シリアル操作を自動でできるものです。
  又、記憶できる文字列のメモリがあります。
  文字列メモリはMDATAと呼び、00〜99番地まであり、一つの番地で256文字記憶できます。
  MACRO文はCR(改行)でひとつのコマンドになっています。
  コマンド文字とパラメーター文字間にはスペースを入れて下さい。   パラメーター間もスペースを入れて下さい。

【コマント一覧表】

 <送信コマンド>
  SEND 
文字を指定してCH1で送信す

     概要:パラメーターに設定された文字を送信します。
     コマンド:SNED
     
Client側
        パラメーター:送信文字(先頭から6番めに記入)
     
Server側
        パラメーター1:接続先(0〜9を指定し先頭から5番めに記入)
        パラメーター2:送信文字(先頭から7番めに記入)

     送信文字は0〜FのHEX数値2文字で一組のASCに変換して送信します。
     文字をそのまま送るときは“ ”又は‘ ’を前後に付ければHEXでなく
     ASCそのままで送信します。
     例1 SEND 02"123455667"030D
     
Client側でパラメーター2に設定された文字「SX “123455667”EX CR」を送信します。
     例2 SEND0 02"123455667"030D
     
Server側で接続先0番目へパラメーター2に設定された文字「SX “123455667”EX CR」を送信します。


  MSED M_DATAの内容をCH1で送信する

     概要:パラメーターに設定されたMDATAの番号の文字を送信します。
     コマンド:MSED
     
Client側
        パラメーター:MDATAの番号(先頭から6番めに2文字記入
     
Server側
        パラメーター1:接続先(0〜9を指定し先頭から5番めに記入)
        パラメーター2:MDATAの番号(先頭から7番めに記入)

     例1  MOVE 00 02"ABC"030D
          MSED 00
       
Client側で、
       MDATAの番地00にパラメーター文字「SX”ABC”EX CR」をセットし,
       MDATAの00番地の文字列を送信します。
     例2  MOVE 00 02"ABC"030D
          MSED0 00
       
Server側で
       MDATAの番地00にパラメーター文字「SX”ABC”EX CR」をセットし,
       接続先0番目へ
MDATAの00番地の文字列を送信します。


 <受信コマンド>
  READ 
文字をCH1で受信してM_DATAへ格納する

     概要:このコマンドが実行されたから、受信するまで待ちつづけ、
        受信された文字は、パラメーターに設定されたMDATAの番号に格納されます。
        (このコマンドを実行された後の文字を受信します)
     コマンド:READ
     
Client側
        パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
        パラメーター2: 受信数(先頭から9番めに3文字記入)
                 受信数が設定されている数までこのコマンドは実行します。
                 受信文字を000にすると受信時間が優先になり受信時間まで
                 の文字を受信します。
        パラメーター3: 受信時間(先頭から13番めに3文字記入)
                 受信時間が設定されている時間までこのコマンドは実行します。
                 受信文字を000にすると受信時間が無効になり受信時間まで
                 の文字を受信します。
                 単位は0.1Sです。
        *パラメーター2とパラメーター3両方0のときは一回受信するまで実行します。
     
Server側
        パラメーター1:接続先(0〜9を指定し先頭から5番めに記入)
        パラメーター2: MDATAの番号(先頭から7番めに2文字記入)
        パラメーター3: 受信数(先頭から10番めに3文字記入)
                 受信数が設定されている数までこのコマンドは実行します。
                 受信文字を000にすると受信時間が優先になり受信時間まで
                 の文字を受信します。
        パラメーター4: 受信時間(先頭から14番めに3文字記入)
                 受信時間が設定されている時間までこのコマンドは実行します。
                 受信文字を000にすると受信時間が無効になり受信時間まで
                 の文字を受信します。
                 単位は0.1Sです。
        *パラメーター3とパラメーター4両方0のときは一回受信するまで実行します。

     例1  READ 00 010 100
          MSED 00
       
Client側で、
       受信数10文字又は、10.0秒まで受信待ちし、その文字列は、
       MADATAの00番地に記憶され、その文字をそのまま送信します。

     例2  READ0 00 010 100
          MSED0 00
       
Server側で、
       接続先0番目から受信数10文字又は、10.0秒まで受信待ちし、その文字列は、
       MADATAの00番地に記憶され、その文字をそのまま接続先0番目へ送信します。



<タイマーコマンド>
  TIME 
設定した時間待つ

     概要:設定された時間まで待ちつづけます。
     コマンド:TIME
     パラメーター: 待ち時間(先頭から6番めに3文字記入)
       単位は0.1Sです。

     例 SEND "123"0D
       TIME 100
       SEND "ABC"0D
       “123”を送信して10.0秒後にもう一度“ABC”を送信します。


 <比較コマンド>
  CMPM 
M_DATAとM_DATAを比較して条件ジャンプ

     概要:MDATAとMDATAの内容を比較し一致すれば指定したラベルまで飛びます。
     パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
     パラメーター2: MDATAの番号(先頭から9番めに2文字記入)
     パラメーター3: シャンプ先ラベル(先頭から12番めに3文字記入)

     例 READ 00 010 100
       MOVE 01 "123"0D
       CMPM 00 01 ABC
       SEND "NG"
       GOTO EEE
       :ABC
       SEND "OK"
       :EEE
       PEND

       受信した文字をMDATAの番地00に入れ、文字“123”+CRを
       MDATAの番地01にいれ、MDATA00とMDATA01を
       比較し一致すればラベルABCへ飛びん“OK”と送信し、一致しないときは
       次行へ行き“NG”と送信します。

  CMPL M_DATAと指定文字を比較して条件ジャンプ

     概要:MDATAとパラメーターの文字内容を比較し一致すれば指定したラベルまで飛びます。
     パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
     パラメーター2: ジャンプ先ラベル(先頭から9番めに3文字記入)
     パラメーター3: 比較文字(先頭から13番めに記入)

     送信文字は0〜FのHEX数値2文字で一組のASCに変換し、文字をその物は“ ”又は
     ‘ ’を前後に付ければよいです。
     例 READ 00 010 100
       CMPL 00 ABC "123"
       SEND "NG"
       GOTO EEE
       :ABC
       SEND "OK"
       :EEE
       PEND

      受信した文字をMDATAの番地00に入れ、MDATA00と文字“123”+CRを
      比較し一致すればラベルABCへ飛びん“OK”と送信し、一致しないときは
      次行へ行き“NG”と送信します。


 <チェックサム コマンド>
  CHKA
 M_DATAの内容をXORのチャックサムしてASCでM_DATAへ格納する

     概要:MDATAの文字をXORでチェックサムし、
        その結果MDATAにASC文字として格納します。
     パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
     パラメーター2: MDATAの番号(先頭から9番めに2文字記入)

     例 MOVE 00 "123"
       CHKA 00 01

      MDATAの番地00にパラメーター文字「”123”」をセットし、
      MDATAの番地00をチェックサムします。
      その結果をASC文字(2文字)をMDATAの番地01に格納します。
      結果としてMDATAの01番地は「“30”」になっています。

     XORとは
      スタート文字・ストップ文字を含まない送信文字をXORします。
      例)“123456”の場合
       31 XOR 32 XOR 33 XOR 34 XOR 35 XOR 36 = 07(HEX)


  CHKH M_DATAの内容をXORのチャックサムしてHEXでM_DATAへ格納する

     概要:MDATAの文字をXORでチェックサムし、
        その結果MDATAにHEX文字として格納します。
     パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
     パラメーター2: MDATAの番号(先頭から9番めに2文字記入)

     例 MOVE 00 "123"
       CHKA 00 01

      MDATAの番地00にパラメーター文字「”123”」をセットし、
      MDATAの番地00をチェックサムします。
      その結果をHEXC文字(1文字)をMDATAの番地01に格納します。
      結果としてMDATAの01番地は「“0”」になっています。

     XORとは
      スタート文字・ストップ文字を含まない送信文字をXORします。
      例)“123456”の場合
       31 XOR 32 XOR 33 XOR 34 XOR 35 XOR 36 = 07(HEX)


 <制御コマンド>
  GOTO
 ジャンプ命令

    概要:パラメーターにかかれたラベルまで飛びます。
    コマンド:GOTO
    パラメーター: ジャンプ先ラベル(先頭から6番めに3文字記入)
           ラベルはASC文字です。

     例 GOTO ABC
       TIME 100
       :ABC
       PEND

     TIMEコマンドを実行せず、ラベルABC(:ABC)まで
     飛んで終了します。


  PEND マクロ終了命令

    概要:この自動送受信マクロを終了させます。
    コマンド:PEND

     例 PEND

     この自動送受信モードを終了させ「MACROが終了しました。」と
     メッセージBOXが出ます。


 <文字列制御コマンド>
  MOVE 
指定した文字列をM_DATAへ格納する

    概要:MDATAに文字をセットします。
    パラメーター1: MDATAの番号(先頭から6番めに2文字記入)
    パラメーター2: 文字(先頭から9番めに記入)

     例 MOVE 00 02"ABC"030D
       MSED 00

     MDATAの番地00にパラメーター文字「SX”ABC”EX CR」をセットし,
     MDATAの00番地の文字列を送信します。


  MADD M_DATAの文字とM_DATA文字を加算する

    概要:MDATAとMDATAの文字を加算します。
    パラメーター1: MDATAの番号(先頭から6番めに2文字記入)加算先
    パラメーター2: MDATAの番号(先頭から9番めに2文字記入)加算元

     例 MOVE 00 "ABC"
       MOVE 01 "123"
       MADD 00 01

     MDATAの番地00にパラメーター文字「”ABC”」をセットし、
     MDATAの番地01にパラメーター文字「”123”」をセットし、
     MDATAの番地00の最終文字からMDATAの番地01の文字を加算します。
     結果としてMDATAの00番地は「“ABC123”」になっています。


  MMID M_DATAの文字の中から指定した文字を取りだしてM_DATAへ格納

    概要:MDATAの中から先頭から何文字目から何文字分をMDATAへ格納します。
    パラメーター1: MDATAの番号(先頭から6番めに2文字記入)元のDATA
    パラメーター2: 先頭文字を指定する2桁の数値(先頭から9番めに2文字記入)
    パラメーター3: 取得する文字数を指定する2桁の数値(先頭から12番めに2文字記入)
    パラメーター4: MDATAの番号(先頭から9番めに2文字記入)格納先

     例 MOVE 00 "1234567890"
       MMID 00 03 04 01

     MDATAの番地00にパラメーター文字「”1234567890”」をセットし、
     MDATAの番地00の文字の先頭から3番目から4文字分をMDATAの番地01へ
     コピーします。
     結果としてMDATAの01番地は「“4567”」になっています。


  MINC M_DATAの文字を10進法でインクリメントする

    概要:MDATAの数文字を10進法でインクリメントします。
    パラメーター1: MDATAの番号(先頭から6番めに2文字記入)

     例 MOVE 00 "000"
       MINC 00

     MDATAの番地00にパラメーター文字「”000”」をセットし、
     MDATAの番地00をインクリメントします。
     結果としてMDATAの00番地は「“001”」になっています。


  HINC M_DATAの文字を16進法でインクリメントする

    概要:MDATAの数文字を16進法でインクリメントします。
    パラメーター1: MDATAの番号(先頭から6番めに2文字記入)

     例 MOVE 00 "000"
       MINC 00

     MDATAの番地00にパラメーター文字「”000”」をセットし、
     MDATAの番地00をインクリメントします。
     結果としてMDATAの00番地は「“001”」になっています。


  MCLR M_DATAをクリアする

    概要:M DATAを内容をクリアします。
    (M DATAとは文字列を記憶するメモリの事)
    パラメーター1: メモリ番号00〜99(先頭から6番め2文字記入)

     例 MCLR 05

      この行を実行されたとき M DATAの05の内容をクリアします。
     備考 M DATAの詳細について
      M DATAのメンバーは下記の内容があります。
      1・256文字の入る文字列
      2・その文字の文字数が入る数値
      *制御文字を使用するため、文字数を指定します。


 <ラベル>
  ラベル 
ジャンプの飛び先

    概要:GOTOやCMPM・CMPLのジャンプ先に使うラベルに使用します。
    書式:「:」を先頭に書きその後ろ3文字がラベルになります。

        例 :ABC


 <記憶メモリ>
  M DATA 
文字列を格納するエリア

       文字列を記憶するメモリでM DATAと呼びます。
    概要:
    文字を記憶するためのメモリで、00〜99の100個あります。
    ひとつのメモリで256文字分の文字が記憶できます。
    使用するコマンド
    MSED・READ・ZRED・CMPM・CMPL・MOVE・MINC・HINC・CHKA・CHKH




【環境設定】


【環境設定】

1・スクロールの幅の変更
これはスクロールの文字数を設定します。


【Set of Language】


これは言語の設定です。

メニューやボタン等の文字を以下の言語に変更します。

日本語
英語
韓国語
中国語(簡体語)




【ダウンロード】


ダウンロードページへ移行




戻る