ssterm
文件大小: unknow
源码售价: 5 个金币 积分规则     积分充值
资源说明:A simple console-based serial port terminal, written in Python.
# ssterm [![Build Status](https://travis-ci.org/vsergeev/ssterm.svg?branch=master)](https://travis-ci.org/vsergeev/ssterm) [![GitHub release](https://img.shields.io/github/release/vsergeev/ssterm.svg?maxAge=7200)](https://github.com/vsergeev/ssterm) [![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://github.com/vsergeev/ssterm/blob/master/LICENSE)

ssterm is a simple console-based serial port terminal featuring painless serial
port configuration, no dependencies outside of a standard Python 2 or 3
installation, and a variety of useful formatting options:

* output modes
  * raw
  * hexadecimal
  * hexadecimal/ASCII split
* input modes
  * raw
  * hexadecimal
* transmit newline remapping (e.g. system newline -> CRLF)
* receive newline remapping (e.g. CRLF -> system newline)
* character color coding
* local character echo

## Installation

With pip:

```
pip install ssterm
```

With file:

```
wget https://github.com/vsergeev/ssterm/raw/master/ssterm.py -O ssterm
chmod +x ssterm
```

## Usage

```
Usage: ./ssterm [options] 

ssterm - simple serial-port terminal
https://github.com/vsergeev/ssterm

Serial Port Options:
  -b, --baudrate          Specify baudrate: e.g. 9600, 115200, etc.
  -d, --databits        Specify number of data bits: 5, 6, 7, 8
  -p, --parity            Specify parity: none, odd, even
  -t, --stopbits        Specify number of stop bits: 1, 2
  -f, --flow-control      Specify flow control: none, rtscts, xonxoff

Output Formatting Options:
  -o, --output            Specify output mode
                                  raw       raw (default)
                                  split     hex./ASCII split
                                  splitfull hex./ASCII split with full lines
                                  hex       hex.
                                  hexnl     hex. with newlines

  --rx-nl         Enable substitution of the specified newline
                                for the system's newline upon reception
                                  cr, lf, crlf, crorlf

  -c, --color             Specify comma-delimited list of characters in
                                ASCII or hex. to color code: A,$,0x0d,0x0a,...

Input Formatting Options:
  -i, --input             Specify input mode
                                  raw       raw (default)
                                  hex       hex. interpretation

  --tx-nl         Enable substitution of the system's newline
                                for the specified newline upon transmission
                                  none, cr, lf, crlf

  -e, --echo                    Enable local character echo

Miscellaneous:
  -h, --help                    Display this usage/help
  -v, --version                 Display the program's version

Quit Escape Character:          Ctrl-]

Default Options:
 baudrate: 115200 | databits: 8 | parity: none | stopbits: 1 | flowctrl: none
 output mode: raw | rx newline: raw | color code: none
 input mode: raw  | tx newline: raw | local echo: off
```

#### Defaults

ssterm opens the specified serial port with the default settings of 115200
baudrate, 8 data bits, no parity, 1 stop bit, and no flow control. These serial
port settings can be configured with the `-b, --baudrate`, `-d, --databits`,
`-p, --parity`, `-t, --stopbits`, and `-f, --flow-control` options.

Ctrl-] is ssterm's quit escape character.

#### Output Options

The `-o, --output` option selects the output mode. In the default `raw` output
mode, received characters are written directly to standard output. In `hex`
output mode, received characters are printed as hexadecimal bytes. In `hexnl`
output mode, received characters are printed as hexadecimal bytes, but newlines
are also interpreted and produce line breaks in the output. In `split` output
mode, received characters are printed in both hexadecimal and ASCII in two
columns, like hexdump's canonical output. `splitfull` output mode functions
like `split` mode, except that it only prints full lines, whereas `split` mode
redraws partial lines as additional bytes are received.

The `--rx-nl` receive newline substitution option enables substituting the
specified newline for the system newline before printing. For example, `--rx-nl
crlf` will substitute any CRLF sequence received for the system's newline (e.g.
LF on Linux) before printing. Receive newline substitution is disabled by
default.

The `-c, --color` option enables color coding the specified comma-delimited
list of characters. The list can contain ASCII characters (e.g. `a,$,A,...`),
as well as hexadecimal bytes (e.g. `0x0a,0xff,...`). Up to seven distinct
colors are assigned sequentially to the specified characters, in the order of:
(Foreground/Background) Black/Red, Black/Green, Black/Yellow, White/Blue,
White/Magenta, Black/Cyan, Black/White.

#### Input Options

The `-i, --input` option selects the input mode. In the default `raw` input
mode, all input characters and control signals are written directly to the
serial port. In the `hex` input mode, consecutive hexadecimal pairs are
converted to bytes and written to the serial port. For example, all four
sequences `aa 55 ee ff`, `0xaa 0x55 0xee 0xff`, `AA,55,EE,FF`, `aa55eeff` will
write the same four bytes (0xaa, 0x55, 0xee, 0xff) to the serial port in the
`hex` input mode.

The `--tx-nl` transmit newline substitution option enables substituting the
system newline for the specified newline before transmission. For example,
`--tx-nl crlf` will substitute the system's newline for a CRLF sequence before
it is written to the serial port. Transmit newline substitution is disabled by
default.

The `-e, --echo` option enables local character echo. Local character echo is
disabled by default.

## Examples

Typical usage with defaults (115200 8N1, no flow control):

    $ ssterm /dev/ttyUSB0

Logging some data:

    $ ssterm /dev/ttyUSB0 > nmea_data.txt

Viewing and logging some data, with the help of tee:

    $ ssterm /dev/ttyUSB0 | tee nmea_data.txt

Piping some data to the serial port, substituting the system newline for CRLF
on transmission:

    $ cat data.txt | ssterm --tx-nl crlf /dev/ttyUSB0

Specific serial port settings (9600 baudrate, odd parity, 2 stop bits), and the
default 8 data bits:

    $ ssterm -b 9600 -p odd -t 2 /dev/ttyUSB0

Substitute the system newline for CRLF on transmission, substitute CRLF for system
newline on reception:

    $ ssterm --tx-nl crlf --rx-nl crlf /dev/ttyUSB0

Raw output mode:

    $ ssterm /dev/ttyUSB0
    $GPGGA,082830.821,,,,,0,00,,,M,0.0,M,,0000*5C
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,082830.821,V,,,,,,,261009,,*29
    $GPGGA,082831.814,,,,,0,00,,,M,0.0,M,,0000*5B
    $GPGSA,A,1,,,,,,,,,,,,,,,*1E
    $GPRMC,082831.814,V,,,,,,,261009,,*2E
    $GPGGA,08

Hexadecimal output mode:

    $ ssterm -o hex /dev/ttyUSB0
    24 47 50 47 47 41 2c 30  38 32 38 33 30 2e 38 32
    31 2c 2c 2c 2c 2c 30 2c  30 30 2c 2c 2c 4d 2c 30
    2e 30 2c 4d 2c 2c 30 30  30 30 2a 35 43 0d 0a 24
    47 50 47 53 41 2c 41 2c  31 2c 2c 2c 2c 2c 2c 2c
    2c 2c 2c 2c 2c 2c 2c 2c  2a 31 45 0d 0a 24 47 50
    52 4d 43 2c 30 38 32 38  33 30 2e 38 32 31 2c 56
    2c 2c 2c 2c 2c 2c 2c 32  36 31 30 30 39 2c 2c 2a
    32 39 0d 0a 24 47 50 47  47 41 2c 30 38 32 38 33
    31 2e 38 31 34 2c 2c 2c  2c 2c 30 2c 30 30 2c 2c
    2c 4d 2c 30 2e 30 2c 4d  2c 2c 30 30 30 30 2a 35
    42 0d 0a 24 47 50 47 53  41 2c 41 2c 31 2c 2c 2c
    2c 2c 2c 2c 2c 2c 2c 2c  2c 2c 2c 2c 2a 31 45 0d
    0a 24 47 50 52 4d 43 2c  30 38 32 38 33 31 2e 38
    31 34 2c 56 2c 2c 2c 2c  2c 2c 2c 32 36 31 30 30
    39 2c 2c 2a 32 45 0d 0a  24 47 50 47 47 41 2c 30
    38 

Split output mode:

    $ ssterm -o split /dev/ttyUSB0
    4c 6f 72 65 6d 20 69 70  73 75 6d 20 64 6f 6c 6f  |Lorem ipsum dolo|
    72 20 73 69 74 20 61 6d  65 74 2c 20 63 6f 6e 73  |r sit amet, cons|
    65 63 74 65 74 75 72 20  61 64 69 70 69 73 69 63  |ectetur adipisic|
    69 6e 67 20 65 6c 69 74  2c 20 73 65 64 20 64 6f  |ing elit, sed do|
    20 65 69 75 73 6d 6f 64  20 74 65 6d 70 6f 72 20  | eiusmod tempor |
    69 6e 63 69 64 69 64 75  6e 74 20 75 74 20 6c 61  |incididunt ut la|
    62 6f 72 65 20 65 74 20  64 6f 6c 6f 72 65 20 6d  |bore et dolore m|
    61 67 6e 61 20 61 6c 69  71 75 61 2e 0a 55 74 20  |agna aliqua..Ut |
    65 6e 69 6d 20 61 64 20  6d 69 6e 69 6d 20 76 65  |enim ad minim ve|
    6e 69 61 6d 2c 20 71 75  69 73 20 6e 6f 73 74 72  |niam, quis nostr|
    75 64 20 65 78 65 72 63  69 74 61 74 69 6f 6e 20  |ud exercitation |
    75 6c 6c 61 6d 63 6f 20  6c 61 62 6f 72 69 73 20  |ullamco laboris |
    6e 69 73 69 20 75 74 20  61 6c 69 71 75 69 70 20  |nisi ut aliquip |
    65 78 20 65 61 20 63 6f  6d 6d 6f 64 6f 20 63 6f  |ex ea commodo co|
    6e 73 65 71 75 61 74 2e  0a 44 75 69 73 20 61 75  |nsequat..Duis au|
    74 65 20 69 72 75 72 65  20 64 6f 6c 6f 72 20 69  |te irure dolor i|
    6e 20 72 65 70 72 65 68  65 6e 64 65 72 69 74 20  |n reprehenderit |
    69 6e 20 76 6f 6c 75 70  74 61 74 65 20 76 65 6c  |in voluptate vel|
    69 74 20 65 73 73 65                              |it esse         |

Split output mode and character color coding:

    $ ssterm -o split -c 0x0A,{,g,0xAE /dev/ttyUSB0

![](misc/screenshot1.png)

Hexadecimal with newline interpretation output mode and character color coding:

    $ ssterm -o hexnl -c $,0x0a,0x0d /dev/ttyUSB0

![](misc/screenshot2.png)

## LICENSE

ssterm is MIT licensed. See the included `LICENSE` file.


本源码包内暂不包含可直接显示的源代码文件,请下载源码包。