Metadata-Version: 2.4
Name: kikaiken-stterm
Version: 1.3.0
Summary: STM32向けシリアル通信ターミナル。ST-Link自動検出・リアルタイムCSVグラフ化・ROS2対応。
Author-email: mugi2525 <2525tarotaro@gmail.com>
License: MIT
Project-URL: Homepage, https://gitlab.com/kikaiken/st-term
Project-URL: Repository, https://gitlab.com/kikaiken/st-term
Keywords: serial,terminal,STM32,ST-Link,ROS2,CSV,plot
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: Scientific/Engineering :: Visualization
Classifier: Topic :: Terminals :: Serial
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: pyqtgraph>=0.13.7
Requires-Dist: pyside6>=6.7.2
Requires-Dist: plotext>=5.3.2
Requires-Dist: pyserial>=3.5
Requires-Dist: typer>=0.12.3
Requires-Dist: rich>=13.7.1
Requires-Dist: pyopengl>=3.1.10
Requires-Dist: pyopengl-accelerate>=3.1.10

# STTerm
STM32のマイコンとのシリアル通信用のターミナルソフト！！
自動で接続されているSTM32を検出して通信を開始します！！
CSV形式で送られてくる数値をリアルタイムでグラフ化もできます！！
テラタームより便利！！
Mac、Windows、Linuxに対応！！（多分！！Macは動作確認してない！！）
ROS2環境がある場合、シリアル通信の他にROS2の通信もできます！！
ROS2のトピックをリアルタイムで表示し、こちらもお手軽にグラフ化できます！！

## セットアップ
このプロジェクトは [uv](https://github.com/astral-sh/uv) というPythonのパッケージマネージャを用いて依存関係を管理しています。

### 1. uv のインストール
uvをインストールしていない場合は次のコマンドでインストールしてください。
- **Linux / macOS**:
  ```bash
  curl -LsSf https://astral.sh/uv/install.sh | sh
  ```
- **Windows (PowerShell)**:
  ```powershell
  powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
  ```

### 2. 依存関係のインストール
リポジトリをクローンしてきたら、ルートディレクトリで以下のコマンドを実行してください。
依存関係をuvが解決します。
```bash
uv sync
```

### 3. コマンドとして登録する
どこからでも `stterm` と打つだけで起動できるように、設定ファイルに追記します。

- **Linux (`~/.bashrc`) / macOS (`~/.zshrc`)**:
  ```bash
  function stterm() {
      (STTERM_CWD="$(pwd)" cd "{このスクリプトがあるディレクトリ}" && uv run python stterm.py "$@")
  }
  ```
- **Windows (PowerShell: `$PROFILE`)**:
  `notepad $PROFILE` で開き、以下を追記します。
  ```powershell
    function stterm {
        # カレントディレクトリを一時的に変更して実行する（実行後に元の場所に戻る）
        $env:STTERM_CWD = (Get-Location).Path
        Push-Location "C:\path\to\your\directory"
        try {
            uv run python stterm.py $args
        }
        finally {
            Pop-Location
            Remove-Item Env:\STTERM_CWD -ErrorAction SilentlyContinue
        }
    }
  ```

## 使い方
登録したコマンドを実行します。
```bash
stterm
```
起動すると自動でST-Linkを探して接続されます。
文字を入力してEnterを押すとマイコンに送信され、マイコンからのメッセージはターミナルに表示されます。

## オプション
```bash
stterm
  -p <port>     : シリアルポートを指定する。指定しない場合は自動で探索する。
  -b <baudrate> : ボーレートを指定する（デフォルト：115200）
  -e <ending>   : 送信時の改行コードを指定する（lf or crlf or none）（デフォルト：lf）
  --plot term   : ターミナル上にグラフを表示する（デフォルト：なし）
  --plot gui    : matplotlibのウィンドウでグラフを表示する（デフォルト：なし）
  --plot-type line : 折れ線グラフを表示する（デフォルト：line）
  --plot-type bar  : 棒グラフを表示する
  --ymin <ymin> : グラフの最小値を固定する（デフォルト：自動調整）
  --ymax <ymax> : グラフの最大値を指定する（デフォルト：自動調整）
  --source-code : ソースコードを表示する
  --help        : ヘルプを表示する
```
グラフ描画モードでは送られてくるメッセージをcsvとして解釈し、グラフを表示する
