シリアル通信ソフト

シリアル通信ソフトepiconとは

  • epiconはLinuxのシリアル通信ソフトです。

  • 実践IOTハウスでは、Raspberry PiのUSB接続ToCoStick(トコスティック)からシリアル通信でTOCOS TWE-Liteで温湿度計AM2321センサーやAI・DIOを制御に使っています。

  • SwitchやRouterなどシリアルポートでとコンソールPCでConfig設定するネットワーク機器はメーカーや機種を問わず使えると思います。

  • Cisco製SwitchやRouterは設定を自動化する際、事前に作成したテキストデーターをコピー&ペーストして、コンフィグの流し込みを行います。
    この時文字と改行の送出ディレィを行いコンフィグデーターの取りこぼしを防ぐことが重要です。

  • このシリアルコンソールとして重要な文字と改行の送出ディレイをepiconはサポート、コンフィグを安心してコピー&ペーストが出来ます。

  • この他、簡易telnet、zmodemなどのファイル転送ソフト、shell、マクロ、外部ソフトの起動などCUIだが多機能でコンパクトな作りとなっています。

  • インストール
    Download
    https://osdn.net/projects/pepolinux/releases/p3211

    1
    2
    3
    4
    5
    6
    7
    # tar xvfz epicon-XX.XX.tar.gz
    # cd epicon
    # ./configure
    # make
    # make install
    uninstall
    # make uninstall
  • 使い方

    • 起動、オプションなし(com1:/dev/ttys0ポート、9600bps、8bitノンパリティ)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      # epicon

      ** Welcome to epicon Version-5.2 Copyright Isamu Yamauchi compiled:Feb 24 2021 **
      exec shell ~!
      send binary files ~f
      send break ~b
      call rz,sz,sx,rx ~rz,~sz,~sx,~rx
      call kermit ~sk,~rk
      external command ~C
      change speed ~c
      exit ~.
      Connected /dev/ttyS0
    • 終了方法
      Enter~.
    • 通信状態->shellへ->コマンド入力->exitで元の通信状態に戻る
      Enter~!
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
        epicon wait
      # ls
      AUTHORS README configure.ac install-sh
      COPYING aclocal.m4 depcomp missing
      ChangeLog autom4te.cache epicon.c patch-gkermit1.0+counter-CentOS4.2
      INSTALL config.h epicon.h patch-gkermit1.0+counter1.2.1
      Makefile.am config.h.in epicon.nr sample.scr
      Makefile.in config.status epicon_main.c stamp-h1
      NEWS configure epicon_uty.c
      # exit
      epicon run
    • Switchの設定、オプションあり(/dev/ttyUSB0,19200bps,キャラクタディレイ:30ms,CRディレイ:50ms)大昔の経験で、これ位のディレイを設定するとコンフィグの取りこぼしが起こらない。
      1
      # epicon -d 30 -D 50 -s 19200 -l /dev/ttyUSB0
    • Switchの設定、オプションあり(telnet,キャラクタディレイ:20ms,CRデレイ:50ms)
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      16
      # epicon -d 20 -D 50 -n 192.168.0.1:23

      ** Welcome to epicon Version-5.2 Copyright Isamu Yamauchi compiled:Feb 24 2021 **
      exec shell ~!
      send binary files ~f
      send break ~b
      call rz,sz,sx,rx ~rz,~sz,~sx,~rx
      call kermit ~sk,~rk
      external command ~C
      change speed ~c
      exit ~.

      Telnet Server 1.10 All rights reserved.


      login :
    • “-c”オプション:外部スクリプトの指定
      • mono-wireless無線モジュールTWELITEとMONOSTICKで温湿度計AM2321センサー、アナログ入力、デジタル入出力信号を離れた場所から遠隔監視・制御がするプログラム pepotocsctlで使用しています。twelite_dip_monostick
      • 以下は、AM2321センサーから温湿度を読み取るスクリプトを作成してepiconを起動します。
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        17
        18
        19
        20
        21
        22
        23
        24
        25
        26
        # /usr/local/bin/epicon -s 115200 -ql /dev/ttyUSBTWE-Lite -c $CMD
        # cat $CMD
        #!/bin/bash
        RETRY=5
        I2CRD="-1"
        while [ ${RETRY} -ne 0 ];do
        retry_time=`echo -en $RANDOM |cut -c 1-2`
        echo -en ":7888AA015C0000X\r\n"
        msleep 50
        read -s -t 1 I2CRD || I2CRD="-1"
        echo -en ":7888AA015C03020004X\r\n"
        msleep 50
        read -s -t 1 I2CRD || I2CRD="-1"
        msleep
        echo -en ":7888AA025C0006X\r\n"
        msleep 50
        read -s -n 28 -t 1 I2CRD || I2CRD="-1"
        TMP=`echo -en ${I2CRD} | wc -c`
        [ ${TMP} -eq 28 ] && break
        RETRY=$((${RETRY} - 1))
        [ ${RETRY} -eq 0 ] && break
        RETRY=$((${RETRY} - 1))
        msleep $retry_time
        I2CRD="-1"
        done
        echo -en ${I2CRD} >/dev/stderr
  • マニュアル抜粋

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    # man epicon

    epicon(1) epicon Manuals

    NAME
    epicon is Easy Personal Interface Console terminal software. First I
    am sorry. Because my English linguistic power is very shabby, this sen‐
    tence is being translated by the machine. Because of that, read it in
    the interpretation which it is tolerant of though it thinks that it is
    a little funny translation.

    SYNOPSIS
    usage:
    epicon [-options [argument] [-options [argument]]
    [-b ] <--escape cannot be used
    [-c external_command]
    [-d send_charcacter_delay(ms)]
    [-D send_CR_delay(ms)]
    [-e escape_char]
    [-f send_file]
    [-F send_file_effective_delay]
    [-m ] <--input echo mode
    [-M ] <--line mode
    [-l com_port]
    [-L output_log_file]
    [-n ip_address[:port]]
    [-p [server_port]]
    [-q ] <--quiet mode
    [-s speed]
    [-v ] <--show version
    [-x bit_length (5|6|7) parity(o|e|n) stop_bit (1|2)]
    [-z ] <--auto rz prohibition

    defaults:
    speed: 9600b/s (Higest of 460800)
  • Please check the source code below
    https://github.com/kujiranodanna/IOT-House/tree/master/raspberrypi/usr/src/epicon