Carte mur de fréquence cardiaque

Effort en direct pour un cours de fitness : une tuile pour chaque membre dans la couleur de sa zone de fréquence cardiaque avec le pourcentage du maximum et les calories, un classement de la classe et la répartition des zones.

Affiche l’effort en direct pendant un cours de fitness. Chaque membre apparaît comme une tuile colorée selon la zone de fréquence cardiaque, montrant le pourcentage du maximum et les calories. Un classement de la classe et un mélange de zones sont également affichés.

Carte en direct

Cette carte est dessinée dans votre navigateur par le même code que les lecteurs, avec des données d’exemple.

Catégorie : Santé. Étiquettes : Classements et positions, Chiffres et mesures, Reconnaissance, Événements et lieux.

Mises en page

Cette carte plein écran occupe tout l’écran en mode paysage ou portrait et n’est pas placée en coin, puce ou bande.

Mises en page : pleine. Formes : paysage, portrait.

Mises en page, thèmes et publication des cartes. Parcourir les cartes.

Données et confidentialité

Flux : screenrig.heartrate/v1.

Les documents du flux portent une attribution de source. Le Player fournit le flux à la carte.

Affiche uniquement les prénoms ou surnoms : jamais un nom de famille, un âge, une fréquence cardiaque maximale au-delà du pourcentage ou un historique de santé, et la carte ne stocke rien sur un membre.

Propriétés

Pour le thème, l’arrière-plan, l’accent et la position, voir Propriétés communes.

Définissez les propriétés statiques dans les params de la carte lorsque vous la créez. Son document de données ne contient que des propriétés dynamiques. Les lignes imbriquées décrivent le contenu de leur propriété parente.

Propriétés statiques

NomTypePar défautValeurs et limitesDescription
titlestring"Class effort"maxLength : 40
defaultMaxHrinteger190minimum : 100 ; maximum : 230Fréquence cardiaque maximale pour un membre sans maxHr ni âge.
rankBystring"points""points", "calories", "effort"Ce que le classement ordonne : points d’effort, calories ou pourcentage du maximum. Une liste de membres sans aucun des premiers retombe sur le suivant.
leadersinteger5minimum : 3 ; maximum : 10Lignes au classement (moins si l’espace est restreint).
perPageinteger24minimum : 4 ; maximum : 48Tuiles sur une page ; une classe plus grande prend d’autres pages.
pageSecondsinteger10minimum : 5 ; maximum : 60Durée d’affichage de chaque page de vignettes.
showBpmbooleantrueAfficher les battements par minute sur chaque tuile.
staleSecondsinteger45minimum : 5 ; maximum : 3600Les relevés plus anciens que ce délai assombrissent les tuiles et affichent : Mis à jour il y a 3 min.
hour12booleanfalse
backgroundColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace le fond et la plaque de la carte par une couleur plate ordonnée en CSS. #RRGGBBAA fournit l’opacité. background none a la priorité.
textColorchaîne, nulnullmotif : "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Remplace les couleurs du texte principal et secondaire. Les couleurs d’accentuation et de statut sémantique conservent leur rôle.

Propriétés dynamiques

NomTypePar défautValeurs et limitesDescription
classNamestring""maxLength : 60La classe, par exemple 6:00 AM Burn, lorsque le flux n’en fournit pas.
startedAtstring""maxLength : 32Quand la classe a commencé, ISO 8601 : l’en-tête compte à partir de ce moment.
endsAtstring""maxLength : 32Quand la classe se termine, ISO 8601 : l’en-tête compte à rebours jusqu’à ce moment.
membersarray[]minItems : 0 ; maxItems : 120Les membres dans la classe. Un flux (screenrig.heartrate/v1) prévaut s’il est présent ; sinon, le magasin de données fournit les mêmes lignes.
members[].idstringmaxLength : 40Un identifiant opaque de membre ou de sangle ; jamais affiché.
members[].namestringmaxLength : 60 ; ObligatoireSeul le premier mot est affiché.
members[].nicknamestringmaxLength : 20Affiché à la place du nom lorsqu’il est présent.
members[].hrnumberminimum : 0 ; maximum : 260Fréquence cardiaque en battements par minute ; 0 ou absent signifie aucun signal.
members[].maxHrnumberminimum : 80 ; maximum : 240La fréquence cardiaque maximale du membre.
members[].agenumberminimum : 5 ; maximum : 110Utilisé pour 220 moins l’âge lorsqu’il n’y a pas de maxHr ; jamais affiché.
members[].caloriesnumberminimum : 0 ; maximum : 5000
members[].pointsnumberminimum : 0 ; maximum : 5000Points d’effort (Myzone MEPs et similaires).
updatedstring""maxLength : 32Quand les fréquences cardiaques ont été lues, ISO 8601 (stockage des données uniquement ; un flux porte fetchedAt).

Exemple de canevas

Enregistrez les propriétés statiques comme params.json et créez la carte. Le résultat contient son identifiant crd_.

{
  "theme": "neomustard"
}
screenrig card create --type heart-rate-wall --major 1 --file params.json

Ajoutez cet élément aux primitives d’une page de liste de lecture, en remplaçant l’identifiant de l’exemple par celui de votre carte. Publiez la liste de lecture et assignez un écran.

{
  "id": "heart-rate-wall",
  "primitive": "card",
  "card": "crd_01EXAMPLECARD000000000",
  "layout": "full",
  "content_fit": "fill"
}

Écrire des données en direct

Écrivez le document dans la carte après l’avoir créée, puis remplacez-le pour mettre à jour l’écran sans republier. La carte vérifie chaque écriture par rapport à ses propriétés dynamiques et refuse un document qu’elle rejette. Utilisez le même projet que la liste de lecture.

Enregistrez le document sous card-data.json. La CLI lit le document lui-même, sans enveloppe :

{
  "className": "",
  "startedAt": "",
  "endsAt": "",
  "members": [],
  "updated": ""
}
screenrig card data put crd_01EXAMPLECARD000000000 --file card-data.json

Ou appelez directement l’API. L’API enveloppe le même document dans un champ document. Un jeton agent nomme déjà son projet, donc aucun en-tête de projet n’est envoyé ; si vous envoyez ScreenRig-Project, il doit correspondre au projet du jeton. Fournissez votre autorisation API via l’environnement ; voir Authentification API.

curl --request PUT "https://api.screenrig.ai/api/cards/crd_01EXAMPLECARD000000000/data" \
  --header "Authorization: Bearer $SCREENRIG_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{"document":{"className":"","startedAt":"","endsAt":"","members":[],"updated":""}}'