|
Bogdan Timofte
authored
2 weeks ago
|
1
|
# API Reference
|
|
|
2
|
|
|
|
3
|
Această documentație defineşte comportamentul aşteptat al entităţilor principale şi operaţiilor aplicaţiei. Scopul este să prevenim regresia şi divergenţele în timp ce aplicaţia evoluează cu ajutorul agenţilor.
|
|
|
4
|
|
|
|
5
|
## Entităţi principale
|
|
|
6
|
|
|
|
7
|
1. **[Meter](./Meter.md)** - Contor Bluetooth (UM25C, UM34C, TC66C)
|
|
|
8
|
- Reprezentarea unui dispozitiv BT conectat
|
|
|
9
|
- Starea conectorului, metadatele descoperiri
|
|
|
10
|
- Operaţii: connect, disconnect, fetch measurements
|
|
|
11
|
|
|
|
12
|
2. **[ChargedDevice](./ChargedDevice.md)** - Dispozitiv încărcat prin meter
|
|
|
13
|
- Modelul unui dispozitiv care se încarcă
|
|
|
14
|
- Sesiuni de încărcare, integritate date
|
|
|
15
|
- Operaţii: start session, record measurement, end session
|
|
|
16
|
|
|
|
17
|
3. **[Powerbank](./Powerbank.md)** - Sursă de energie portabilă
|
|
|
18
|
- Modelul unei baterii externe
|
|
|
19
|
- Starea încărcării, sesiiuni de descărcare
|
|
|
20
|
- Operaţii: track discharge, merge duplicates
|
|
|
21
|
|
|
|
22
|
## Operaţii core
|
|
|
23
|
|
|
|
24
|
1. **[Charging Monitoring](./ChargingMonitoring.md)** - Monitorizarea unei sesiuni de încărcare
|
|
|
25
|
- Start → record measurements → end
|
|
|
26
|
- Colectare date la ~1Hz
|
|
|
27
|
- Validare măsurători, calculul energiei
|
|
|
28
|
- Timeout şi reconnect logic
|
|
|
29
|
|
|
|
30
|
2. **[Capacity Measurement](./CapacityMeasurement.md)** - Măsurarea capacităţii bateriei
|
|
|
31
|
- Learning din complete discharge cycles
|
|
|
32
|
- Formula: Capacity = Energy / Nominal_Voltage
|
|
|
33
|
- Weighted moving average din sesiuni multiple
|
|
|
34
|
- Battery health tracking
|
|
|
35
|
|
|
|
36
|
3. **[Charge Curve Isolation](./ChargeCurveIsolation.md)** - Izolarea curbei de încărcare
|
|
|
37
|
- Detectare real start (power threshold)
|
|
|
38
|
- Detectare real end (trickle charge)
|
|
|
39
|
- Eliminare zgomot pre/post-charge
|
|
|
40
|
- Combined method (power + battery fallback)
|
|
|
41
|
|
|
|
42
|
4. **[Charge Curve Storage](./ChargeCurveStorage.md)** - Stocarea curbelor
|
|
|
43
|
- Persistență în Core Data
|
|
|
44
|
- Sincronizare CloudKit
|
|
|
45
|
- Compresie: downsampling, agregare
|
|
|
46
|
- Archive sesiuni vechi
|
|
|
47
|
|
|
|
48
|
5. **[Consumption Measurement](./ConsumptionMeasurement.md)** - Măsurare consum arbitrar
|
|
|
49
|
- Interval liber, nu doar sesiuni complete
|
|
|
50
|
- Selectare din grafic + tail trimming
|
|
|
51
|
- Statistici: energy, power, variance
|
|
|
52
|
- Predicţii cu confidence bounds
|
|
|
53
|
- Salvează stats, NU măsurători brute
|
|
|
54
|
|
|
|
55
|
6. **[Idle Consumption Measurement](./IdleConsumptionMeasurement.md)** - Măsurare consum inactiv
|
|
|
56
|
- Device la 100% + după top-up
|
|
|
57
|
- Auto-detect idle phase (power stabilizat)
|
|
|
58
|
- Selection pe grafic pentru refine
|
|
|
59
|
- Profil idle per (device, charger type)
|
|
|
60
|
- Folosit pentru auto-terminate şi bilanț energetic
|
|
|
61
|
- Corectare energie: total - idle_energy
|
|
|
62
|
|
|
|
63
|
7. **[CloudKit Sync](./CloudKitSync.md)** - Sincronizare date în CloudKit
|
|
|
64
|
- Mecanismul de replicare către iCloud
|
|
|
65
|
- Conflictele şi rezoluţii
|
|
|
66
|
- Rebuild logic şi versioning
|
|
|
67
|
|
|
|
68
|
8. **[Bluetooth Discovery](./BluetoothDiscovery.md)** - Descoperire dispozitive BT
|
|
|
69
|
- Scanning, throttling, caching
|
|
|
70
|
- Advertisement handling
|
|
|
71
|
- Device identification
|
|
|
72
|
|
|
|
73
|
9. **[Core Operations](./Operations.md)** - Operaţii principale
|
|
|
74
|
- App lifecycle (AppData, SceneDelegate)
|
|
|
75
|
- Connection management
|
|
|
76
|
- State persistence
|
|
|
77
|
|
|
|
78
|
## Convenţii
|
|
|
79
|
|
|
|
80
|
- **MUST**: Comportament obligatoriu, nu se poate schimba fără update complet
|
|
|
81
|
- **SHOULD**: Comportament aşteptat, regresia = bug
|
|
|
82
|
- **MAY**: Comportament opţional, nu afectează integralitate
|
|
|
83
|
|
|
|
84
|
## Model versioning
|
|
|
85
|
|
|
|
86
|
- **Model versioning**: `cloudStoreRebuildVersion` în AppData
|
|
|
87
|
- **Upgrade path**: UnitTests validează migrări la versionare nouă
|
|
|
88
|
- **Backward compatibility**: Legacy sync via `NSUbiquitousKeyValueStore`
|
|
|
89
|
|
|
|
90
|
## UI Alignment
|
|
|
91
|
|
|
|
92
|
- **[UI_ALIGNMENT.md](./UI_ALIGNMENT.md)** — Mapare UI ↔ Documentație
|
|
|
93
|
- Status implementare per operație
|
|
|
94
|
- Needed UI changes untuk align cu docs
|
|
|
95
|
- Checklist alignment per priority
|
|
|
96
|
|
|
|
97
|
---
|
|
|
98
|
|
|
|
99
|
Fiecare fişier conţine:
|
|
|
100
|
|
|
|
101
|
- Responsabilităţi (ce face această entitate)
|
|
|
102
|
- Invarianţi (condiţii care trebuie să fie adevărate)
|
|
|
103
|
- API public (metodele şi proprietăţile expuse)
|
|
|
104
|
- Comportamente critice (cazuri speciale, edge cases)
|
|
|
105
|
- Testare (cum validăm corectitudinea)
|