物联网功能
xSQL 服务器提供了以下用于控制物联网运行时的功能。
xsql_iot_enable()
此功能会开启可能在运行时启动时被禁用的物联网运行时。
xsql_iot_enable();
示例
XSQL>select xsql_iot_enable();
#1
------------------------------------------------------------------------------
1
xsql_iot_disable()
此功能会关闭可能在运行时启动时已启用的物联网运行时。
xsql_iot_disable();
示例
XSQL>select xsql_iot_disable();
#1
------------------------------------------------------------------------------
1
xsql_iot_enable_connection()
此功能会开启可能在运行时启动时被禁用的物联网连接器。
xsql_iot_enable_connection(type string, address string);
参数
- type:连接器的类型;可能的值为“监听”或“连接”
- address:在配置文件中指定的连接器地址,例如“192.168.0.1:10000”
示例
XSQL>select xsql_iot_enable_connection('connect', '192.168.0.1:10000');
#1
------------------------------------------------------------------------------
1
xsql_iot_disable_connection()
此功能会关闭可能在运行时启动时已启用的物联网连接器。
参数
- type:连接器的类型;可能的值为“监听”或“连接”
- address:在配置文件中指定的连接器地址,例如“192.168.0.1:10000”
示例
XSQL>select xsql_iot_disable_connection('connect', '192.168.0.1:10000');
#1
------------------------------------------------------------------------------
1
xsql_iot_connections()
列出已配置的物联网连接器;即此节点建立连接的方式,这些方式是根据 xsql 配置文件中的设置确定的。对于服务器,通常是一个或多个监听端口;对于设备,则是用于连接服务器或路由器的连接字符串。
xsql_iot_connections();
此函数列出已配置的物联网连接器。它返回包含以下列的 ResultSet 表(与 xSQL 配置文件中的 iot_params::connections 部分相匹配):
- 类型:连接类型,“监听”或“连接”
- 地址:用于连接或监听的网络地址
- 连接超时:连接() 操作的超时时间(以毫秒为单位)
- 连接间隔:连接() 操作之间的间隔(以毫秒为单位)
- 本地套接字:使用的本地(UNIX)套接字域
- 压缩级别:此连接的压缩级别
- 使用 SSL:指示是否使用加密
- 启用:如果连接处于活动状态则为 true
示例
XSQL>select xsql_iot_connections();
type address connect_timeout connect_interval local_socket compression_level use_ssl enabled
------------------------------------------------------------------------------
listen 10003 2000 60000 false 0 false true
xsql_iot_list()
返回活动连接的列表,即当前已连接的物联网节点。例如,在服务器上,这将是一个已连接路由器或设备的列表。
xsql_iot_get_level()
返回设备类型:1 表示顶级服务器;65535 表示终端设备。1 到 65535 之间的值保留给路由器使用。
xsql_iot_set_level()
在运行时更改路由器的级别。
xsql_iot_get_agent_id()
返回设备或服务器的agent_id。
xsql_iot_push(agent_id bigint, non_block boolean, wait boolean)
将修改推送到设备。
xsql_iot_pull(agent_id bigint, non_block boolean, wait boolean)
向设备请求修改。
xsql_iot_sync(agent_id bigint, non_block boolean, wait boolean)
调用 xsql_iot_push() 和 xsql_iot_pull() 函数。
xsql_iot_clear(agent_id bigint)
从设备上移除已复制且已确认的数据(0 表示所有设备)。
请注意,这仅影响设备上的上行表和服务器上的下行表。
xsql_iot_clear_class(agent_id bigint, tablename string)
从设备上指定的表中移除已复制和已确认的数据。请注意,这仅影响设备上的 uptable 和服务器上的 downtable。
以上 5 个函数的参数为:
参数 | 说明 |
---|---|
agent_id | 发起复制操作的设备 ID(向其或从此设备)。零表示“所有设备”。 |
non_block | 对于“非阻塞”模式(如果 send() 操作无法执行,数据将被缓存在内存中) |
wait | 等待操作完成(直到收到确认信息) |
tablename | 要删除的表名(使用 xsql_iot_clear_class() 函数) |
请注意,non_block 和 wait 不能同时为真!