Newer Older
105 lines | 4.049kb
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)