Ubuntu用 UART ツール(linux_free_uart)

Tool

概要

linux_free_uart(ubuntu-uart-tools)は、Ubuntu環境で使えるシリアル(UART)通信のためのGUIツールです。GUI上に「コマンドのグループ化」「色タグ」「折りたたみ」「ドラッグ&ドロップでの並べ替え」を備え、ユーザーが定型コマンドを視覚的に整理して実行できます。さらに軽量なDSL(SEND、EXPECT、TIMEOUT、DELAY、WAIT、LOOP、SET といった命令)を備え、シナリオ実行や簡単な自動化も可能。コマンド設定は commands.json に保存され、ログの出力や言語切替(英語/簡体字中国語)もサポートします。

GitHub

リポジトリの統計情報

  • スター数: 3
  • フォーク数: 0
  • ウォッチャー数: 3
  • コミット数: 3
  • ファイル数: 5
  • メインの言語: Python

主な特徴

  • グループ化されたコマンドボタンと色タグで定型操作を視覚的に管理
  • ドラッグ&ドロップによるグループ間移動と並べ替え、commands.jsonへ永続化
  • 軽量DSLで送信→期待応答→タイムアウト等のシナリオを自動実行
  • ログ出力・ポート再探索・カスタムボーレート対応、言語切替機能

技術的なポイント

linux_free_uart は「GUIでの操作性」と「スクリプト的自動化」を両立する設計が特徴です。GUIはコマンドをグループ単位で管理でき、各グループに色タグを付けて視認性を高めています。ドラッグ&ドロップでボタンの順序や所属グループを変更でき、その状態は commands.json に保存されるため、設定の持ち運びや再利用が簡単です。

スクリプト実行部分は独自の簡易DSLを実装しており、SEND(送信)→EXPECT(期待応答)→TIMEOUT(待機制御)といった命令を組み合わせることで、段階的なやり取りやテスト手順を記述できます。LOOP と SET による変数制御やループ処理、DELAY/WAIT によるタイミング制御をサポートしているため、単発コマンドだけでなく繰り返し試験や応答確認を含む自動化シナリオにも対応します。コマンド実行中のログは保存・出力でき、デバッグや試験記録の管理に役立ちます。

シリアルアクセスについては「非排他的(non-exclusive)アクセス」を謳っており、ポートの再探索やカスタムボーレート指定など実運用を考慮した機能が含まれています。実装はPythonベースのため、pyserial 等の既存ライブラリとの親和性が高く、Ubuntu環境でのパッケージ化や環境セットアップも比較的容易です。言語切替(English / Simplified Chinese)や組み込みのモノクロアイコンなど、細かいUX改善も取り入れられており、ローカライズやアイコン差し替え、DSLの拡張(追加コマンドや条件分岐)といったカスタマイズも行いやすい構造です。

開発者視点では、commands.json による設定永続化とDSLインタプリタの独立が拡張性の要になります。たとえば、コマンドのインポート/エクスポート機能、より高度な正規表現マッチング、コマンド実行結果に基づく分岐や非同期処理対応などを追加すれば、自動試験フレームワークに近い使い方も可能になります。また、デスクトップ環境に応じたUIツールキット(GTK/Tk/Qt)や、配布のためのパッケージ化(snap/apt/flatpak)を整備することで導入性が高まります。

プロジェクトの構成

主要なファイルとディレクトリ:

  • LICENSE: file
  • README.md: file
  • commands.json: file
  • linux_free_uart.png: file
  • linux_free_uart.py: file

まとめ

Ubuntu上で手早く定型シリアル作業を自動化・可視化したい開発者に便利な軽量ツールです。(約50字)

リポジトリ情報:

READMEの抜粋:

linux_free_uart

Linux serial GUI tool with grouped command buttons, drag/drop reordering, and a lightweight DSL runner. Includes a built-in monochrome icon and a language toggle (English / Simplified Chinese).

Features

  • Non-exclusive serial access, custom baud rate, port refresh.
  • Command groups with color tags, collapse/expand, drag between groups, and persistence in commands.json.
  • Script DSL: SEND (with optional EXPECT/TIMEOUT), DELAY/WAIT, LOOP, SET, variable expansion.
  • Log exp…