Tarjeta de muro de frecuencia cardíaca

Esfuerzo en vivo para una clase de fitness: un mosaico para cada miembro con el color de su zona de frecuencia cardíaca, el porcentaje del máximo y las calorías, una tabla de clasificación de la clase y la mezcla de zonas.

Muestra el esfuerzo en vivo durante una clase de fitness. Cada miembro aparece como un mosaico coloreado según la zona de frecuencia cardíaca, mostrando porcentaje del máximo y calorías. También se muestra una tabla de líderes y mezcla de zonas de la clase.

Tarjeta en vivo

Esta tarjeta se dibuja en su navegador con el mismo código que ejecutan los Players, con datos de ejemplo.

Categoría: Clasificaciones y posiciones, Números y métricas, Reconocimiento, Eventos y lugares.

Diseños

Esta tarjeta de pantalla completa llena toda la pantalla en modo horizontal o vertical y no se coloca como esquina, chip o tira.

Diseños: completo. Formularios: horizontal, vertical.

Diseños, temas y publicación de tarjetas. Explorar las tarjetas.

Datos y privacidad

Feed: screenrig.heartrate/v1.

Los documentos del feed llevan atribución de la fuente. El Player suministra el feed a la tarjeta.

Muestra solo nombres de pila o apodos: nunca un apellido, edad, frecuencia cardíaca máxima más allá del porcentaje o cualquier historial de salud, y la tarjeta no almacena nada sobre un miembro.

Propiedades

Para tema, fondo, acento y posición, consulte Propiedades comunes.

Establezca las propiedades estáticas en los params de la tarjeta al crearla. Su documento de datos solo contiene propiedades dinámicas. Las filas anidadas describen el contenido de su propiedad principal.

Propiedades estáticas

NombreTipoPredeterminadoValores y límitesDescripción
titlestring"Class effort"maxLength: 40
defaultMaxHrinteger190mínimo: 100; máximo: 230Frecuencia cardíaca máxima para un miembro sin maxHr o edad.
rankBystring"points""points", "calories", "effort"Lo que clasifica la tabla de posiciones: puntos de esfuerzo, calorías o porcentaje del máximo. Una lista de miembros sin ninguno de los primeros recurre al siguiente.
leadersinteger5mínimo: 3; máximo: 10Filas en la tabla de clasificación (menos cuando el espacio es reducido).
perPageinteger24mínimo: 4; máximo: 48Baldosas en una página; una clase más grande ocupa páginas adicionales.
pageSecondsinteger10mínimo: 5; máximo: 60Cuánto tiempo permanece cada página de mosaicos en pantalla.
showBpmbooleantrueMostrar latidos por minuto en cada ficha.
staleSecondsinteger45mínimo: 5; máximo: 3600Las lecturas más antiguas que esta atenúan los mosaicos y muestran Actualizado hace 3 min.
hour12booleanfalse
backgroundColorcadena, nulonullpatrón: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Sobrescribe el fondo y la placa de la tarjeta con un color plano ordenado por CSS. #RRGGBBAA suministra opacidad. background none tiene prioridad.
textColorcadena, nulonullpatrón: "^#[0-9A-Fa-f]{6}([0-9A-Fa-f]{2})?$"Sobrescribe los colores de texto principal y secundario. Los colores de acento y estado semántico mantienen sus roles.

Propiedades dinámicas

NombreTipoPredeterminadoValores y límitesDescripción
classNamestring""maxLength: 60La clase, por ejemplo 6:00 AM Burn, cuando el feed no proporciona ninguna.
startedAtstring""maxLength: 32Cuando comenzó la clase, ISO 8601: el encabezado cuenta hacia arriba desde ella.
endsAtstring""maxLength: 32Cuando termina la clase, ISO 8601: el encabezado cuenta regresivamente hasta ella.
membersarray[]minItems: 0; maxItems: 120Los miembros en la clase. Un feed (screenrig.heartrate/v1) prevalece cuando está presente; de lo contrario, el almacén de datos suministra las mismas filas.
members[].idstringmaxLength: 40Un ID opaco de miembro o correa; nunca se muestra.
members[].namestringmaxLength: 60; RequeridoSolo se muestra la primera palabra.
members[].nicknamestringmaxLength: 20Mostrado en lugar del nombre cuando está presente.
members[].hrnumbermínimo: 0; máximo: 260Frecuencia cardíaca en latidos por minuto; 0 o ausente significa sin señal.
members[].maxHrnumbermínimo: 80; máximo: 240La frecuencia cardíaca máxima del miembro.
members[].agenumbermínimo: 5; máximo: 110Se usa para 220 menos la edad cuando no hay maxHr; nunca se muestra.
members[].caloriesnumbermínimo: 0; máximo: 5000
members[].pointsnumbermínimo: 0; máximo: 5000Puntos de esfuerzo (Myzone MEPs y similares).
updatedstring""maxLength: 32Cuando se leyeron las frecuencias cardíacas, ISO 8601 (solo almacén de datos; un feed lleva fetchedAt).

Ejemplo de lienzo

Guarde las propiedades estáticas como params.json y cree la tarjeta. El resultado incluye su id crd_.

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

Agregue este elemento a los primitives de una página de la lista de reproducción, con ese id en lugar del del ejemplo. Publique la lista de reproducción y asigne una pantalla.

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

Escribir datos en vivo

Escriba el documento en la tarjeta después de crearla y luego reemplácelo para actualizar la pantalla sin republicar. La tarjeta verifica cada escritura contra sus propiedades dinámicas y rechaza un documento que no acepta. Use el mismo proyecto que la lista de reproducción.

Guarde el documento como card-data.json. La CLI lee el documento en sí, sin envoltorio:

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

O llame a la API directamente. La API envuelve el mismo documento en un campo document. Un token de agente ya nombra su proyecto, por lo que no se envía encabezado de proyecto; si envía ScreenRig-Project, debe coincidir con el proyecto del token. Proporcione su autorización API a través del entorno; vea Autenticación 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":""}}'