Skip to main content

Crate embassy_st7789v_plot

Crate embassy_st7789v_plot 

Source
Expand description

§embassy-st7789v-plot

Moteur de tracé de graphiques cartésiens (X, Y) adaptatifs et configurables pour écrans TFT LCD ST7789V, s’appuyant sur la structure Graphics.

§Caractéristiques principales

  • #![no_std] + #![forbid(unsafe_code)] : Sûr et embarqué
  • Zéro allocation dynamique : Buffers statiques uniquement (ring buffer)
  • API async : Basée sur Embassy pour ST7789V
  • Axes configurables : Graduations statiques avec labels personnalisés
  • Grille adaptative : Grille horizontale/verticale pour meilleure lisibilité
  • Historique circulaire : Jusqu’à 240 points (limité par la largeur écran)
  • Protection des bordures : Les labels de graduations restent à l’écran

§Structures principales

  • Graphics : Contexte graphique pour les primitives de dessin
  • AxisConfig : Configuration d’un axe (min, max, pas de graduation, label)
  • PlotConfig : Configuration complète du graphique (position, marges, couleurs)
  • LineChart : Gestionnaire du graphique avec données historiques

§Exemple d’utilisation

use embassy_st7789v_plot::{Graphics, AxisConfig, PlotConfig, LineChart};

// Créer les configurations d'axes
let x_axis = AxisConfig::new(0.0, 10.0, 2.0, b"Time (s)");
let y_axis = AxisConfig::new(0.0, 100.0, 20.0, b"Temp (C)");

// Créer la configuration complète du graphique
let config = PlotConfig {
    x: 10,
    y: 10,
    width: 220,
    height: 200,
    margin_left: 30,
    margin_right: 10,
    margin_top: 10,
    margin_bottom: 30,
    x_axis,
    y_axis,
    bg_color: Color::BLACK,
    line_color: Color::GREEN,
    axis_color: Color::WHITE,
    grid_color: Color::from_rgb(64, 64, 64),
    text_color: Color::WHITE,
    label_color: Color::CYAN,
};

// Créer le gestionnaire de graphique (N = 100 points max)
let mut chart: LineChart<100> = LineChart::new(config);

// Ajouter des données
chart.push(45.2);
chart.push(47.8);
chart.push(52.1);

// Afficher le graphique
let mut gfx = Graphics::new_no_rst(display);
chart.render(&mut gfx).await;

§API asynchrone

Tous les appels de rendu (render, line, pixel) sont asynchrones pour permettre une meilleure intégration avec l’écosystème Embassy et éviter les blocages lors de la communication SPI.

Structs§

AxisConfig
Définit un axe avec graduation statique fixe.
Graphics
LineChart
Gestionnaire du graphique avec axes statiques configurables.
PlotConfig
Configuration complète du tracé graphique.

Constants§

PLOT_HISTORY_LIMIT
Taille maximale de l’historique des données du graphique.

Functions§

line
Trace une ligne entre deux points en utilisant l’algorithme de Bresenham.