Skip to content

tecgihan/ims-sd-python

Repository files navigation

IMS-SD Python ライブラリ

IMS-SDデバイス用のPythonライブラリです。シリアル通信によるデバイス制御、データ収集、ファイル操作などの機能を提供します。

機能

  • デバイス接続・制御: シリアル通信によるIMS-SDデバイスの制御
  • リアルタイムデータ収集: PCへのリアルタイムデータ取得とCSV保存
  • SDカード操作: SD内ファイルの一覧取得、ダウンロード、削除
  • BINファイル変換: SDからダウンロードしたBINファイルをCSVに変換
  • 校正データ対応: 9軸センサーの校正データを使用した工学値変換

ファイル構成

核心モジュール

  • ims_device.py - IMS-SDデバイス制御クラス(59メソッド)
  • serial_comm.py - シリアル通信管理クラス
  • packet_parser.py - データパケット解析・工学値変換
  • data_collector.py - データ収集・測定条件設定

機能モジュール

  • pc_data_recorder.py - PCリアルタイムデータ記録
  • pc_data_recorder_with_trigger.py - 外部トリガ待機付きPC記録
  • sd_data_recorder.py - SD記録(内部トリガ)
  • sd_data_recorder_with_trigger.py - SD記録(外部トリガ待機)
  • sd_file_downloader.py - SDファイルダウンロード
  • bin_to_csv_converter.py - BIN→CSV変換器

設定・資料

  • requirements.txt - 依存パッケージ(pyserial==3.5)
  • IMS-SD_Command_Reference.md - コマンド一覧表

必要環境

  • Python 3.x
  • Windows(シリアル通信バッファ設定のため)
  • IMS-SD HighEndモデル(バージョン2.2.0以上)

インストール

pip install -r requirements.txt

基本的な使用方法

1. デバイス接続

from ims_device import ImsDevice

device = ImsDevice()
if device.connect("COM3"):
    print("接続成功")
    print(f"シリアル番号: {device.serial_number}")
    print(f"バージョン: {device.version}")

2. PCデータ記録

from pc_data_recorder import PcDataRecorder
from data_collector import setup_measurement_conditions

# 測定条件設定(100Hz, まとめ数10, 30G)
setup_measurement_conditions(device, frequency=100, matome_pc=10, acc_range=30)

# データ記録実行
recorder = PcDataRecorder(device)
recorder.record_data(duration=10.0)  # 10秒間記録

3. SDファイル操作

from sd_file_downloader import SdFileDownloader

downloader = SdFileDownloader(device)
downloader.download_latest_file()  # 最新ファイルをダウンロード

4. BINファイル変換

from bin_to_csv_converter import BinToCsvConverter

converter = BinToCsvConverter()
converter.convert_file("TEST_001.BIN")  # BIN→CSV変換

主要クラス

ImsDevice

IMS-SDデバイスの全機能を管理するメインクラス

  • 接続・切断管理
  • 測定条件設定(周波数、レンジ、バンド帯域等)
  • SD保存設定(ヘッダ、保存時間、電池管理等)
  • ファイル操作(一覧、ダウンロード、削除)
  • 校正データ取得(加速度、ジャイロ、地磁気)

PacketParser

データパケットの解析と工学値変換

  • 9軸センサーデータの工学値変換
  • 校正データを使用した補正処理

DataCollector

測定条件設定とデータ収集の統合機能

  • 測定条件の一括設定
  • リアルタイムデータ収集
  • CSV出力機能

データフォーマット

PCリアルタイムデータ

  • パケットサイズ:4 + (9ch × 2byte × PCまとめ数) + 4 バイト
  • ヘッダー:0xAA x 4(固定4バイト)
  • データ:9軸センサーデータ(9ch × 2byte)× PCまとめ数
  • フッター:0x55 x 4(固定4バイト)

SDファイルダウンロード

  • 8194バイト単位での受信
  • 先頭2バイト:データ数(リトルエンディアン)
  • 0xFFFF:ダウンロード失敗
  • 0x0000:ダウンロード完了

測定可能範囲

  • 測定周波数: 1,2,5,10,20,50,100,200,500,1000 Hz(ただしPC保存は100Hz上限)
  • 加速度レンジ: ±4,8,16,30 G
  • ジャイロレンジ: ±4000 deg/s
  • PCまとめ数: 測定周波数÷10程度に設定すること

注意事項

  • IDLEステータス時のみ設定変更可能
  • シリアル通信は921600bps、RTS/CTS
  • HighEndモデル専用(Standardモデル非対応)

サンプルコード

各機能のサンプルコードは対応する.pyファイルのmain関数を参照してください。

コマンドリファレンス

詳細なコマンド仕様はIMS-SD_Command_Reference.mdを参照してください。

About

Python library for IMS-SD device control and data acquisition

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages