• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

kimata / my-py-lib / 26347514655
61%

Build:
DEFAULT BRANCH: main
Ran 24 May 2026 12:32AM UTC
Jobs 1
Files 92
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 May 2026 12:30AM UTC coverage: 60.687% (+1.0%) from 59.648%
26347514655

push

github

kimata
refactor: BP35A1 をイベント駆動アーキテクチャに再構築

連続して 3 つのバグ (継承漏れ・PAN キャッシュ判定・MODE 3 パース) が
発生したのを契機に、 シリアル通信の処理を 3 レイヤに整理した:

  Layer 0: pyserial (外部)
  Layer 1: EventParser   — 行ストリームを Event オブジェクトに分類
  Layer 2: BP35A1Session — コマンド送信 + イベント待機 + 行プッシュバック
  Layer 3: BP35A1        — public API (内部実装は新セッション経由に置換)

従来の「期待文字列を順に read してマッチ」方式から、 構造化された
Event を待つ方式に変更。 これにより以下の脆さが解消される:

- 想定外イベント (EVENT 1F や ERXUDP 等) の割り込みでパースが壊れる
- 複数行ブロックのフィールド構成差分 (例: PairID の有無) に弱い
- read の二重消費による上位ループの timeout 待ち
- 行レベルの厳密一致 (__expect) で仕様差分に弱い

BP35A1 の public API (ping, scan_channel, connect, disconnect,
send_udp, recv_udp, set_id, set_password, reset) は維持しているため、
echonetenergy.py 等の上位コードは変更不要。

ユニットテスト test_sensor_bp35a1_session.py を 18 ケース追加。
実機 (BP35A1 1.2.10 + メーター実体) で scan_channel → PanDescriptor
取得まで動作確認済み。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>

144 of 214 new or added lines in 2 files covered. (67.29%)

4 existing lines in 1 file now uncovered.

4029 of 6639 relevant lines covered (60.69%)

0.61 hits per line

Uncovered Changes

Lines Coverage ∆ File
62
25.66
3.44% src/my_lib/sensor/bp35a1.py
8
94.44
src/my_lib/sensor/bp35a1_session.py

Coverage Regressions

Lines Coverage ∆ File
4
25.66
3.44% src/my_lib/sensor/bp35a1.py
Jobs
ID Job ID Ran Files Coverage
1 26347514655.1 24 May 2026 12:32AM UTC 92
60.69
GitHub Action Run
Source Files on build 26347514655
  • Tree
  • List 92
  • Changed 1
  • Source Changed 1
  • Coverage Changed 1
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #26347514655
  • 3b1670f1 on github
  • Prev Build on main (#26347109168)
  • Next Build on main (#26347753894)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc