By the way, for long test runs using SCPI, there's a command to query the clock source, "ROSC?", so whenever taking a measurement check this first and switch it back with "ROSC EXT" if it has flaked out. Then check again after a measurement to make sure it didn't switch over in the middle, and repeat the measurement if it did. So, it's kinda workable...
I add these comments above to seek further refinements as what gets posted here is bought to Siglents attention so they can be clear on what you guys want and need.
Thanks all.
I look forward to the update for locking external-reference mode, as it'll make things more convenient.
Recently, I've mostly been using the front-panel UI, so I have little "real-world" feedback on the programming interface, and these things are not currently a priority for me. I'm using firmware 2.01.01.23R3. The below questions are the things that I feel should be answered in the manual, but I don't require a response in this forum (unless you have questions about the questions themselves).
My below comments are based on the "SDG programming manual" listed under the SDG6000X section of the Siglent site. The SDG2042X manual seems to be the old revision?
Partially responding to bson, what's "normal" for other instruments is the notion of a status byte, with an ability to set a bit if errors happen. Preferably, when the reference becomes unlocked, it would add an error to the error queue, which would then propagate to the status byte, which could be polled by the controlling computer. This would detect momentary losses of reference.
The SDG2042X manual doesn't document *STB, *SRE, or any of those, so I don't know if this is usable. The index (at the end) of the programming manual lists many of the 488 *[ABC] commands, but they are not described. The manual doesn't contain page numbers in the index, either.
Another undocumented command is how to read the error queue. If I remember correctly, it's SYSTEM:ERROR?, but I could be remembering wrong. I think that there are also calibration commands (used by the downloadable calibration scripts) which are also undocumented. Can "SYSTEM:" be abbreviated "SYS:" or "SYST":"?
Cn:WVDT seems to imply that waveform data can be uploaded via USBTMC, though it doesn't describe the format used. Is it a binary block? integers separated by commas, etc? It says on the 2000X, {Mn} is unnecessary. Exactly what does that mean? I think that the "Command syntax" shown is "format1", but "format2" isn't described?
Another little quirk of the USBTMC interface is that it does not support the "initiate_clear" command. USB488 specification says that "This USBTMC specification requires that all devices with a USBTMC interface or USBTMC subclass interface must support the INITIATE_CLEAR control endpoint request.", but it instead returns a USB error when I try to execute a clear. A clear is necessary at program startup in order to clear the I/O buffers. I'm in the habit of sending a clear every time I connect to a 488 device, but in this case I had to remove it for the SDG2042X.