TZ-IOT发布Python SDK:tziota

TZ-IOT发布Python SDK:tziota

本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明.

 

简介:

在《物联网平台TZ-IOT发布透传云内测服务:V1.0》中已经上线TZ-IOT的内测服务,本文发布Python SDK。

 

用途:

不用租用公共服务器,任意选择一台可联网的PC或者树莓派这样的嵌入式设备,即可当作服务器。与同样基于TZ-IOT运行的节点通信。

 

安装:

pip install tziota

如果已经安装,需要更新最新版本:

pip install tziota --upgrade

初始化:

先根据《物联网平台TZ-IOT发布透传云内测服务:V1.0》中说明,申请节点的IA地址。

假设申请了地址:2140:0000:0000:0101(简写2140::101),密码是"456"。

则初始化代码:

def main():
    # 初始化参数
    param = tziota.Param()
    # 本地UDP绑定的IP和端口
    param.local_ip = "10.58.4.52"
    param.local_port = 14131
    # 本节点IA地址和密码
    param.local_ia = 0x2140000000000101
    param.pwd = "456"
    # 服务器IP和端口
    param.server_ip = "115.28.86.171"
    param.server_port = 14129
    # 服务器IA地址
    param.server_ia = 0x2140000000000002
    tziota.init(param)
    
    # 注册接收回调函数
    tziota.register_callback_rx(deal_rx)

接收接口:

在回调函数中:

def deal_rx(ia, data):
    print('IA:0x%016x' % ia)
    for x in data:
        print('%02x' % x, end=' ')
    print()

ia:对方的IA地址

data:对方发送的数据

 

发送接口:

frame = bytearray()
for i in range(5):
    frame.append(i + 10)
tziota.send(0x2140000000000100, frame)

send接口有两个参数:

第一个是目的IA地址,第二个是发送的数据。

 

是否在线的接口:

tziota.is_online():

在线指本节点是否连接服务器成功。

 

完整测试代码:

2140::100发送字节数据:0x01020304给2140::101

import threading
import time

import tziota


def main():
    param = tziota.Param()
    param.local_ip = "10.58.4.52"
    param.local_port = 14130
    param.local_ia = 0x2140000000000100
    param.pwd = "123"
    param.server_ip = "115.28.86.171"
    param.server_port = 14129
    param.server_ia = 0x2140000000000002
    tziota.init(param)
    tziota.register_callback_rx(deal_rx)

    threading.Thread(target=cycle_task).start()


def deal_rx(ia, data):
    print('IA:0x%016x' % ia)
    for x in data:
        print('%02x' % x, end=' ')
    print()


def cycle_task():
    while True:
        if tziota.is_online():
            frame = bytearray()
            for i in range(5):
                frame.append(i)
            tziota.send(0x2140000000000101, frame)
        else:
            print('当前掉线')

        time.sleep(1)


if __name__ == '__main__':
    main()

2140::101发送字节数据:0x0a0b0c0d0e给2140::100

import threading
import time

import tziota


def main():
    # 初始化参数
    param = tziota.Param()
    # 本地UDP绑定的IP和端口
    param.local_ip = "10.58.4.52"
    param.local_port = 14131
    # 本节点IA地址和密码
    param.local_ia = 0x2140000000000101
    param.pwd = "456"
    # 服务器IP和端口
    param.server_ip = "115.28.86.171"
    param.server_port = 14129
    # 服务器IA地址
    param.server_ia = 0x2140000000000002
    tziota.init(param)

    # 注册接收回调函数
    tziota.register_callback_rx(deal_rx)

    threading.Thread(target=cycle_task).start()


def deal_rx(ia, data):
    print('IA:0x%016x' % ia)
    for x in data:
        print('%02x' % x, end=' ')
    print()


def cycle_task():
    while True:
        if tziota.is_online():
            frame = bytearray()
            for i in range(5):
                frame.append(i + 10)
            tziota.send(0x2140000000000100, frame)
        else:
            print('当前掉线')

        time.sleep(1)


if __name__ == '__main__':
    main()

运行结果:

2140::100接收数据:

IA:0x2140000000000101
0a 0b 0c 0d 0e 
IA:0x2140000000000101
0a 0b 0c 0d 0e 
IA:0x2140000000000101
0a 0b 0c 0d 0e 
IA:0x2140000000000101
0a 0b 0c 0d 0e 

2140::101接收数据:

IA:0x2140000000000100
00 01 02 03 04 
IA:0x2140000000000100
00 01 02 03 04 
IA:0x2140000000000100
00 01 02 03 04 
IA:0x2140000000000100
00 01 02 03 04 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值