thingsbus数据代理、输入、输出和分派。
thingsbus的Python项目详细描述
#Things总线目标
*提供一个简单的入口点,以从各种来源接收数据,并且配置最少(如果有)
*根据最简单的发现配置或入站推送消息自动创建信息目录
*启用分布式本地数据-感知编程具有非常浅的学习曲线
让巴士意识到。"thingsbus.adaptor"python模块提供了一个"adaptor"类,可用于实现适配器,它可以作为与数据源分离的系统,也可以在其中实现。适配器类使用zeromq发送更新。此外,还有一种模式可以通过udp发送消息包格式的更新。
*broker/directory-server系统可以查看轮询器/adaptos收集的信息,提供一个使用一个协议接收信息的点,并生成一个目录
*消费者/客户机-知道things总线并可能使用things总线提供的帮助程序库,但不知道这些东西的实现细节的程序。客户机通过ZeroMQ接收更新和快照。
实现详细信息
服务发现
代理服务器的主机名。如果不需要,则可以使用"client"的"broker_url"参数和"adaptor"的"broker_input_url"。建议使用srv记录,以简化并减少将附加配置传递给您的thingsbus设置边缘的所有内容的需要。
\network protocol:zeromq tcp+json
支持这个协议。这些消息总是顶级的词典。消息正文只包含未压缩的json。
截至本文撰写时,共有两种消息类型。
自1970年UTC以来的秒数,
"documentation_url":任意字符串,但应该是记录"data"格式和语义的url
messagepack而不是json,并将它们作为udp数据报的整个主体发送。
>>>elec=cl.directory.get_thing('spacemon.electronics')
>>elec.get_data()
(1.2385549545288086,{u'ratio_busy':0.03262867647058824,u'luminance':106.09383138020833})
d目录的数据-如果有任何数据。如果不返回,则不返回任何事件。
data={u'ratio\u busy':0.1431527352941177,u'luminance':114.361669921875}>;
thingevent<;thing<;bottlekid.prototype>;,ts=1423351105.715,flags=,data={u'dht22\u error':u'bad checksum,dht22 data:75:55:77:d5:d5\r\n',u'metadata':{u'loops':454,u'msgs\u dropped':0,u'msgs_sent':454}>;
r_input_url='tcp://*:7955')
adapt.send({busy':12.0,'light':31.8},ns='spacemon')
这将设置一个适配器,允许您在"shop.shopbot"命名空间下发送数据,然后演示如何为"shop.shopbot.spacemon"发送数据,其中包括忙百分比和liGHT百分比。如果ts被提供给"send"调用(float epoch),它将被传递。
rl'tcp://*:7955'-s tcp://belamy.ps1:7202,tcp://belamy.ps1:7200,tcp://belamy.ps1:7201,tcp://belamy.ps1:7206--documentation"https://wiki.pumpingstationone.org/spacemon things趵bus"
简单,对吧?< BR>
*提供一个简单的入口点,以从各种来源接收数据,并且配置最少(如果有)
*根据最简单的发现配置或入站推送消息自动创建信息目录
*启用分布式本地数据-感知编程具有非常浅的学习曲线
让巴士意识到。"thingsbus.adaptor"python模块提供了一个"adaptor"类,可用于实现适配器,它可以作为与数据源分离的系统,也可以在其中实现。适配器类使用zeromq发送更新。此外,还有一种模式可以通过udp发送消息包格式的更新。
*broker/directory-server系统可以查看轮询器/adaptos收集的信息,提供一个使用一个协议接收信息的点,并生成一个目录
*消费者/客户机-知道things总线并可能使用things总线提供的帮助程序库,但不知道这些东西的实现细节的程序。客户机通过ZeroMQ接收更新和快照。
实现详细信息
服务发现
代理服务器的主机名。如果不需要,则可以使用"client"的"broker_url"参数和"adaptor"的"broker_input_url"。建议使用srv记录,以简化并减少将附加配置传递给您的thingsbus设置边缘的所有内容的需要。
\network protocol:zeromq tcp+json
支持这个协议。这些消息总是顶级的词典。消息正文只包含未压缩的json。
截至本文撰写时,共有两种消息类型。
自1970年UTC以来的秒数,
"documentation_url":任意字符串,但应该是记录"data"格式和语义的url
messagepack而不是json,并将它们作为udp数据报的整个主体发送。
>>>elec=cl.directory.get_thing('spacemon.electronics')
>>elec.get_data()
(1.2385549545288086,{u'ratio_busy':0.03262867647058824,u'luminance':106.09383138020833})
d目录的数据-如果有任何数据。如果不返回,则不返回任何事件。
data={u'ratio\u busy':0.1431527352941177,u'luminance':114.361669921875}>;
thingevent<;thing<;bottlekid.prototype>;,ts=1423351105.715,flags=,data={u'dht22\u error':u'bad checksum,dht22 data:75:55:77:d5:d5\r\n',u'metadata':{u'loops':454,u'msgs\u dropped':0,u'msgs_sent':454}>;
r_input_url='tcp://*:7955')
adapt.send({busy':12.0,'light':31.8},ns='spacemon')
这将设置一个适配器,允许您在"shop.shopbot"命名空间下发送数据,然后演示如何为"shop.shopbot.spacemon"发送数据,其中包括忙百分比和liGHT百分比。如果ts被提供给"send"调用(float epoch),它将被传递。
rl'tcp://*:7955'-s tcp://belamy.ps1:7202,tcp://belamy.ps1:7200,tcp://belamy.ps1:7201,tcp://belamy.ps1:7206--documentation"https://wiki.pumpingstationone.org/spacemon things趵bus"
简单,对吧?< BR>