BSControlPort
7 min
este objeto proporciona compatibilidad con las placas de botones usb bp200/bp900 y los puertos gpio las pulsaciones de botones se devuelven como eventos oncontroldown y oncontrolup el objeto se utiliza para configurar niveles de salida en el conector de e/s y supervisar entradas normalmente, los led y los botones se conectan al conector gpio del reproductor brightsign o del brightsign expansion module el equivalente en javascript es puerto de control docid\ lftxxkmgwnlvqkddmddqc creación de objetos el objeto rocontrolport se crea con un único parámetro que especifica el puerto que se va a utilizar bscontrolport(in domstring portname) el parámetro del puerto puede ser uno de los siguientes brightsign especifica el conector gpio integrado (incluido el botón svc (gpio12)) expansor gpio especifica el conector db 25 del brightsign expansion module si no hay ningún brightsign expansion module conectado, la creación del objeto fallará y se devolverá invalid expansor \<n> gpio especifica un dispositivo usb to gpio https //www brightsign biz/digital signage products/accessories/usb c cables conectado al reproductor se pueden controlar múltiples dispositivos usb to gpio utilizando instancias separadas de rocontrolport el primer dispositivo corresponde a "expander 0 gpio" , el segundo a "expander 1 gpio" , etc expander dip especifica los ocho interruptores dip del brightsign expansion module si no hay ningún brightsign expansion module conectado, la creación del objeto fallará y se devolverá invalid la conexión en caliente del brightsign expansion module no es compatible touchboard \<n> gpio recupera eventos de la placa de botones bp200/bp900 especificada los eventos se manejan de la misma manera que los eventos del puerto brightsign touchboard \<n> led setup configura varias opciones de salida led para la placa de botones bp200/bp900 especificada touchboard \<n> led configura los bits para cada botón en la placa de botones bp200/bp900 especificada los bits indican si el led asociado debe estar encendido o apagado dado que se pueden conectar varias placas de botones bp200/bp900 a un reproductor simultáneamente, el valor \<n> especifica la enumeración de puertos de cada placa este valor corresponde al valor \<raw> o \<fid> devuelto por el método rodeviceinfo getusbtopology() docid\ yudjoipuduw rc3fyb zz un valor de enumeración no especificado es sinónimo de una placa de botones con un valor de enumeración de 0 (por ejemplo, touchboard gpio y touchboard 0 gpio son idénticos) métodos consulte la sección hardware interfaces para su reproductor en esta sección docid\ uyyjyej6qojy1hksbrlpu para obtener una tabla de pines y botones correspondientes para el conector gpio integrado boolean configurarcomoentrada (unsigned button) marca el botón especificado como una entrada si se pasa un número de botón no válido, se devolverá falso si la operación se realiza correctamente, la función devuelve verdadero los botones de entrada están en estado de alta impedancia y pueden activarse externamente en alto o en bajo boolean configureasoutput (unsigned button) marca el botón especificado como una salida si se pasa un número de botón no válido, se devolverá falso si la operación se realiza correctamente, la función devuelve verdadero la salida se activará en alto o en bajo según el estado actual de salida del pin boolean setpinvalue(unsigned button, unsigned output) configura la salida del botón especificado, que puede ser baja (0) o alta (1) si el botón no está configurado como una salida, el nivel resultante no está definido este método también se puede utilizar para configurar el comportamiento de salida led en placas de botones bp200/b900 docid jdqhtyue7bpjpvhzg95q boolean getpinvalue(unsigned button) devuelve la salida del botón especificado void close() cierra la instancia de bscontrolport e impide que continúe consumiendo recursos si no se llama a este método, la recolección de basura determina cuándo se destruirá la instancia boolean setoutputvalue(unsigned param) especifica el estado deseado de todas las salidas conectadas al puerto de control como bits en un entero los botones individuales pueden configurarse mediante operaciones binarias el parámetro es un entero de 8 bits y cada bit representa una salida boolean setoutputvalues(unsigned param1, unsigned param2, unsigned param3, unsigned param4) configura botones en una placa de botones bp200/bp900 este método solo puede utilizarse cuando el objeto bscontrolport se instancia con el parámetro touchboard \<n> led setup o touchboard \<n> led los parámetros son valores enteros eventos los siguientes eventos están disponibles en el objeto bscontrolport cada evento puede recibir un evento controlportevent oncontroldown oncontrolup oncontrolevent controlportevent – atributos atributo de solo lectura código long sin signo ejemplos el siguiente código de ejemplo configura cuatro salidas gpio var gpio = new bscontrolport("brightsign"); // set outputs gpio configureasoutput(0); gpio configureasoutput(1); gpio configureasoutput(2); gpio configureasoutput(3); // set desired states gpio setpinvalue(0, 1); gpio setpinvalue(1, 1); gpio setpinvalue(2, 0); gpio setpinvalue(3, 0); el siguiente ejemplo hace que los led de una placa de botones bp900 parpadeen var bp900 gpio; function myfunction() { var bp900 setup = new bscontrolport("touchboard 0 led setup"); bp900 setup setpinvalue(0, 11) var bp900 = new bscontrolport("touchboard 0 led"); bp900 setpinvalue(0, 0x07fe) bp900 setpinvalue(1, 0x07fd) bp900 setpinvalue(2, 0x07fb) bp900 setpinvalue(3, 0x07f7) bp900 setpinvalue(4, 0x07ef) bp900 setpinvalue(5, 0x07df) bp900 setpinvalue(6, 0x07bf) bp900 setpinvalue(7, 0x077f) bp900 setpinvalue(8, 0x06ff) bp900 setpinvalue(9, 0x05ff) bp900 setpinvalue(10, 0x03ff) bp900 gpio = new bscontrolport("touchboard 0 gpio"); bp900 gpio oncontroldown = function(e) { console log('###### oncontroldown' + e code); } } el siguiente ejemplo muestra eventos de una placa expansora gpio tenga en cuenta que usar el objeto equivalente rogpiocontrolport en brightscript al mismo tiempo dará como resultado un comportamiento de e/s impredecible \<html> \<head> \<script> var bp900 gpio = new bscontrolport("brightsign"); bp900 gpio oncontroldown = function(e){ console log('### oncontroldown ' + e code); newtext = " down " + e code + "\n"; document myform outputtext value += newtext; document myform outputtext scrolltop = document myform outputtext scrollheight; } bp900 gpio oncontrolup = function(e){ console log('### oncontrolup ' + e code); newtext = " up " + e code + "\n"; document myform outputtext value += newtext; document myform outputtext scrolltop = document myform outputtext scrollheight; } bp900 gpio oncontrolevent = function(e){ console log('### oncontrolevent ' + e code); newtext = "event " + e code + "\n"; document myform outputtext value += newtext; document myform outputtext scrolltop = document myform outputtext scrollheight; } function ledon(output index) { bp900 gpio configureasoutput(output index); newtext = " led " + output index + "\n"; document myform outputtext value += newtext; document myform outputtext scrolltop = document myform outputtext scrollheight; } function buttonon(output index) { bp900 gpio configureasinput(output index); newtext = "input " + output index + "\n"; document myform outputtext value += newtext; document myform outputtext scrolltop = document myform outputtext scrollheight; } \</script> \</head> \<body bgcolor="#e6e6fa"> \<h1>gpio/expander test page\</h1> note this does not play well with \<em>rogpiocontrolport\</em>!!\<br>\<br> \<input type="button" onclick="ledon(0)" value="led0"> \<input type="button" onclick="ledon(1)" value="led1"> \<input type="button" onclick="ledon(2)" value="led2"> \<input type="button" onclick="ledon(3)" value="led3"> \<input type="button" onclick="ledon(4)" value="led4"> \<input type="button" onclick="ledon(5)" value="led5"> \<input type="button" onclick="ledon(6)" value="led6"> \<input type="button" onclick="ledon(7)" value="led7"> \<br> \<input type="button" onclick="buttonon(0)" value="button0"> \<input type="button" onclick="buttonon(1)" value="button1"> \<input type="button" onclick="buttonon(2)" value="button2"> \<input type="button" onclick="buttonon(3)" value="button3"> \<input type="button" onclick="buttonon(4)" value="button4"> \<input type="button" onclick="buttonon(5)" value="button5"> \<input type="button" onclick="buttonon(6)" value="button6"> \<input type="button" onclick="buttonon(7)" value="button7"> \<br> \<form name="myform"> \<textarea readonly rows="50" cols="100" name="outputtext" style="font family\ monospace">\</textarea> \</form> \</body> \</html>