roBrightPackage
7 min
un objeto robrightpackage representa un archivo zip , que puede incluir contenido arbitrario o instalarse en un dispositivo de almacenamiento para proporcionar actualizaciones de contenido y scripts (por ejemplo, para distribuir actualizaciones mediante unidades usb) el equivalente de javascript es la api zlib de node js creación de objetos el objeto robrightpackage se crea con un parámetro de nombre de archivo que especifica el nombre del archivo zip createobject("robrightpackage", filename as string) limitaciones el objeto robrightpackage admite archivos zip de menos de 4 gb únicamente tecnologías compatibles deflate32 (con opciones predeterminadas) ppmd (con opciones predeterminadas) winzip (con las opciones "no compression", "maximum" y "superfast"; otras opciones, incluida "enhanced deflate", no son compatibles) cifrado aes tecnologías no compatibles bzip2 lzma deflate64 zip64 (es decir, el software de compresión integrado en windows explorer) ifbrightpackage ifbrightpackage es una interfaz heredada recomendamos usar roassetpool en su lugar para obtener una mejor funcionalidad unpack(path as string) as void extrae el archivo zip a la ruta de destino especificada todos los archivos preexistentes en el directorio de destino se eliminarán como parte de esta operación proporcionar una ruta de destino de "sd /" eliminará todos los archivos preexistentes de la tarjeta y extraerá el contenido del archivo zip a la carpeta raíz setpassword(password as string) as void proporciona la contraseña especificada cuando se creó el archivo zip este método admite cifrado aes de 128 y 256 bits, generado por winzip el método devuelve falso si la operación falla getfailurereason() as string unpackfile(a as string, b as string) as boolean este método toma dos parámetros, nombre de archivo y ruta nombre de archivo es el nombre del archivo que se va a descomprimir y ruta es la ubicación en la que se descomprimirá el archivo el método devuelve falso si la operación de descompresión falla ejemplo package = createobject("robrightpackage", "myfile zip") setpassok = package setpassword("test") if not setpassok then print "failed to set password "; package getfailurereason() stop end if unpackeddir$ = "sd /unpacked" deletedirectory(unpackeddir$) dirok = createdirectory(unpackeddir$) if not dirok then print "failed to create directory "; unpackeddir$ stop end if ' unpack a specific file from the root of myfile zip ok = package unpackfile("index html", unpackeddir$) if not ok then print "failed to unpack file "; package getfailurereason() stop end if print "file unpacked successfully " uso de robrightpackage para actualizaciones de contenido los reproductores brightsign verifican los dispositivos de almacenamiento en busca de scripts autorun en el siguiente orden dispositivos usb externos del 1 al 9 sd µsd además de buscar scripts autorun brs , los reproductores brightsign buscan archivos autorun zip que contienen el nombre de script autozip brs si se encuentra un archivo autorun zip con un archivo autozip brs , y autozip brs puede descifrarse, entonces el reproductor ejecutará el archivo autozip brs el archivo autozip brs no puede hacer referencia a ningún archivo externo, ya que es el único archivo que un reproductor brightsign descomprime automáticamente antes de la ejecución el script autozip brs debe descomprimir el contenido del archivo autorun zip en un dispositivo de almacenamiento instalado y reiniciar para completar la actualización ejemplo package = createobject("robrightpackage", "sd /autorun zip") package unpack("sd /") movefile("sd /autorun zip", "sd /autorun zip invalid") rebootsystem() descompresión de archivos cifrados si el archivo autorun zip está cifrado, entonces el reproductor usa la contraseña almacenada en el registro docid\ kf6wam7iqxizx7adu18g , en la sección "security" con el nombre "autozipkey", para descifrar el archivo ejemplo extendido ' content update application r=createobject("rorectangle", 20, 668, 1240, 80) t=createobject("rotextwidget",r,1,2,1) r=createobject("rorectangle", 20, 20, 1200, 40) t setsafetextregion(r) t setforegroundcolor(\&hff303030) t setbackgroundcolor(\&hffffffff) t pushstring("updating content from usb drive, please wait ") package = createobject("robrightpackage", "autorun zip") package setpassword("test") package unpack("sd /") package = 0 t clear() t pushstring("update complete remove usb drive to restart ") while true sleep(1000) usb key = createobject("roreadfile", "usb1 /autorun zip") if type(usb key) <> "roreadfile" then a=rebootsystem() endif usb key = 0 end while