Here's a better example of using ibtest to capture the NVRAM data. Previously I didn't notice that the reason multiple reads were needed was because ibtest does not use the default timeout from the GPIB configuration file (gpib.conf). Each read got some of the data but then timed out because the scope is so slow.
Here it is again, explicitly setting the timeout to 10 seconds in ibtest so the response is read in one shot. Also note the larger buffer of 2048 bytes specified for the "r" (read command).
Sorry for the re-do. I don't usually use ibtest.
$ ibtest
Do you wish to open a (d)evice or an interface (b)oard?
(you probably want to open a device): d
enter primary gpib address for device you wish to open [0-30]: 8
trying to open pad = 8 on /dev/gpib0 ...
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: t
enter the desired timeout:
(0) none
(1) 10 microsec
(2) 30 microsec
(3) 100 microsec
(4) 300 microsec
(5) 1 millisec
(6) 3 millisec
(7) 10 millisec
(8) 30 millisec
(9) 100 millisec
(10) 300 millisec
(11) 1 sec
(12) 3 sec
(13) 10 sec
(14) 30 sec
(15) 100 sec
(16) 300 sec
(17) 1000 sec
13
gpib status is:
ibsta = 0x100 < CMPL >
iberr= 0
ibcntl = 0
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: w
enter a string to send to your device: id?
sending string: id?
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcntl = 4
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: r
enter maximum number of bytes to read [1024]:
trying to read 1024 bytes from device...
received string: 'ID TEK/2445A,V81.1,SYS:FV08,BB:FV02,CTT:FV05,DMM:FV01,GPIB:FV02;'
Number of bytes read: 64
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcntl = 64
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: w
enter a string to send to your device: key 0
sending string: key 0
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcntl = 6
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: w
enter a string to send to your device: earom? f
sending string: earom? f
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcntl = 9
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: r
enter maximum number of bytes to read [1024]: 2048
trying to read 2048 bytes from device...
received string: 'EAR 0:215,1908,1921,1921,1927,10204,10088,1917,10118,1970,10304,506,522,8715,8712,548,8647,8671,481,8668,508,8318,32,32,8221,28,15534,16052,7414,15560,16299,8099,16299,16292,16309,566,566,8756,8756,7450,7934,7699,4096,16304,16295,8105,16280,8105,743,744,740,740,10078,10334,2140,2133,10304,10340,2120,104,2133,10319,10322,2108,10321,2102,8297,835,820,817,1646,9814,9842,1630,722,752,14501,3762,3781,1840,1878,560,569,8545,314,1377,10238,1015,8970,1261,1948,9614,1975,1586,1349,1832,9242,9710,9014,710,9000,1362,9158,1187,1029,9109,1015,8928,8387,203,8361,20735,57054,57054,57054,57054,199,252,254,4,58,57054,57054,5543,5290,5366,5323,532,5500,5460,5517,5470,5386,8279,8286,8323,8292,8205,8,6359,6382,6484,7034,7110,6649,6612,6741,7291,7354,5525,5537,5509,5181,5535,5570,5575,5549,5221,5608,8292,65246,280,57054,57054,15764,37288,56338,24767,57054,57054,9480,57054,38308,9781,35954,25263,57054,57054,57054,57054,12168,13935,20320,30175,57054,57054,57054,57054,30465,23778,44986,9647,57054,57054,57054,57054,48387,47423,41792,57871,57054,57054,57054,57054,64452,24830,31824,27670,57054,57054,57054,57054,41740,12751,16266,5113,57054,57054,57054,57054,50098,2404,34593,63623,57054,57054,57054,57054,63304,2170,65206,18463,57054,57054,57054,57054,54824,8886,63400,47442,57054,57054,57054,57054,38880,2266,60688,13813,57054,57054,57054,57054,48872,16499,14;'
Number of bytes read: 1352
gpib status is:
ibsta = 0x2100 < END CMPL >
iberr= 0
ibcntl = 1352
You can:
w(a)it for an event
write (c)ommand bytes to bus (system controller only)
send (d)evice clear (device only)
change remote (e)nable line (system controller only)
(g)o to standby (release ATN line, system controller only)
send (i)nterface clear (system controller only)
ta(k)e control (assert ATN line, system controller only)
get bus (l)ine status (board only)
go to local (m)ode
change end (o)f transmission configuration
(q)uit
(r)ead string
perform (s)erial poll (device only)
change (t)imeout on io operations
request ser(v)ice (board only)
(w)rite data string
send group e(x)ecute trigger (device only)
: