I'm currently doing researching programming interfaces of DS1054Z, including commands. Searching for strings is trivial, but that returns just parts of the commands. I'm curious - how did you manage to rebuild the full commands? did you discover some pointer tables or lists that point to partial strings? Could you share how they are structured?
I found a table and wrote a program to read with Xojo.
I can not enough English to describe the table exactly.
I understood the fields not complete. However, it is sufficient to create the commands.
By reading out the wave data I've done experiments, see picture.
Thanks for sharing it! I looked at the table and it's close to my results, but not exactly the same.
The're many complications to explain how exactly the data-length work.. I'll try to summarize it shortly
There are at least three types of it:
(RAW/BYTE reading mode)
- full-width (blocksize=64b): 1179584 .. 1179647 *)
- half-width (blocksize=32b): 589792 .. 589823
- quarter-width (blocksize=16b): 294896 .. 294911
- **)
Depending on certain conditions, your device may happen to be in of those three states (full, half, quarter), and the single-read data-length limit will be in the range as above, eaxct value will vary depending on the START position you send to the device. So, if the device is in quarter mode, if you send one start position you can get i.e. max 294899 bytes at once from that pos, but if you send different START position, you may get i.e. max 294905 bytes at once from that pos.
It actually fluctuates in a deterministic way, but it's tricky on many levels:
- the varying max-data-length follows a certain pattern
- but that pattern shifts randomly after each measurement
- and also the 'full/half/quarter' mode of the device is quite nasty thing, because you can't easily read it (you have to check few things and deduce it), and can't easily configure it (it is selected automatically at BOOT TIME depending on the number of selected channels at BOOT TIME, and seems to be locked until SHUTDOWN -!aargh!-)
However, I've got many aspects of that analyzed already. I'll write a post about it during the weekend and write back here.
Anyways if there are any pages wikis or other threads I missed I'd be grateful for links or contact to mantainers
*) in your table there's a 1179648 value - I'm pretty sure it is not possible, you probably got a +-1 error when you calculated it
**) I found out only these modes, because I worked in RAW/BYTE combinations and certain settings. It is possible that there are more modes after 1/4, for example like 1/8 (147k), 1/16 (73k) etc. - I will later compare my settings with your table to see ifI can get them. However I think they don't exist, becuse the device has only 4 channels, so there's no need for more divisions than /1,/2,/4 that I already found