# ``haniwers daq``（データ取得を開始する）

```console
$ haniwers daq --help
```

:::{literalinclude} ./help/help-daq
:::

## 基本コマンド

```console
$ haniwers daq
```

現在の日付（``YYYmmdd``）のサブディレクトリを作成し、データ取得を開始します。
準備が整ったらすぐにデータ取得できるように、シンプルなコマンドにしています。

すでに同じ日付のディレクトリが存在している場合は、念のため、エラーを表示して終了します。
別の設定でデータ取得する場合は、``日付_ラン番号``のようにディレクトリ名を手動で変更してください。
データ取得を続けて問題ない場合は、``--append``オプションを使ってください。

## オプション

1. ``--append``
2. ``--quiet``
3. ``--load-from``

### データを追加したい（``--append``）

```console
$ haniwers daq --append
```

``--append``オプションで、既存のデータに追記できます。
デフォルトは``false``です。

:::{note}

データは常に上書きモード（``a``）で作成しています。
データを追加する場合、すでに存在するファイルにデータが追記されます。
測定期間があくと、同じファイルに離れた日付が記録されることになりますが、これは想定している動作です。

:::

:::{caution}

データ解析にこの``raw_data``を直接読み込んで解析することは想定していません。
ひと手間かかりますが、[raw2tmpコマンド](./raw2tmp.md)もしくは[run2csvコマンド](./run2csv.md)などで
前処理したデータセットを作成してから解析してください。

:::

### 設定ファイルを変更したい（``--load-from``）

```console
$ haniwers daq --load-from="daq-macos.toml"
```

データ取得に関する設定はすべて``daq.toml``から読み込めるようになっています。
``--load-from=ファイル名``で変更できます。

## 設定パラメーター（``daq.toml``）

``saved = ""``
: データを保存するディレクトリです。デフォルトはカレントディレクトリです。
  CLIでは測定日（``pendulum.now().strftime("%Y%m%d"）``）を連結して使っています。

``skip = 10``
: わすれました

``prefix = "osechi_data"``
: ファイル名のプリフィックスです。デフォルトは``osechi_data``です。

``suffix = ".csv"``
: ファイルの拡張子です。
  デフォルトは``.csv``です。``.dat``も指定できます。
  それ以外の拡張子はDAQ実行時にエラーが表示されます。

``max_rows = 1000``
: 1ファイルあたりの最大行数です。デフォルトは1000行です。
  測定機器に応じて最大行数を調整してください。

``max_files = 100``
: ファイルの最大数です。デフォルトは100ファイルです。
  測定期間に応じてファイル数を調整してください。

``device = "/dev/ttyUSB0"``
: シリアル通信に使うデバイス名（ポート名）です。デフォルトは``/dev/ttyUSB0``です。
  Linuxの場合は``/dev/ttyUSB0``でよいはずです。
  Windowsの場合は``COM3``のようです。
  macOSの場合は``/dev/tty.usbserial-番号``です。
  ``haniwers port``コマンドや``arduino-cli board list``コマンドで確認してください。

``baudrate = 115200``
: シリアル通信の速度です。ビットレートみたいなもので「ボーレート」と呼ぶそうです。
  デフォルトは115200です。基本的に変更する必要はありません。

``timeout = 100``
: シリアル通信がタイムアウトする時間です。デフォルトは100秒です。
  データ取得が失敗しがちな場合は、値を大きくするとよいかもしれません。
  スレッショルドスキャンする場合は、測定時間と同じくらいにしておくとよい（はず）です。

``fname_logs = "threshold_logs.csv"``
: スレッショルド設定をログするファイル名です。
  ``saved``の下に作成されます。
  デフォルトは``threshold_logs.csv``です。

``fname_scan = "threshold_logs.csv"``
: スレッショルド・スキャンの結果を保存するファイル名です。
  ``saved``の下に作成されます。
  デフォルトは``threshold_scan.csv``です。
