# TeamWorks 第2回回答（受領記録）— 2026-09-03

`docs/handoff/TeamWorks確認事項_第2回_20260903.md` に対する回答の**原文の記録**です。
判断・帰結は `docs/decisions.md` の **D-065** に書いています。

> **記録の目的**: 第1回のときは回答をどこにも記録せず、
> 「送付待ち」のまま次のセッションへ引き継いでしまいました（`docs/handoff.md` 追記4）。
> **同じ事故を繰り返さないため、受領した回答は必ずここに原文で残します。**

---

## Q1-1 D-Secログの「備考」

> 備考ってありましたでしょうか?(見落とし?)
> control_error_histories.comment ?

★**先方からの逆質問。当方が回答する**（返信案は末尾）★

## Q1-2 `controls.status`

> 0: 正常, 1;異常
> statusが1の場合は異常です.
> 異常判定はreportted_atからの経過時間です. 時間帯の設定時間で最終報告が無ければ異常判定とみなされます.
> 時間帯別の設定はlink_schedules.intervals(単位秒)で判断可能です.

## Q1-3 D-Secアラート

> control_error_histories.status: 0: 未対応, 1: 対応中, 2:対応済
>
> アラート種別
> D-S制御盤で発生するアラートは生死報告がない, だけです. それ以外はありません(API認証できない, を想定されていたと思いますがそれはない).
>
> アラート詳細文
> アラート種別と同じで生死判定しかないので詳細はありません.

## Q1-4 `security_statuses`

> 1. 0: セキュリティ無効 / 1: セキュリティ有効
> 2. 現在の状態を表しています
> 3. 変更履歴であっています.

## Q2 事前チェック時点のロボット状態

> 1. clean_timetables とclean_statuses の2つのテーブルから60分前, 30分前の状態を判定可能です.
>    また清掃ロボットでエラーが発生した場合はrobot_error_reportsに記録されます
>    (もしエラーが無ければstandby(待機)です.
> 2. robots.status は以下の通りです.
> 3. 現時点では同一section_idでグループ化された清掃ロボットで一番多い値(status)が適用されます.

### `robots.status` コード表（★原文のまま。改変しないこと★）

```
'-300'=>'Notice.',
'-200'=>'Lost Loaction.',
'-100'=>'Error.',
'0'=>'Standby.',
'100'=>'Goto Pile Idle.',
'101'=>'Goto Pile Pause.',
'102'=>'Goto Pile Way.',
'104'=>'Goto Pile Cancel.',
'105'=>'Goto Pile End.',
'106'=>'Goto Pile Elevator.',
'201'=>'Charging Line.',
'202'=>'Charging Pile.',
'203'=>'Workspace Water Supply.',
'204'=>'Pile OTA.',
'300'=>'Vacuum Idle..',
'301'=>'Vacuum Pause.',
'302'=>'Vacuuming.',
'303'=>'Vacuum Cancel.',
'304'=>'Vacuum Way.',
'305'=>'Finishing Prepare.',
'306'=>'Finishing Back.',
'307'=>'Finishing Forward.',
'308'=>'Finishing ShortLine.',
'309'=>'Finishing Finishing.',
'310'=>'Finishing Finished.',
'311'=>'Vacuuming End.',
'312'=>'Vacuum Elevator.',
'313'=>'Vacuum Go Gate.',
'400'=>'Return Way.',
'401'=>'Return Cancel.',
'402'=>'Return Pause.',
'403'=>'Return Idle.',
'404'=>'Return End.',
'405'=>'Return Gate.',
'406'=>'Return Elevator.',
'500'=>'Dock Pile Idle.',
'501'=>'Dock Pileing.',
'502'=>'Dock Pile Pause.',
'503'=>'Dock Pile Cancel.',
'504'=>'Dock Pile End.',
'600'=>'Unknown.',
'601'=>'Unknown.',
'602'=>'Unknown.',
'603'=>'Unknown.',
'604'=>'Unknown.',
'999'=>'Unknown.'
```

**注意**:

- `103` が欠番（`102` の次が `104`）。原文どおり
- `-200` は `'Lost Loaction.'` と綴られている（`Location` の誤記と思われるが**原文のまま記録**）
- `300` は `'Vacuum Idle..'` とピリオドが2つ。原文のまま
- `600`〜`604` と `999` はすべて `Unknown.`
- ★**この表は「ロボットの現在状態」であって、画面に出す6状態とは一致しない**★
  （ハンドルアップ・緊急停止・オフラインがこの表に無い。`robot_error_reports.error_type` 側の想定）

## Q3 `clean_schedules.weeks`

> 左から順に「日・月・火・水・木・金・土」です.
> 1が実施, 0が未実施です.

## Q4 ステータス系のコード値

> ここまでの回答で回答済み.
> robot_error_reports.status 0: 未対応, 1:対応中, 2:対応済

## C 第1回回答を受けた追加確認

> C
> 本日中に反映し提示する
>
> C-3
> 1.はい
> 2.切替える可能性はあるので、切り替えられる形でじっそうしてください. ただしその場合のデメリットはなんでしょうか?

★**C-3-2 は先方からの逆質問。当方が回答する**（返信案は末尾）★
★**C: 修正版DDLが本日中に来る。受領したら指示書E をやり直すこと**★

---

# 返信について

**この回答への返信は、独立した文書にしました。**

| | |
|---|---|
| 原稿 | `docs/handoff/TeamWorks確認事項_第3回_20260903.md` |
| PDF | `docs/handoff/pdf/make_teamworks_qa3_pdf.py` で生成（第1回・第2回と同じ体裁） |
| 点検 | `docs/handoff/pdf/check_teamworks_qa3_pdf.py` |

**ここに返信文を二重に置かないこと。** 原稿は第3回のファイル1本を正とします。

返信の内容（要約のみ）:

1. **Q1-1「備考」** → DB側の項目ではなく**ビューアー側で持つべきもの**。入力欄を作り
   DFA の独自ストアに保存する。DB側の対応は不要
2. **C-3-2「切り替えのデメリット」** → 恒久的なコストはほぼ無い。切替の瞬間に
   (1) 開いている画面の ID が無効になる (2) ログの追跡が切れる、の2点。
   コードの分岐は**射影を1関数に閉じ込めれば1箇所で済む**
3. **当方で変更するもの4件**（回答不要）: 通信状態を3状態→2状態 / 種別列を落とす /
   詳細列を落とす / 通信断判定は `link_schedules.intervals` を使う
4. **追加確認4件**: D-1 `intervals` の書式 / D-2 `error_type` の実値 /
   D-3 セキュリティ解除の導出可否 / D-4 `PrecheckItem.id` の型
