通用串行总线-usb

描述

_image 通用串行总线USB,USB接口支持U盘、鼠标、键盘、USB触摸屏、WiFi/4G模块。建议U盘的分区格式为FAT32,最大支持32GB容量。父对象为device.io,无子对象。


事件

  • event:USB事件发生时触发,事件函数定义:onEvent(classname, event, payload),其中classname为USB类名称, event为事件类型,payload为载荷,不同类型的class有不同的定义,见下表:

事件描述

classname

event

payload

U盘插入

mass_storage

mount:ok (U盘挂载成功) mount:fail(U盘挂载失败)

U盘的路径,如/storage/d0

U盘拔出

mass_storage

umount:ok (U盘卸载成功) umount:fail(U盘卸载失败)

U盘的路径,如/storage/d0

鼠标插入

hid

add

mouse

鼠标拔出

hid

remove

mouse

键盘插入

hid

add

keyboard

键盘拔出

hid

remove

keyboard

触摸屏插入

hid

add

touch

触摸屏拔出

hid

remove

touch

属性


方法

名称

功能说明

脚本例子

getStorageCount()

获取当前已经挂载的U盘数量

var udriveCount=device.io.usb.getStorageCount()

getStoragePath(index)

获取索引号为index的U盘的挂载路径,如果U盘没有挂载,返回invalid,路径名一般为/storage/dX,其中X为索引号。如同时插入两个U盘,分别挂载在/storage/d0, /storage/d1。

var path=device.io.usb.getStoragePath(0) 获取索引号为0的U盘的挂载路径

使用说明

如何防止U盘拔出时数据丢失

操作系统默认不会立即把数据写入U盘,而是先写入缓存中,只有执行umount或者sync时才会把缓存里的数据真正写入U盘。所以我们从下面的两种方式中选择一种即可。

  • 方式1: 在拔出U盘前,使用 service.data.storage.umount(path) 卸载U盘。

  • 方式2: 在文件写操作后或者文件拷贝后,立即调用文件对象的同步方法 ui.form-name.file-name.sync() 或者调用通用方法 service.data.storage.sync(path) 来同步文件。