deviceinfo
16 min
el objeto deviceinfo le permite identificar el hardware, firmware y las características del dispositivo idl de deviceinfo 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() diclass = require("@brightsign/deviceinfo"); di = new diclass(); deviceinfo getloadstatistics() 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() \<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() \<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() 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 if (di osversioncompare("8 2") > 0) { console log("firmware version is greater than 8 2") } o if (di osversioncompare("8 4") < 0) { console log("firmware version is less than 8 4") } bootversioncompare() 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() 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() 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() 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() 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 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 hdmi ® "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 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 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\<\<usbtopologyinterface\>\</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 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 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 }; }; }