roStorageHotplug
Este objeto proporciona mensajes roStorageAttached cuando aparecen dispositivos de almacenamiento y mensajes roStorageDetached cuando desaparecen dispositivos de almacenamiento. Un evento de roStorageAttached no se entrega hasta que el sistema de archivos está montado. El equivalente en JavaScript es Node.js fs.watch().
Actualmente no hay forma de realizar polling para medios.
Consulte esta página para obtener más información sobre las rutas de almacenamiento de dispositivos.
Creación de objetos: El objeto roStorageHotplug se crea sin parámetros.
CreateObject("roStorageHotplug")ifStorageHotplug
GetStorages() as Object
Devuelve un arreglo ordenado de cadenas donde cada cadena es un especificador de unidad en el que el SO buscará un script de ejecución automática. Por ejemplo: [ "USB1:/", "SD:/", "SD2:/", "SSD:/", "Flash:/" ]. Tenga en cuenta que no todos los especificadores de unidad pueden estar presentes o incluso ser posiblemente compatibles en el reproductor en particular.
GetStorageStatus(drive As String) As roAssociativeArray
Devuelve el estado actual de un dispositivo de almacenamiento ("USB:", "SD:", "SSD:", "SD2:/", "Flash:"), incluso si no está montado. Este método devuelve un arreglo asociativo que contiene lo siguiente:
Clave | Tipo de valor | Descripción |
|---|---|---|
presente | Boolean | Indica si el dispositivo especificado está presente. |
montado | Boolean | Indica si el dispositivo especificado está montado. |
corrupto | Boolean | Indica si se considera que el dispositivo especificado está dañado. |
comprobando | Boolean | Indica si el dispositivo especificado se está comprobando actualmente. |
Los resultados del método GetStorageStatus() no son confiables cuando se llama con un parámetro "USBn:", donde "n" es un entero positivo que indica un dispositivo de almacenamiento USB cuando varios dispositivos USB están conectados al reproductor.
Ejemplo:
status = CreateObject("roStorageHotplug").GetStorageStatus("SSD:")
if not status.mounted and not status.checking and status.present then
' Should ask for confirmation here
FormatDrive("SSD:")
end if ifFailureReason
GetFailureReason() As String
Devuelve información de diagnóstico adicional si un método devuelve Falso.
ifUserData
SetUserData(user_data As Object)
Establece los datos de usuario que se devolverán cuando se generen eventos.
GetUserData() As Object
Devuelve los datos de usuario que se establecieron previamente mediante SetUserData(). Devolverá Invalid si no se ha establecido ningún dato.
ifMessagePort
SetPort(port As roMessagePort)
Publica mensajes de tipo roStorageAttached y roStorageDetached en el puerto de mensajes adjunto.
Para evitar condiciones de carrera durante el inicio, debe comprobar si existe algún dispositivo de almacenamiento que pudiera haber existido antes de que se estableciera el puerto de mensajes. Recomendamos hacer esto después de que se cree el objeto y se establezca el puerto de mensajes, pero antes de indicar al script que espere cualquier evento.
Ejemplo
Sub Main()
mp = CreateObject("roMessagePort")
sh = CreateObject("roStorageHotplug")
gpio = CreateObject("roControlPort", "brightsign")
sh.SetPort(mp)
gpio.SetPort(mp)
finished = false
while not finished
ev = mp.WaitMessage(0)
if type(ev) = "roControlDown"
finished = true
else if type(ev) = "roStorageAttached"
print "ATTACHED "; ev.GetString()
else if type(ev) = "roStorageDetached"
print "DETACHED "; ev.GetString()
else
print type(ev)
stop
end if
end while
End Sub