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
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.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()
标签: