系统变量-variable

描述

系统变量,用于存储系统变量值,掉电后不丢失。系统变量类似于map数据结构,包括名称(key)和内容(value). 父对象为service.data,无子对象。

注意:如果要实现掉电数据不丢失,需要调用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中恢复所有系统变量

results matching ""

    No results matching ""