我跟網路分析儀要DATA 下了一道指令機器所回傳的字串超出byte count的最大值很多...
我思考出兩個解決辦法
1.使visa read不考慮byte count
不知是否可行
2.將DATA分開擷取在組合成一條字串
不知該如何組合visa read在一個buffer....
請高手回答一下 謝謝
在 08-03-2010 02:49 AM
我跟網路分析儀要DATA 下了一道指令機器所回傳的字串超出byte count的最大值很多...
我思考出兩個解決辦法
1.使visa read不考慮byte count
不知是否可行
不可行,visa read 的 byte count 是 u32 ( 2^32 ),建議使用 advanced>> timeout property >> 提高timeout 的值 (標準是二秒)
08-03-2010 02:56 AM - 已編輯 08-03-2010 03:02 AM
謝謝您的解答 但是可以講得再清楚一些嗎???
因為我是從event structure執行的
所以左上角的event timeout是否會影響到呢?
我是設100.... 字串長度很長....,一個READ BUFFER需容納五個標籤都是#56xxxx
或許可能真的是timeout時間真的不夠 導致VISA READ未讀取完就中斷了...
在 08-03-2010 03:39 AM
小飞侠 你好,
event的timeout 是指 程序等待这个事件发生的MAX time和 时间内部执行时间无关。
或许对于大数据量的VISA Read 可以尝试用一个循环不断读取数据然后拼接的方法来处理。
Charles
CHARLES大您好,關於字串資料的並接該如何處理呢?能否提供範例
我下的指令是說ofv;ch1;ofd;ch2;ofd;ch3;ofd;ch4;ofd
就是先回傳頻率的資料 再回傳四個通道的資料..
是否可以分別取出字串中的資料在並接起來我也正在思考這個
只是不知道該如何進行....
在 08-03-2010 03:57 AM
小飞侠 您好,
这么长一串指令能拆分成多条让VISA Write发送下去,然后分别用VISA Read读出会不会好一点啊?
大概就是这样,不知道行不行。
ofv; (断开) ch1;ofd; (切断) ch2;ofd;(分割)ch3;ofd;(最后一部分)ch4;ofd
Charles
CHARLES您好,我也想過這麼作
只是不知如何把所有字串資料併接成一個完整的字串在一個read buffer
在 08-03-2010 09:27 AM
小飞侠 您好,
大致操作可以是这样 先将之前长命令依据功能 分成若干块,这个需要查询仪器的Programming Guide.
然后将第一块命令通过VISA Write发送下去,此刻,立即使用VISA Read读取数据。
以此类推发送所有命令块。
每个VISA Read得到的结果若长度在可接受范围内 则直接用Build Array将各个数据块的Query结果拼接。
若单个命令块Query得到的数据都非常巨大。。。(一次read buff装不下)那也没关系。
在这个VISA Read外加一层While循环。循环需要配置一个Shift Register来组合读取到的资讯片段。
循环中用Build Array将当前读取到的资讯片段Append到结果字符串中。循环的结束条件是VISA Read的read count (output)< byte count (input)。
此时所有资讯已经读取完毕,Shift Register中存放的既是所需要的资讯结果。
Charles