---
title: deviceinfo
slug: develop/es/deviceinfo
docTags: 
createdAt: 2025-03-11T07:07:19.526Z
---

El objeto *deviceinfo* le permite identificar el hardware, firmware y las características del dispositivo.

**IDL de deviceinfo**

```text
interface DeviceInfo {
    attribute String model;
    attribute String osVersion;
    attribute String bootVersion;
    attribute String serialNumber;
    attribute String family;
    
    int osVersionCompare(String version);
    int bootVersionCompare(String bootVersion);
    bool osVersionIsAtLeast(String version);
    bool bootVersionIsAtLeast(String bootVersion);
    bool hasFeature(String feature);
    Promise <String> getLoadStatistics(String item);
    Promise <TemperatureLocation> getTemperature();
    Promise <UsbTopologyInterface> getUsbTopology();
};

dictionary TemperatureLocation {
    float celsius;
};

interface UsbTopologyInterface {
    attribute String vid;
    attribute String pid;
    attribute String raw;
    attribute String fid;
    [optional] attribute String category;
    [optional] attribute String ident;
    attribute Array<UsbTopologyInterface> children;
};

```

## Creación de objetos

Para crear un objeto *deviceinfo* , cargue el módulo `@brightsign/deviceinfo` usando el método `require()` . 

```javascript
diClass = require("@brightsign/deviceinfo");
di = new diClass(); 
```

## DeviceInfo

### getLoadStatistics()

```javascript
Promise <String> getLoadStatistics(String item)
```

Proporciona información actual de rendimiento relacionada con el kernel de Linux. El `artículo` puede ser cualquiera de los siguientes:

- `loadavg`: Proporciona información sobre el rendimiento del sistema. Las primeras tres columnas miden la utilización de CPU y E/S durante los últimos 1, 5 y 10 minutos, respectivamente. La cuarta columna muestra el número de procesos que se están ejecutando actualmente y el número total de procesos. La última columna muestra el ID del proceso utilizado más recientemente.
- `meminfo`: Muestra el uso de memoria física y swap
- `slabinfo`: Proporciona información sobre el uso de memoria a nivel de slab
- `estadística`: Proporciona estadísticas generales sobre el sistema (por ejemplo, el número de fallos de página desde que el sistema se inició)
- `vmstat`: Muestra estadísticas detalladas de memoria virtual del kernel
- `zoneinfo`: Proporciona estadísticas generales sobre el sistema, desglosadas por Node del sistema
- `interrupciones`: Muestra qué interrupciones están en uso y cuántas ha habido de cada tipo
- `versión`: Proporciona la versión del kernel

### getTemperature()

```javascript
<TemperatureLocation> getTemperature()
```

Devuelve:

- `key` <font color="#704ae0">string</font>:  Una clave de ubicación de cadena dinámica
- `valor` <font color="#704ae0">float</font>: La temperatura del dispositivo como un valor de punto flotante

### getUsbTopology()

```javascript
<UsbTopologyInterface> getUsbTopology()
```

Obtiene la topología USB del reproductor.

Estos atributos devuelven información sobre el reproductor BrightSign:

- `modelo` <font color="#704ae0">string</font>: Devuelve el nombre del modelo del dispositivo BrightSign que ejecuta el script, como una cadena (por ejemplo, "HD1020" o "XD230").
- `osVersion` <font color="#704ae0">string</font>: Devuelve el número de versión del OS para el dispositivo BrightSign que ejecuta el script.
- `bootVersion` <font color="#704ae0">string</font>: Devuelve el número de versión del firmware de arranque de BrightSign, también conocido como "safe mode", como una cadena (por ejemplo, "1.0.4").
- `númeroDeSerie` <font color="#704ae0">string</font>: Devuelve el número de serie del dispositivo que, si no es una cadena vacía, es único para la unidad que ejecuta el script.
- `familia` <font color="#704ae0">string</font>: Devuelve una sola cadena que indica la familia a la que pertenece el dispositivo. Una familia de dispositivos es un conjunto de modelos que pueden ejecutar el mismo firmware.

### osVersionCompare()

```javascript
int osVersionCompare(String version)
```

Esta función devuelve un entero mayor que cero si la versión actual del OS es mayor que el parámetro, 0 si es exactamente igual, o menor que cero si es inferior. Por ejemplo:

```javascript
if (di.osVersionCompare("8.2") > 0) { console.log("Firmware version is greater than 8.2") }
```

o:

```javascript
if (di.osVersionCompare("8.4") < 0) { console.log("Firmware version is less than 8.4") }
```

### bootVersionCompare()

```javascript
int bootVersionCompare(String bootVersion)
```

Esta función devuelve un entero mayor que cero si la versión actual del cargador de arranque es mayor que el parámetro, 0 si es exactamente igual, o menor que cero si es inferior (consulte los ejemplos de `osVersionCompare()`). 

### osVersionIsAtLeast()

```javascript
bool osVersionIsAtLeast(String version)
```

Devuelve `Verdadero` si la versión de BrightSign OS en el dispositivo es mayor o igual al número de versión representado por la cadena pasada (por ejemplo, "4.0.13").

### bootVersionIsAtLeast()

```javascript
bool bootVersionIsAtLeast(String bootVersion)
```

Devuelve `Verdadero` si la versión del OS de arranque de BrightSign en el dispositivo es mayor o igual al número de versión representado por la cadena pasada (por ejemplo, "4.4.22").

### GetBoardName()&#x20;

Proporciona el nombre de código interno de la placa del reproductor BrightSign. Esto rara vez es útil y la respuesta exacta puede cambiar.

### hasFeature()

```javascript
bool hasFeature(String feature)
```

Devuelve `Verdadero` si la característica del reproductor en la cadena pasada (que se pasa como un parámetro de cadena que no distingue entre mayúsculas y minúsculas) está presente en el dispositivo y firmware actuales. Las posibles características que se pueden consultar desde el script se enumeran a continuación:

:::hint{type="danger"}
Si pasa un parámetro distinto de los enumerados a continuación, puede devolver False incluso si la característica está disponible en el hardware y firmware.
:::

- `"5v serial"`: Un puerto serie de 5V
- `"audio1"`: La primera salida de audio
- `"audio2"`: Una segunda salida de audio
- `"audio3"`: Una tercera salida de audio
- `"brightscript1"`: BrightScript Versión 1
- `"brightscript2"`: BrightScript Versión 2
- `"video de componente"`: Una salida de video por componentes
- `"ethernet"`: Una interfaz Ethernet
- `"conector gpio"`: Un puerto GPIO DA15 o de estilo Pheonix 
- `"hdmi"`: Una salida HDM&#x49;**®**
- `"entrada HDMI"`: Una entrada HDMI
- `"hevc_decode"`: Un decodificador de video H.265
- `"media_decryption"`: La capacidad de descifrar contenido multimedia cifrado con AES, incluidos archivos de video, imagen y audio.
- `"almacenamiento NAND"`: Almacenamiento NAND para el cargador de arranque y el firmware
- `"networking"`: Cualquier forma de capacidad de red. Una devolución de False puede indicar que actualmente no hay red disponible.
- `"botón de reinicio"`: Un botón de restablecimiento
- `"registro"`: Almacenamiento persistente integrado
- `"rtc"`: Un reloj en tiempo real (RTC)
- `"sd"`: Almacenamiento compatible con SD o SDHC
- `"sdhc"`: Solo almacenamiento compatible con SDHC
- `"puerto serie 0"`: El primer puerto serie
- `"puerto serie 1"`: Un segundo puerto serie
- `"puerto serie 2"`: Un tercer puerto serie
- `"botón svc"`: Un botón de servicio ("SVC"). Pasar el término heredado `"botón gpio12"` producirá el mismo resultado.
- `"usb"`: Una o más interfaces USB
- `"vga"`: Una salida VGA
- `"video_encoder"`: Un codificador/transcodificador de video

## TemperatureLocation

- `celsius` <font color="#704ae0">float</font>: Devuelve la temperatura del dispositivo en grados Celsius, como un número de punto flotante.

## UsbTopologyInterface

Estos atributos devuelven la topología USB del reproductor, que puede utilizarse para determinar si ciertos dispositivos USB están conectados a ciertos puertos.&#x20;

- `vid` <font color="#704ae0">string</font>: Cadenas de cuatro caracteres que codifican el Vendor ID y el Product ID en hexadecimal. Los ceros iniciales están presentes y los caracteres alfabéticos están en minúsculas (por ejemplo, vid = "0b95").
- `pid` <font color="#704ae0">string</font>: Cadenas de cuatro caracteres que codifican el Vendor ID y el Product ID en hexadecimal. Los ceros iniciales están presentes y los caracteres alfabéticos están en minúsculas (por ejemplo, pid = "0b95").
- `raw` <font color="#704ae0">string</font>: Este es un ID de nodo de dispositivo USB interno (Linux).
- `fid` <font color="#704ae0">string</font>: Los puertos que tienen dispositivos USB conectados incluirán un valor `fid` (ID descriptivo), que puede utilizarse para determinar a qué puerto físico del reproductor está conectado el dispositivo USB. Consulte [roDeviceInfo](docId\:YuDJoiPUdUw_RC3FYb_ZZ) para obtener más información.&#x20;
- `categoría` <font color="#704ae0">string</font> <font color="#01a0af">optional</font>: Esta cadena opcional describe el tipo de dispositivo (por ejemplo, "HUB", "SERIAL", "NET", "HID", "AUDIO" u "OTHER").
- `ident` <font color="#704ae0">string</font> <font color="#01a0af">optional</font>: Este es un identificador adicional. Para dispositivos de categoría "NET", el `ident` es el nombre de la interfaz de red del sistema (por ejemplo, "usb0").
- `niños` <font color="#704ae0">Array&lt;&lt;UsbTopologyInterface&gt;</font> <font color="#01a0af">optional</font>: Los elementos secundarios están presentes para dispositivos de categoría "HUB". Los dispositivos secundarios tienen la misma estructura, por lo que los hubs anidados producirán datos secundarios anidados.

## Ejemplo

Este ejemplo devuelve la topología USB del dispositivo:

```javascript
diClass = require("@brightsign/deviceinfo");
di = new diClass();
 
usbTopology = await di.getUsbTopology();
 
parseTopology = function(usbT) {
  for(i in usbT) {
    let device = usbT[i];
    if (device.category === "HUB")
        parseTopology(device.children);   
    if (device.category === "NET")
        console.log("Found " + device.fid + " interface " + device.ident);
  }
};
 
parseTopology(usbTopology);
```

Para reemplazar BSDeviceInfo con el objeto *deviceinfo*:

```javascript
if (typeof(BSDeviceInfo) === typeof undefined) 
{
  global.BSDeviceInfo = class BSDeviceInfo {
    constructor() {
      let fs = require('fs');
      let DeviceInfoClass = require('@brightsign/deviceinfo');
      let deviceInfo = new DeviceInfoClass();

      // Map properties and getters
      this.model = deviceInfo.model;
      this.version = deviceInfo.osVersion;
      this.bootVersion = deviceInfo.bootVersion;
      this.deviceUniqueId = deviceInfo.serialNumber;
      this.family = deviceInfo.family;
      Object.defineProperty(this, 'deviceUptime', {
          get: Object.getOwnPropertyDescriptor(deviceInfo, 'deviceUptime').get,
          enumerable: true,
      });
      // And methods
      this.VersionCompare = deviceInfo.osVersionCompare;
      this.BootVersionCompare = deviceInfo.bootVersionCompare;
      this.FirmwareIsAtLeast = deviceInfo.osVersionIsAtLeast;
      this.BootFirmwareIsAtLeast = deviceInfo.bootVersionIsAtLeast;
      this.HasFeature = deviceInfo.hasFeature;
      this.GetLoadStatistics = function(s) {
        let stats = new Set([ 'zoneinfo', 'loadavg', 'meminfo', 'stat', 'vmstat', 'interrupts', 'version', 'boardid' ]);
        var result  = 'n/a';
        if (stats.has(s)) {
          result = fs.readFileSync('/proc/' + s).toString();
        }
        return result;
      };
      // GetTemperature and GetUsbTopology are not present in the BSDeviceInfo class
    };
  };
}
```

