Newer
Older
client_dwatch / docs / handoff / TeamWorks回答_第2回_20260903.md

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 の型