- 主题:工业级应用求助
往concurrent无锁队列里面压入格式包含通道号的数据,格式为
时序 通道号 值
0 0 1.03348
0 1 1.03378
0 2 1.03424
0 3 1.03516
0 4 1.03516
0 5 1.03546
0 6 1.03607
0 7 1.03638
0 8 1.03653
0 9 1.03577
0 10 1.03546
0 11 1.03516
0 12 1.0347
0 13 1.03409
0 14 1.03363
0 15 1.03348
1 0 1.04996
1 1 1.05042
1 2 1.05057
1 3 1.05133
1 4 1.05164
1 5 1.05194
1 6 1.0524
1 7 1.05286
1 8 1.05286
1 9 1.05225
1 10 1.05209
1 11 1.05164
1 12 1.05118
1 13 1.05057
1 14 1.05026
1 15 1.05011
2 0 1.06613
2 1 1.06674
......
大约是1.X us(毫秒)压入一个数据。然后现在想把它按不同的通道批量取出640个数据,能操作不?要如何操作?
--
FROM 110.87.82.*
我估计你去 programming 版问会不会好一些。本版流量比较小。
我给你转载过去。
【 在 xmbba 的大作中提到: 】
: 往concurrent无锁队列里面压入格式包含通道号的数据,格式为
: 时序 通道号 值
: 0 0 1.03348
: ...................
--
修改:hgoldfish FROM 117.28.155.*
FROM 117.28.155.*
按这个取法,不应该按通道号创建队列吗?
--
FROM 114.254.2.*
us是微妙, 毫秒是ms
如果是ms,这个没有任何压力啊
【 在 xmbba 的大作中提到: 】
: 往concurrent无锁队列里面压入格式包含通道号的数据,格式为
: 时序 通道号 值
: 0 0 1.03348
: ...................
--
FROM 114.251.196.*
先感谢Hgoldfish同学热情相助.感谢前面热情回复的同学。
【 在 omni 的大作中提到: 】
: us是微妙, 毫秒是ms
: 如果是ms,这个没有任何压力啊
:
sorry,笔误,应该是us(毫秒).
目前初步找到一个方式,把采集卡吐出来的数据按固定格式time/channel/value封装成一个点,1.x us 一个值。把每个点按顺序用一个线程先压到无锁队列,然后用另外一个线程从无锁队列中去取点。根据第一个点取到时间,建立一个frame数据帧,继续取点,如果是相同时间的就按不同的通道号放到同一个数据帧,直到存满一个数据帧(16个不同通道但是同一个时间的点的数值),每取满16个点封装为一帧。循环。帧数积累到一定的数值的时候再考虑是否需要保存成csv或者写入数据库等。这样就可以做各种的应用开发了。
--
FROM 117.30.223.*