系统变量-variable
描述
系统变量,用于存储系统变量值,掉电后不丢失。系统变量类似于map
注意:如果要实现掉电数据不丢失,需要调用service.data.variable.save(), 强制系统立刻存储所有系统变量。
事件:
- cloudreadsuccess: 云变量读取成功,事件函数定义:onCloudReadSuccess(name, value), name为变量名称,value为变量的值
- cloudwritesuccess: 云变量写成功,事件函数定义:onCloudWriteSuccess(name), name为变量名称
- clouderror: 云变量操作错误,事件函数定义:onCloudError(operation, name, reason), operation为操作名"read"或"write", name为变量名称,reason为错误原因
属性:
名称 | 功能说明 | 脚本例子 |
---|---|---|
cloudId | 云标识,设置了相同云标识的设备之间可以互相读写相同名称的变量 | service.data.variable.cloudId='9a70318b722815232345959bf5f8b0d4' 设置云标识 |
方法
名称 | 功能说明 | 脚本例子 |
---|---|---|
write(name, value) | 存储系统变量为字符串,参数name为系统变量名称,value为值 | service.data.variable.write('test', 12) 存储名称为test的系统变量,值为12 |
read(name) | 读取系统变量,参数name为系统变量名称,返回类型为字符串 | var value=service.data.variable.read("test") 读取系统变量test,返回字符串'12' |
read(name, defaultValue) | 读取系统变量,如果变量不存在,返回默认值defaultValue | var value=service.data.variable.read("test", "NA") 读取系统变量test,如果变量不存在,返回默认值'NA' |
cloudWrite(name, value) | 存储变量到云端 | service.data.variable.cloudWrite('test', 1234) 存储变量test的值到云端 |
cloudRead(name) | 读取云端变量 | service.data.variable.cloudRead('test'); 读取云端变量,返回值通过事件onCloudReadSuccess(name,value)返回 |
writeInt(name, value) | 存储系统变量为整型,参数name为系统变量名称,value为值 | service.data.variable.writeInt('test, 12) 存储名称为test的系统变量,值为12 |
readInt(name) | 读取系统变量,参数name为系统变量名称,返回类型为整型 | var value=service.data.variable.readInt('test') 读取系统变量test的值,返回整型12 |
readInt(name, defaultValue) | 读取系统变量并转换为整型,如果name变量不存在,返回默认值defaultValue | var value=service.data.variable.readInt('test', 23) 读取系统变量test的值,如果变量不存在,返回默认值23 |
writeIntArray(name, value) | 存储系统变量为整型数组,参数name为系统变量名称,value为数组 | service.data.variable.writeIntArray('test, [11, 22, 33]) 存储名称为test的系统变量,值为整型数组 |
readIntArray(name) | 读取系统变量,参数name为系统变量名称,返回类型为整型数组 | var value=service.data.variable.readIntArray('test') 读取系统变量test的值,返回整型数组[11, 22, 33] |
writeStrArray(name, value) | 存储系统变量为字符串数组,参数name为系统变量名称,value为数组 | service.data.variable.writeStrArray('test, ['aa', 'bb', 'cc']) 存储名称为test的系统变量,值为字符串数组 |
readStrArray(name) | 读取系统变量,参数name为系统变量名称,返回类型为字符串数组 | var value=service.data.variable.readStrArray('test') 读取系统变量test的值,返回字符串数组['aa', 'bb', 'cc'] |
contains(key) | 返回是否已存在指定的名称系统变量 | if (service.data.variable.contains("key")) ... 检查系统中是否已存在名称为key的系统变量 |
count() | 返回系统中已存在的系统变量总数, 无参数 | var num = service.data.variable.count() 读取已存入系统中的系统变量个数并存入变量num中 |
allKeys() | 返回所有已存在的系统变量名称, 无参数 | var a = new Array(service.data.variable.count()) a = service.data.variable.allKeys() 读取所有系统变量的名称,并存入数组a中 |
remove(...) | 删除系统变量,参数可为0(删除所有),一个或者一个以上 | service.data.variable.remove() 删除所有系统变量 service.data.variable.remove("test") 删除名称为test的系统变量 service.data.variable.remove("test1", "test2") 删除名称为test1和test2的系统变量 |
save() | 强制存储系统变量,无参数。即使不调用此函数,系统会自动存储,调用此方法强制系统立刻存储. | service.data.variable.save() 强制系统立刻存储所有系统变量 |
backup(filepath) | 备份所有系统变量到filepath指定的文件 | service.data.variable.backup("/storage/d0/bak.ini") 备份所有系统变量到文件 /storage/d0/bak.ini |
restore(filepath) | 从filepath指定的文件恢复所有系统变量 | service.data.variable.restore("/storage/d0/bak.ini") 从文件/storage/d0/bak.ini中恢复所有系统变量 |