Funciones globales
BrightScript proporciona un conjunto de funciones estándar de ámbito de módulo que se almacenan en el objeto global. Si se hace referencia a una función global, el compilador dirige el entorno de ejecución para llamar al miembro correspondiente del objeto global. Al llamar a una función global, no necesita usar el operador de puntodot operator para hacer referencia al objeto roGlobal .
Las funciones trigonométricas globales aceptan y devuelven valores en radianes, no en grados.
ifGlobal
CreateObject(name As String) As Object
Crea un objeto BrightScript correspondiente al nombre de clase especificado. Este método devuelve invalid si la creación del objeto falla. Algunos objetos tienen parámetros en su constructor, que deben pasarse después del nombre de la clase en una lista separada por comas.
sw = CreateObject("roGpioControlPort")
serial = CreateObject("roSerialPort", 0, 9600)RestartScript() As Void
Sale del script actual. Luego, el sistema busca un archivo válido autorun.brs para ejecutar.
RestartApplication() As Void
Reinicia la aplicación BrightSign.
Sleep(milliseconds As Integer)
Indica al script que haga una pausa durante un período de tiempo especificado sin desperdiciar ciclos de CPU. El intervalo de suspensión se especifica en milisegundos.
asc(letter As String) As Integer
Devuelve el código ASCII del primer carácter de la cadena especificada. Un argumento de cadena nula provocará un error.
chr(character As Integer) As String
Devuelve una cadena de un carácter que contiene un carácter representado por el ASCII o control especificado. Por ejemplo, debido a que las comillas se usan normalmente como delimitadores de cadena, puede pasar el código ASCII 34 a esta función para agregar comillas a una cadena.
len(target_string As String) As Integer
Devuelve el número de caracteres en una cadena
str(value As Double) As String
Convierte un valor float especificado en una cadena. Este método también devuelve una cadena igual a la representación en caracteres de un valor. Por ejemplo, si se asigna a A un valor de 58.5, entonces llamar a str(A) devolverá "58.5" como una cadena.
strI(value As Integer) As String
Convierte un valor entero especificado en una cadena. Este método devuelve una cadena igual a la representación en caracteres de un valor, y siempre agregará un espacio inicial a los números no negativos. Por ejemplo, si se asigna a A un valor de 58.5, entonces llamar a stri(A) devolverá " 58" como una cadena.
Consulte roInt, roFloat, roString si necesita un método alternativo que devuelva la cadena sin el espacio antepuesto.
val(target_string As String) As Double
Devuelve un número representado por los caracteres del argumento de cadena. Esto es lo opuesto de la función str() . Por ejemplo, si se asigna a A la cadena "58", y se asigna a B la cadena "5", entonces llamar a val(A+"."+B) devolverá el valor float 58.5.
strtoi(target_string As String) As Integer
Convierte la cadena de destino en un entero. Cualquier carácter no entero (incluidos los puntos decimales y los espacios), y cualquier número a la derecha de un carácter no entero, no formarán parte de la salida entera.
abs(x As Double) As Double
Devuelve el valor absoluto del argumento x
atn(x As Double) As Double
Devuelve la arcotangente (en radianes) del argumento x (es decir, Atn(x) devuelve "el ángulo cuya tangente es x"). Para obtener la arcotangente en grados, multiplique Atn(x) por 57.29578.
csng(x As Integer) As Float
Devuelve una representación float de precisión simple del argumento x
cdbl(x As Integer) As Double
Devuelve una representación float de doble precisión del argumento x
cint(x As Double) As Integer
Devuelve una representación entera del argumento x redondeando al número entero más cercano.
cos(x As Double) As Double
Devuelve el coseno del argumento x. El argumento debe estar en radianes. Para obtener el coseno de x cuando x está en grados, use Cos(x*.01745329).
exp(x As Double) As Double
Devuelve el exponencial natural de x. Este es el inverso de la función log() .
fix(x As Double) As Integer
Devuelve una representación truncada del argumento x. Todos los dígitos a la derecha del punto decimal se eliminan para que el valor resultante sea un entero. Para valores no negativos de x, fix(x) es igual a int(x). Para valores negativos de x, fix(x) es igual a int(x)+1.
int(x As Double) As Integer
Devuelve una representación entera del argumento x usando el número entero más grande que no sea mayor que el argumento. Por ejemplo, int(2.2) devuelve 2, mientras que int(-2.5) devuelve -3.
log(x As Double) As Double
Devuelve el logaritmo natural del argumento i (es decir, loge(x)). Este es el inverso de la función exp() . Para encontrar el logaritmo de un número en una base b, use la siguiente fórmula*: logb(x) = loge(x)/loge(b)*.
sgn(x As Double) As Integer
Devuelve un entero que representa cómo está firmado el argumento flotante x : -1 para negativo, 0 para cero y 1 para positivo.
sgnI(x As Integer) As Integer
Devuelve un entero que representa cómo está firmado el argumento entero x : -1 para negativo, 0 para cero y 1 para positivo.
sin(x As Double) As Double
Devuelve el seno del argumento x. El argumento debe estar en radianes. Para obtener el seno de x cuando x está en grados, use sin(x*.01745329).
tan(x As Double) As Double
Devuelve la tangente del argumento x. El argumento debe estar en radianes. Para obtener la tangente de x cuando x está en grados, use tan(x*.01745329).
sqr(x As Double) As Double
Devuelve la raíz cuadrada del argumento x. Esta función es igual que x^(1/2), pero calcula el resultado más rápido.
StableEnumeration(array as Object) As Object
Devuelve un objeto que representa la iteración. Esta función no afecta al objeto original. Debe usar esta función para enumerar contenedores de forma segura más de una vez en paralelo.
Left(target_string As String, n As Integer) As String
Devuelve los primeros n caracteres de la cadena especificada.
Right(target_string As String, n As Integer) As String
Devuelve los últimos n caracteres de la cadena especificada.
StringI(n As Integer, character As Integer) As String
Devuelve una cadena compuesta por un símbolo de carácter repetido n veces. El símbolo de carácter se pasa al método como un entero de código ASCII.
String(n As Integer, character As String) As String
Devuelve una cadena compuesta por un símbolo de carácter repetido n veces. El símbolo de carácter se pasa al método como una cadena.
Mid(target_string As String, start_position As Integer, length As Integer) As String
Devuelve una subcadena de la cadena de destino. El primer entero pasado al método especifica la posición inicial de la subcadena y el segundo entero especifica la longitud de la subcadena. La posición inicial de una cadena comienza en 1.
Instr(start_position As Integer, search_text As String, substring As String) As Integer
Devuelve la posición de una subcadena dentro de una cadena. Esta función distingue entre mayúsculas y minúsculas y devuelve 0 si no se encuentra la subcadena especificada. La posición inicial de una cadena comienza en 1.
El objeto string también ofrece un método Instr() (aunque utiliza un índice basado en cero). Consulte la documentación de roStringroString para obtener más detalles.
FindMemberFunction(object as Object, funName as String) As Interface
Devuelve la interfaz del objeto que proporciona la función especificada, o bien devuelve inválido. Solo está disponible si roDeviceInfo.HasFeature("FindMemberFunction") devuelve verdadero.
Puede utilizarse como se muestra a continuación:
print FindMemberFunction({}, "Count") '= <Interface: ifAssociativeArray>GetInterface(object As Object, ifname As String) As Interface
Devuelve un valor del tipo Interface. Todos los objetos tienen una o más interfaces. En la mayoría de los casos, puede omitir la especificación de la interfaz al llamar a un componente de objeto. Esto no causará problemas siempre que los nombres de método dentro de una función sean únicos.
Wait(timeout As Integer, port As Object) As Object
Indica al script que espere en un objeto que tenga una interfaz ifMessagePort . Este método devolverá el objeto de evento que se publicó en el puerto de mensajes. Si el tiempo de espera se especifica como cero, Wait() esperará indefinidamente; de lo contrario, Wait() devolverá Invalid después del número especificado de milisegundos si no se ha recibido ningún mensaje.
p = CreateObject("roMessagePort")
sw = CreateObject("roGpioControlPort")
sw.SetPort(p)
msg=wait(0, p)
print type(msg) ' should be roGpioButton
print msg.GetInt() ' button numberReadAsciiFile(file_path As String) As String
Lee el archivo de texto especificado y lo devuelve como un string.
WriteAsciiFile(file_path As String, buffer As String) As Boolean
Crea un archivo de texto en la ruta de archivo especificada. El texto del archivo se pasa como el segundo parámetro. Este método no puede utilizarse para editar archivos: Un archivo de texto preexistente se sobrescribirá si tiene el mismo nombre y ruta de directorio que el que se está creando.
El objeto roCreateFileroCreateFile proporciona más flexibilidad si necesita crear o editar archivos.
ListDir(path As String) As Object
Devuelve un objeto roListroList que contiene el contenido de la ruta de directorio especificada. Los nombres de archivo se convierten completamente a minúsculas.
MatchFiles(path As String, pattern_in As String) As Object
Toma un directorio en el que buscar (puede ser tan simple como "." o "/") y un patrón para hacer coincidir, y luego devuelve un objeto roListroList que contiene los resultados. Cada resultado listado contiene solo la parte del nombre de archivo que coincide con el patrón, no la ruta completa. La coincidencia solo se aplica en el directorio especificado; no obtendrá resultados si el patrón contiene un separador de directorios. El patrón es una expresión comodín que no distingue entre mayúsculas y minúsculas. Puede contener los siguientes caracteres especiales:
- ? – Coincide con cualquier carácter único.
- * – Coincide con cero o más caracteres arbitrarios.
- […] – Coincide con cualquier carácter único especificado dentro de los corchetes. El corchete de cierre se trata como un miembro de la clase de caracteres si sigue inmediatamente al corchete de apertura (es decir, "[]]" coincide con un único corchete de cierre). Dentro de esta clase, "-" puede utilizarse para especificar un rango a menos que sea el primer o el último carácter (por ejemplo, "[A-Cf-h"] es equivalente a "[ABCfgh]"). Una clase de caracteres puede negarse especificando "^" como el primer carácter. Para coincidir con un literal de este carácter, colóquelo en otro lugar dentro de la clase.
Los caracteres especiales "?", "*" y "[" pierden su función si están precedidos por una sola "\", y una sola "\" puede coincidirse usando "\\".
LCase(target_string As String) As String
Convierte el string especificado completamente a minúsculas.
UCase(target_string As String) As String
Convierte el string especificado completamente a mayúsculas.
DeleteFile(file_path As String) As Boolean
Elimina el archivo en la ruta de archivo especificada. Este método devuelve False si la operación de eliminación falla o si el archivo no existe.
DeleteDirectory(directory As String) As Boolean
Elimina el directorio especificado. Este método eliminará de forma recursiva cualquier archivo y directorio necesario para eliminar el directorio especificado. Este método devuelve Falso si no logra eliminar el directorio, pero aun así puede eliminar algunos de los archivos o directorios anidados.
Por ejemplo:
dir = DeleteDirectory("/directory")
' Check if directory deletion was successful
print dir; ' true if successfulo
dir = DeleteDirectory("/directory")
if not dir then
print "Could not delete directory"
end ifCreateDirectory(directory As String) As Boolean
Crea el directorio especificado. Solo se puede crear un directorio a la vez. Este método devuelve Verdadero en caso de éxito y Falso en caso de fallo.
Por ejemplo:
dir = CreateDirectory("/directory")
' Check if directory creation was successful
print dir; ' true if successfulo
dir = CreateDirectory("/directory")
if not dir then
print "Could not create directory"
end ifRebootSystem() As Void
Indica al reproductor que realice un reinicio suave.
ShutdownSystem() As Void
UpTime(dummy As Integer) As Double
Devuelve el tiempo de actividad del sistema (en segundos) desde el último reinicio.
FormatDrive(drive As String, fs_type As String) As Boolean
Formatea la unidad especificada usando uno de los sistemas de archivos que se enumeran a continuación. Esta función devuelve True en caso de éxito y False en caso de fallo:
- vfat (sistema de archivos FAT32, DOS/Windows): Legible y escribible por Windows, Linux y MacOS.
- exfat (sistema de archivos DOS/Windows): Compatible con los reproductores Series 3 (XTx43, XDx33, HDx23, LS423, HO523) y Series 4 (XTx44, XDx34, HDx24, LS424) con versiones de firmware 6.2.94 y posteriores. El arranque seguro no es compatible con el sistema de archivos exFAT en la versión de firmware 6.2.94.
- ext2 (sistema de archivos Linux): Escribible por Linux y legible por Windows y MacOS con software adicional.
- ext3 (sistema de archivos Linux): Escribible por Linux y legible por Windows y MacOS con software adicional.
- ext4 (sistema de archivos Linux): Escribible por Linux y legible por Windows y MacOS con software adicional. Este es el sistema de archivos recomendado para dispositivos SSD y discos duros USB.
EjectDrive(drive As String) As Boolean
Expulsa la unidad especificada (por ejemplo, "SD:") y devuelve True si tiene éxito. Si el script está accediendo actualmente a archivos de la unidad especificada, el proceso de expulsión fallará.
CopyFile(source As String, destination As String) As Boolean
Copia el archivo de la ruta de origen especificada al directorio de destino especificado. La función devuelve True si tiene éxito y False en caso de fallo.
MoveFile(source As String, destination As String) As Boolean
Mueve el archivo de origen especificado al directorio de destino especificado. La función devuelve True si tiene éxito y False en caso de fallo.
Ambos nombres de ruta deben estar en la misma unidad.
MapFilenameToNative(path As String) As String
Convierte la ruta estilo BrightScript especificada a la ruta nativa correspondiente y la devuelve como una cadena (por ejemplo, la ruta "SD:/mydir" se devolverá como "/storage/sd/mydir").
rnd(a As Dynamic) As Dynamic
RunGarbageCollector() As roAssociativeArray
Destruye objetos que actualmente están en un estado de conteo circular de referencias. BrightScript normalmente elimina cualquier objeto que quede sin referencias como parte de su algoritmo automatizado de recolección de basura. Sin embargo, los objetos que se referencian entre sí nunca alcanzarán un conteo de referencias de cero y deberán destruirse manualmente usando este método.
Este método es útil al destruir estructuras de datos de presentaciones antiguas y generar una nueva presentación. Este método devuelve un arreglo asociativo que describe los resultados del proceso de recolección de basura.
GetDefaultDrive() As String
Devuelve la unidad predeterminada actual completa con una barra diagonal final. Cuando se ejecuta como autorun.brs, la unidad que contiene el autorun se designa como la predeterminada actual.
SetDefaultDrive(drive As String)
Establece la unidad predeterminada actual, que no necesita incluir una barra diagonal final. Este método no falla; sin embargo, si la unidad predeterminada especificada no existe, no será posible recuperar nada.
Este método acepta los siguientes valores:
- "USB1:" – La unidad para dispositivos de almacenamiento USB conectados al reproductor
- "SD:" – La unidad SD o microSD principal del reproductor.
- "SD2:" – La unidad microSD interna en reproductores compatibles con esta función (consulte Dispositivos de almacenamiento)
- "SSD:" – El SSD interno en reproductores compatibles con esta función (consulte Dispositivos de almacenamiento)
EnableZoneSupport(enable As Boolean)
Permite la visualización de múltiples zonas de video, HTML, imágenes y texto. A partir del firmware 6.0.x, la compatibilidad con zonas está habilitada de forma predeterminada.
EnableAudioMixer(enable As Boolean)
Pi() As Double
Devuelve el valor de pi como un número de punto flotante de doble precisión.
ParseJson(json_string As String) As Object
Analiza una cadena con formato según el estándar RFC4627 y devuelve un objeto BrightScript equivalente, que puede consistir en lo siguiente: booleanos, enteros, números de punto flotante, cadenas, objetos roArray y objetos roAssociativeArray . El método ParseJson() tiene las siguientes propiedades:
- Se devolverá Invalid si la cadena no es sintácticamente correcta.
- Cualquier objeto roAssociativeArray que se devuelva distinguirá entre mayúsculas y minúsculas.
- Se devolverá un error si un roArray o roAssociativeArray está anidado a más de 256 niveles de profundidad.
El siguiente script muestra cómo usar ParseJson() para procesar un objeto JSON que contiene los títulos y las URL de un conjunto de imágenes.
Script JSON
{
"photos" : [
{
"title" : "View from the hotel",
"url" : "http://example.com/images/00012.jpg"
},
{
"title" : "Relaxing at the beach",
"url" : "http://example.com/images/00222.jpg"
},
{
"title" : "Flat tire",
"url" : "http://example.com/images/00314.jpg"
}
]
}BrightScript
searchRequest = CreateObject("roUrlTransfer")
searchRequest.SetURL("http://api.example.com/services/rest/getPhotos")
response = ParseJson(searchRequest.GetToString())
For Each photo In response.photos
GetImage(photo.title, photo.url)
End ForFormatJson(json As roAssociativeArray, flags As Integer) As String
Convierte un arreglo asociativo en una cadena JSON (es decir, con formato según el estándar RFC4627). Los siguientes tipos de datos son compatibles: Boolean, Integer, Float, String, roArray, y roAssociativeArray. Si el parámetro banderas se establece en 0 o no se especifica, los caracteres no ASCII se escapan en la cadena de salida como “\uXXXX”, donde “XXXX” es la representación hexadecimal del valor del carácter Unicode. Si el parámetro banderas se establece en 1, los caracteres no ASCII no se escapan.
Si los arreglos o arreglos asociativos están anidados a más de 256 niveles de profundidad, se producirá un error. Si se produce un error, se devolverá una cadena vacía.
De forma predeterminada, usar sintaxis de literal de objeto (por ejemplo, aa={relativePath:"Foo"}) para generar un arreglo asociativo convertirá las claves completamente a minúsculas. Para preservar camel case para JSON, use el método roAssociativeArray.AddReplace() en lugar de literales de objeto o llame a roAssociativeArray.SetModeCaseSensitive() antes de agregar entradas.