tobi接口服务器和客户端

pytia的Python项目详细描述


#pytia是tobi接口a(tia)服务器的基本python实现。TIA是作为[TOBI项目](http://www.tobi-project.org)的一部分开发的数据传输协议。它被设计成允许从多个传感器获取数据的服务器通过tcp或udp将数据高效地流到一个或多个客户端。有关更多信息,请参见[此处](http://tools4bci.sourceforge.net/tia.html)和[此处](http://tools4bci.sourceforge.net/signalserver.html)。

tia
客户机/服务器设置的最小示例如下:

必须至少定义1个“信号”,这是服务器可以轮询并流式传输到客户端的数据源。信号是使用tiasignalconfig对象的
列表定义的:
`` python
def sig廑u callback(id):
return[random.uniform(-10,10)for x in range(3)]
创建一个50赫兹的3通道信号,每个数据包一个通道一个样本。
“signal廑u callback”是一个可调用的,服务器将调用此信号检索数据。你不应该在里面做长时间的工作!
server.start([tiasignalconfig(channels=3,sample_rate=50,blocksize=1,callback=sig_callback,id=0,is_master=true,sigtype=tia_sig_user_1)])
`````

客户端可以按如下方式连接到它:
``python
from pytia import tiaclient

client=tiaclient(服务器地址,9000)
如果不是client.connect():
客户端应该从
服务器请求数据连接。服务器将发送回一个端口号,然后客户端连接到该端口以获取连接。
状态,dport=client.cmd_get_data_connection_tcp()
如果不是状态:
client.disconnect()
处理错误

如果不是client.start_streaming_data_tcp(服务器地址,dport):
client.disconnect()
数据包的数量可能因调用而异,具体取决于您何时调用它以及服务器发送的信号的数量。
packets=client.get_data()

它包含:
-packet.signals(包中每个信号的数据列表)
-packet.block sizes(每个信号的块大小列表)
-packet.channels(每个信号中的通道数列表)
-packet.packet.packet号(序列号)
-packet.timestamp(时间戳设置为传输)
packet.packet_id(当前设置为与序列号相同)

从包中提取某些数据的示例
如果len(packets)>;0:
packet=packets[0]

print('packet contains%d signals'%(len(packet.signals))
print('number/timestamp/id:',packet.packet_number,packet.timestamp,packet.packet嫒id)
print('channel counts:',packet.channels)

打印(“信号0=”,数据)



完成流时服务器
client.stop
client.disconnect()

标签:

  • 数据
  • 服务器
  • client
  • id
  • 客户端
  • 信号
  • packet
  • tia
  • tobi
  • 欢迎加入QQ群-->: 979659372 Python中文网_新手群

    推荐PyPI第三方库


    热门话题
    java如何使用Ibatis在插入时返回ID(使用返回关键字)   java(org.hibernate.TransactionException)org。冬眠TransactionException:事务未成功启动   java小程序jwindow始终位于JNLP顶部   在Java中重新解析JSON对象?   java单击后将ListView数据移动到新屏幕   Mule ESB中的java WSA寻址特性   Java,对象编程:获取返回0值的方法   hibernate的Java通用问题,如何处理T get(K id)   java在使用超级CSV读取CSV时忽略引用   ssh使用Java远程运行命令   java如何向具体用户发送websocket消息?   在JAVA中,我可以在不指定的情况下使用条件运算符吗?