通用串行总线-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) 来同步文件。