Configuración e instalación de la app en pantalla Tizen E‑Paper

Resumen

Este manual en español guía la instalación, configuración y operación de dispositivos E‑Paper con la app móvil y aplicaciones personalizadas (Tizen Web). Se organiza por flujo de uso: incorporación del dispositivo, configuración de red y del equipo, diagnósticos, desarrollo de apps personalizadas, APIs disponibles y buenas prácticas. Las capturas de pantalla referenciadas provienen de la app móvil y se describen textualmente para su fácil ubicación.

Este manual se elaboró a partir del documento “E‑Paper Custom App Development Guide”, priorizando instrucciones prácticas y referencia técnica. Imágenes: extraídas de la app móvil (descritas, sin incrustar archivos).

1. Requisitos previos

1.1 Red y móvil

  • Wi‑Fi: requerido para la vinculación y configuración inicial.

  • Android: compatible desde versión 10 o superior.

  • Distribución de la app: APK/Android y iOS disponibles en tiendas oficiales (Play Store / App Store).

Sugerencia:

1.2 Descarga de la app

  • Escanee el código QR proporcionado por el proveedor o busque la app E‑Paper en la tienda.

  • Alternativamente, use el enlace corporativo si su organización distribuye la app internamente (MDM).

2. Adición de dispositivos (App móvil)

Existen dos métodos para agregar un E‑Paper desde la pantalla principal de la app móvil.

2.1 Método 1: Botón “Agregar dispositivo”

  1. Abrir la app móvil y tocar “Agregar dispositivo”.

  2. Escanear el QR mostrado en la pantalla del E‑Paper. Descripción visual: QR de emparejamiento en la pantalla del dispositivo.

  3. Continuar al paso de configuración de red (ver Sección 3).

Código de emparejamiento y nombre del dispositivo: en el display del E‑Paper se muestran datos como “Código de emparejamiento: 659723” y “Nombre: Samsung EMDXxxx”.

2.2 Método 2: Icono “+” (parte superior derecha)

  1. Abrir la app móvil y tocar el icono “+”.

  2. Elegir la opción “Vincular” (Pair).

  3. Ingresar el código de emparejamiento que se ve en el E‑Paper.

  4. Continuar al paso de configuración de red (ver Sección 3).

3. Configuración de red (OOBE)

  1. Seleccionar la red Wi‑Fi deseada.

  2. Ingresar la contraseña de Wi‑Fi.

  3. Aceptar términos y condiciones. Importante: no omitir este paso.

Si omite la aceptación de T&C durante el OOBE, la App personalizada no se instalará automáticamente.

Al finalizar, el OOBE se completa y el dispositivo queda en línea para su configuración.

4. Configuración del dispositivo (App móvil)

4.1 Flujo de ajustes

  1. Elegir “Configuración manual”.

  2. Seleccionar la “Orientación” deseada (vertical/horizontal) según el montaje.

  3. Configurar “Modo de sueño” (Sleep Mode) para ahorro de energía.

  4. Definir “Tiempo de refresco” de la pantalla. Recomendado para protección del panel: establecer un intervalo de refresco periódico.

  5. Elegir “Custom” e ingresar la URL de su aplicación (Custom App) o de configuración sssp_config.xml (ver Sección 8).

  6. Definir un PIN de seguridad del dispositivo.

  7. Asignar “Nombre del dispositivo” (para su fácil identificación).

  8. Presionar “Instalar”. La App personalizada se instalará en el E‑Paper.

Defina un nombre que refleje ubicación y función (por ejemplo: “Piso-3-Sala-Reuniones‑A”).

4.2 Información del dispositivo

Desde la pestaña “Sistema” > “Configuración del dispositivo” puede consultar:

  • Estado de red, fecha y hora, versión de firmware.

  • Opciones individuales de diagnóstico.

  • Restablecimiento del equipo: “Restablecer todo”.

5. Depuración de App personalizada

5.1 Pasos en la App móvil

  1. Seleccione el dispositivo en la pantalla inicial de la app móvil.

  2. Active “Modo Desarrollador”.

  3. Ingrese la IP de su PC (host de desarrollo).

  4. Reinicie el E‑Paper. Es obligatorio para aplicar cambios.

5.2 Tizen SDK (modo debug)

  1. Abrir Tizen SDK y conectar con el dispositivo.

  2. Instalar la app en modo debug.

Conexión SDB y empaquetado: ver Sección 9 para comandos CLI paso a paso.

6. Restablecimiento (Reset) del dispositivo

  1. Presione simultáneamente las teclas PAIRING y MODE por 5 segundos.

  2. Espere aproximadamente 10 segundos a que concluya el proceso.

  3. Presione POWER para encender nuevamente.

Un reinicio borra configuraciones. Úselo ante fallos críticos o para reconfiguraciones controladas.

7. Requisitos de App personalizada (Tizen)

7.1 Metadatos obligatorios en config.xml

  • E‑Paper: <tizen:metadata key="http://samsung.com/tv/metadata/application/epaper.support" value="true"/> (sin este tag, la app no se instala).

  • Red opcional: <tizen:metadata key="http://samsung.com/tv/metadata/use.network" value="false"/> para permitir lanzamiento sin red.

7.2 sssp_config.xml

Archivo de configuración utilizado por el dispositivo para aprovisionamiento de Custom App y parámetros iniciales. Aloje este archivo en un servidor accesible por el E‑Paper e indique su URL durante la configuración (ver Sección 4 y 8).

8. Gestión remota con VXT RM + Custom App

  1. Conectar el E‑Paper con la app móvil e iniciar la configuración.

  2. En “Seleccionar tipo de instalación”, escoger: VXT Server.

  3. Emparejar la pantalla con su espacio de trabajo en VXT RM.

  4. Crear y aplicar el preset al dispositivo.

  5. En la app móvil, cambiar Origen de Contenido/Tipo de Player a Custom/CustomApp.

  6. Indicar la URL donde está alojado su sssp_config.xml.

  7. Hacer clic en “Instalar”.

  8. Listo: el E‑Paper ejecuta la aplicación WGT y VXT RM puede controlar sus ajustes.

Compatibilidad verificada con App (Play Store) y firmware 1040.32 del dispositivo.

9. Lanzamiento en modo Depuración (CLI Tizen/SDB)

  1. Construir la app: tizen build-web

  2. Empaquetar: tizen package -t wgt -- .buildResult -o ./

  3. Conectar por SDB: sdb connect <IP_TV>

  4. Subir el paquete: sdb push <wgtname.wgt> /home/owner/share/tmp/sdk_tools/tmp

  5. Instalar: sdb shell 0 vd_appinstall <AppPackageID> /home/owner/share/tmp/sdk_tools/tmp/<wgtname.wgt>

  6. Iniciar en debug: confirmar logs en consola y depurador del navegador integrado.

Asegure que el firewall permita el tráfico SDB y que el dispositivo y PC estén en la misma subred.

10. APIs Web para E‑Paper (TEP)

Librería: webapis.epaper. Privilegios: según API. Uso exclusivo en dispositivos E‑Paper.

10.1 Gestión de refresco y LED

  • Versión API: webapis.epaper.getVersion()

  • Refresco inmediato: webapis.epaper.screenRefreshNow()

  • Programar refresco: webapis.epaper.setScreenRefreshTime({hour, minute}) / obtener: getScreenRefreshTime()

  • LED: setLEDStateOn({color, duration}), setLEDStateOff(color), setLEDStateBlink({color, onIntervalTime, offIntervalTime, duration})

  • Batería (icono): getBatteryWarningIconDisplay(), setBatteryWarningIconDisplay(mode)

10.2 Energía y reposo

  • Motivo de encendido programado: isScheduledPlayBootReason()

  • Red en standby: getNetworkStandby() / setNetworkStandby(mode)

  • Programar “Wakeup”: setScheduleWakeupTime(wakeup_time) / consultar: getScheduleWakeupTime(id) / cancelar: cancelScheduleWakeupTime(id)

  • Ir a reposo: goToSleep()

  • Auto‑sueño: getAutoSleepTime(), setAutoSleepTime(delayTime), resetAutoSleepTime()

11. APIs de Sistema (SystemControl)

Librería: webapis.systemcontrol. Privilegios: según operación.

  • Descarga de Custom App: setCustomAppDownloadListener(), unsetCustomAppDownloadListener(), isCustomAppDownloaded()

  • Dispositivo: getSerialNumber(), rebootDevice(), captureScreen(path)

  • Firmware: updateFirmware(), listeners: setUpdateFirmwareListener() / unsetUpdateFirmwareListener()

  • Menú/controles: getButtonLock(), getOnScreenMenuOrientation()

  • Custom App info: setCustomAppInfo(), getCustomAppInfo()

  • Node server: startNodeServer(), stopNodeServer()

12. APIs de Tiempo (Timer)

Librería: webapis.timer.

  • Fecha y hora: setCurrentTime(), getCurrentTime()

  • NTP: setNTP(), getNTP()

  • DST (horario de verano): setDST(), getDST()

  • Timeout de sincronización: setSystemTimeSyncTimeout(), getSystemTimeSyncTimeout()

13. APIs de Sistema de Archivos (FileSystem)

Privilegios requeridos: http://tizen.org/privilege/filesystem.write, http://tizen.org/privilege/filesystem.read

  • Directorios/archivos: createDirectory(), deleteFile(), deleteDirectory(), copyFile(), copyDirectory(), moveFile(), moveDirectory(), rename(), listDirectory()

  • Consultas: openFile(), isFile(), isDirectory(), pathExists(), getDirName()

  • Almacenamiento: getStorage(label), listStorages(), addStorageStateChangeListener(), removeStorageStateChangeListener(), toURI()

Referencia: https://docs.tizen.org/application/web/api/latest/device_api/tv/tizen/filesystem.html

14. APIs de Descarga

Privilegio requerido: http://tizen.org/privilege/download

Consulte la API de descarga en: https://docs.tizen.org/application/web/api/latest/device_api/tv/tizen/download.html

15. APIs de Batería del Dispositivo

Librería: webapis.deviced. Privilegios: no indicados en el documento. Disponibilidad: previsto para próxima versión oficial de firmware.

  • getBatteryCapacity(): capacidad de batería.

  • getBatteryPowerSource(): fuente de energía (“AC_CHARGER” o “NO_CHARGER”).

16. Ejemplos de código (fragmentos)

16.1 Refresco inmediato y programado

JavaScript
try {
  webapis.epaper.screenRefreshNow();
} catch (e) {
  console.log("[screenRefreshNow] " + e.code + " name: " + e.name + " message: " + e.message);
}

const refreshTime = { hour: 6, minute: 15 };
try {
  webapis.epaper.setScreenRefreshTime(refreshTime);
} catch (e) {
  console.log("[setScreenRefreshTime] " + e.code + " name: " + e.name + " message: " + e.message);
}

16.2 LED encendido y parpadeo

JavaScript
try {
  webapis.epaper.setLEDStateOn({ color: "LED_GREEN", duration: 150 });
  webapis.epaper.setLEDStateBlink({ color: "LED_GREEN", onIntervalTime: "LED_250MS", offIntervalTime: "LED_250MS", duration: 180 });
} catch (e) {
  console.log("[LED] " + e.code + " name: " + e.name + " message: " + e.message);
}

16.3 Reposo y despertar programado

JavaScript
// Definir un horario de wakeup y flujos de cambio de contenido
function goToSleep() {
  try {
    webapis.epaper.goToSleep();
  } catch (e) {
    console.log("[goToSleep] " + e.code + " name: " + e.name + " message: " + e.message);
  }
}

function scheduleWakeup(time) {
  try {
    const id = webapis.epaper.setScheduleWakeupTime(time);
    console.log("Wakeup ID:", id);
  } catch (e) {
    console.log("[setScheduleWakeupTime] " + e.code + " name: " + e.name + " message: " + e.message);
  }
}

17. Escenario: Dormir y Despertar con actualización de contenido

  1. Cambiar contenido: ejecute su rutina de “init” para preparar el nuevo contenido.

  2. Ir a reposo: tras 1 minuto, llamar webapis.epaper.goToSleep().

  3. Programar despertar: antes de dormir, setScheduleWakeupTime() con un tiempo 2 minutos después.

  4. Actualizar: al despertar, esperar 4 minutos y llamar screenRefreshNow() para mostrar el nuevo contenido.

JavaScript
function init() {
  setTimeout(goToSleep, 60000);       // 1 min
  setTimeout(refreshing, 240000);     // 4 min
}
function refreshing() {
  try { webapis.epaper.screenRefreshNow(); } catch (e) { console.log(e); }
}
function awake(time) {
  try { webapis.epaper.setScheduleWakeupTime(time); } catch (e) { console.log(e); }
}

18. Buenas prácticas para contenido E‑Paper

  • Evite imágenes estáticas prolongadas (texto/logos fijos) para reducir riesgo de burn‑in.

  • Tras cambios de imagen, permita ~5 minutos de estabilización antes de nuevas transiciones.

  • Programe refrescos periódicos para protección de panel y consistencia visual.

El burn‑in no está cubierto por garantía según el lineamiento del proveedor.

19. Solución de problemas

No puedo emparejar el dispositivo con la app

Verifique Wi‑Fi, versión de Android (10+), visibilidad del código/QR en el E‑Paper y permisos de cámara. Pruebe el Método 2 ingresando el código manualmente.

La App personalizada no se instala

Asegúrese de aceptar T&C en OOBE, incluir el tag epaper.support en config.xml y que la URL de sssp_config.xml sea accesible desde la red del E‑Paper.

El dispositivo no despierta a la hora programada

Revise la hora del sistema (NTP/DST), la zona horaria y el ID del temporizador. Valide getScheduleWakeupTime(id) y la alimentación.

Fallos en depuración con Tizen SDK/SDB

Compruebe IP correcta, mismo segmento de red, puertos abiertos y que el Modo Desarrollador esté activo desde la app móvil. Reinicie el E‑Paper tras cambios.

20. Referencias

Apéndice A: Listas rápidas

Checklist de instalación

  • Wi‑Fi operativo

  • Android 10+ o iOS

  • App móvil instalada

  • Dispositivo con QR/código visible

  • Aceptación de T&C en OOBE

Checklist de App Tizen

  • epaper.support=true en config.xml

  • URL válida de sssp_config.xml

  • Privilegios de FileSystem/Download si aplica

  • Flujos de sleep/wakeup probados

  • Logs accesibles en modo debug

Solicitudes de imágenes

Las imágenes originales de la app móvil se han descrito textualmente para referencia rápida. Si desea incrustarlas en esta página, compártalas y las organizaremos por paso:

  • Pantalla de inicio (botón “Agregar dispositivo” e icono “+”).

  • Escaneo de QR en el E‑Paper.

  • Flujo OOBE: selección de Wi‑Fi, contraseña, aceptación T&C.

  • Configuración manual: orientación, sueño, refresco, URL Custom, PIN, nombre.

  • Panel “Sistema” y “Configuración del dispositivo”.