SimDisplay
SimDisplay fournit une interface commune pour les écrans TFT (TFT_eSPI) et OLED (U8g2), avec gestion du sprite buffering pour un rendu fluide.
Couleurs des constantes vitales
Section intitulée « Couleurs des constantes vitales »Les couleurs suivent les normes des équipements médicaux réels :
| Paramètre | Couleur | Code hex |
|---|---|---|
| FC (fréquence cardiaque) | Vert | #22c55e |
| SpO2 (saturation) | Cyan | #06b6d4 |
| EtCO2 (capnographie) | Jaune | #eab308 |
| FR (fréquence respiratoire) | Bleu | #3b82f6 |
| PNI (pression artérielle) | Blanc | #f8fafc |
| Température | Orange | #f97316 |
| Alarme | Rouge | #ef4444 |
Sprite buffering (TFT)
Section intitulée « Sprite buffering (TFT) »Pour les écrans TFT (Plateformes A+, B, C), le rendu utilise un sprite buffer en PSRAM :
TFT_eSPI tft;TFT_eSprite sprite(&tft);
void setup() { tft.init(); sprite.createSprite(320, 240); // Buffer complet sprite.setSwapBytes(true);}
void render() { sprite.fillSprite(TFT_BLACK); // Dessiner les courbes et valeurs... sprite.pushSprite(0, 0); // Transfert atomique}Avantages :
- Pas de flickering (double buffering)
- Rendu 25 FPS constant
- Utilise la PSRAM (8 MB sur ESP32-S3)
Page buffer (OLED)
Section intitulée « Page buffer (OLED) »Pour les écrans OLED (Plateforme A), U8g2 utilise le mode page buffer :
U8G2_SSD1306_128X64_NONAME_1_HW_I2C u8g2(U8G2_R0);
void render() { u8g2.firstPage(); do { // Dessiner... u8g2.setFont(u8g2_font_helvR14_tr); u8g2.drawStr(0, 20, "5.2 g/L"); } while (u8g2.nextPage());}Rendu ECG (ECGSYN)
Section intitulée « Rendu ECG (ECGSYN) »Le scope utilise un algorithme ECGSYN simplifié pour générer les courbes ECG :
- Génère les ondes P, QRS, T à partir de la fréquence cardiaque
- Supporte 12 types de rythmes
- Rafraîchissement : 25 FPS, 320 pixels de large