feat(obd): canlı PID/DID keşfini DiscoveryCaptureService'e bağla (PR-DISC-2)#23
Open
selimmujdeci wants to merge 1 commit into
Open
feat(obd): canlı PID/DID keşfini DiscoveryCaptureService'e bağla (PR-DISC-2)#23selimmujdeci wants to merge 1 commit into
selimmujdeci wants to merge 1 commit into
Conversation
…DISC-2)
PR-DISC-1 altyapısını (discoveryCaptureService) araçta çalışan gerçek keşif
yollarına bağlar. Discovery mimarisi DEĞİŞMEDİ; her bağlama fail-soft (yakalama
hatası keşfi etkilemez) ve ADDITIVE. PID registry / DTC kataloğu / native katman /
hot-poll mantığı / SQL-Supabase'e DOKUNULMADI.
Bağlanan katmanlar:
- extendedPidService (_onExtendedData keşif dalı): bitmask'te araç DESTEKLİYOR ama
registry'de OLMAYAN standart PID'ler capture edilir. Aralık-bayrağı PID'leri
(00/20/40/…) ve registry'dekiler ELENİR. request=01<base>, rawResponse=bitmask.
- didDiscoveryService (startDiscovery): yalnız POZİTİF (supported && data) DID'ler
capture; 7F/NO DATA negatif dalda KAYDEDİLMEZ. ecuAddress=rx, request=22<did>.
- manufacturerPidService: loadProfile → setKnownDids(profil DID'leri) (katalog tanımı);
unloadProfile → setKnownDids([]). _tick çözümlemesinde capture çağrısı — profil
(katalog) DID'leri "bilinir" olduğundan elenir, yalnız katalog dışı DID yakalanır.
Kurallar (görev): discovery başarısızsa/NO DATA/duplicate/registry PID → kayıt YOK;
tanı event'i ('ecuQuery' info) oluşur; queue'ya düşer; export hazır; ağ çağrısı YOK.
Test src/__tests__/discoveryLiveCapture.test.ts (10 kilit):
- yeni PID capture · registry PID eklenmiyor · aralık bayrağı eklenmiyor
- hot-poll/native liste DEĞİŞMEDİ (capture native poll'a sızmıyor)
- yeni DID capture · NO DATA/plugin-yok → capture yok
- duplicate filtre · tanı event'i · queue + JSON export
- manufacturer: katalog DID'i yakalanmaz; unload sonrası katalog dışı → yakalanır
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01ABwbnF4mBZ8Pz4NisRibVE
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Konu
Wire Discovery Capture Pipeline into Live PID/DID Discovery — PR-DISC-1 altyapısını araçta çalışan gerçek keşif yollarına bağlar.
Discovery mimarisi değişmedi. Her bağlama fail-soft (yakalama hatası keşfi etkilemez) ve additive. PID registry / DTC kataloğu / native katman / hot-poll mantığı / SQL-Supabase'e DOKUNULMADI. Ağ çağrısı yok. PR #11'e dokunulmadı.
Discovery bağlanan servisler
_onExtendedDatakeşif bitmask dalırequest=01<base>,rawResponse=bitmask.startDiscoverypozitif dalsupported && data) DID → capture. 7F/NO DATA negatif dalda kaydedilmez.ecuAddress=rx,request=22<did>.loadProfile/unloadProfile+_ticksetKnownDids(profil DID'leri)= katalog tanımı._tickçözümlemesinde capture çağrısı; profil (katalog) DID'leri "bilinir" → elenir, yalnız katalog dışı yakalanır.Capture edilen bilgiler
timestamp · vehicleProfile · ecuAddress · protocol · mode · pidOrDid · request · rawResponse · decodedValue? · supported · discoverySource · firmwareVersion?(PR-DISC-1 modeli aynen).Kurallar (hepsi karşılandı)
Discovery başarısızsa / NO DATA / duplicate / registry PID → kayıt yok; tanı event'i (
ecuQueryinfo) oluşur; queue'ya düşer; export hazır; ağ çağrısı yok.Değişen dosyalar
src/platform/obd/extendedPidService.ts(M) — keşif dalında PID capturesrc/platform/obd/didDiscoveryService.ts(M) — pozitif DID capturesrc/platform/obd/manufacturerPidService.ts(M) — known-DID köprüsü +_tickcapturesrc/__tests__/discoveryLiveCapture.test.ts(yeni) — 10 testYeni test sayısı
10 (yeşil): yeni PID capture · registry PID eklenmiyor · aralık bayrağı eklenmiyor · hot-poll/native liste değişmedi · yeni DID capture · NO DATA/plugin-yok → capture yok · duplicate filtre · tanı event · queue + JSON export · manufacturer katalog DID yakalanmaz + unload sonrası katalog dışı yakalanır.
Mevcut süitler: patch8.service / patch12c / discoveryCapture / pidExpansion (71/71) yeşil;
tsc -b+ ESLint temiz; regresyon kasası etkilenmedi.Risk analizi
Düşük. Üç servise yalnız fail-soft capture çağrıları eklendi; discovery/poll akışları,
_buildNativeList, core PID seti değişmedi (test: capture native poll'a sızmıyor). Yeni bağımlılık yok; yakalama tamamen soğuk-yolda (keşif/DID tarama, hot-path değil). Güvenlik: kayıtlarda MAC/PII yok; yalnız yerel queue/export (ağ yok).🤖 Generated with Claude Code