Aller au contenu

SimDisplay

SimDisplay fournit une interface commune pour les écrans TFT (TFT_eSPI) et OLED (U8g2), avec gestion du sprite buffering pour un rendu fluide.

Les couleurs suivent les normes des équipements médicaux réels :

ParamètreCouleurCode 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ératureOrange#f97316
AlarmeRouge#ef4444

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)

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());
}

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