|
From: David G. <dav...@po...> - 2026-06-10 18:38:08
|
Hi again, I want to write a real channel driver for Tool Command Language to do I/O in the usual alterable manner as say pipes, serial, network streams, files, tty (console), etc.. But IEEE 488.1 is a different beast with its hardware lines. Interrupts and the resultant serial poll are device specific. So I'm thinking one thread per board looping on WaitSRQ() followed by a FindRQS() that becomes the basis of a notifier. https://github.com/davygrvy/aGPIB/blob/master/aGPIBChan.cpp#L82 I would have to redefine what a readable event means. It would mean a status byte is ready and we'd feed that directly into the readable fileevent procedure. Maybe something like this for a Tektronix DM5010 proc read_dmm {chan stb} { switch -- $stb { 65 { #power on puts $chan {init; acv; dig 4.5; rqs on; opc on; monitor on; mode run} } 67 {puts "you pressed the 'inst id' key"} 132 - 140 { # device has a measurement ready set acv [format %f [string trimright [read $chan] {;}]] puts ">DM5010: ${acv} Vrms" } } } I started on this idea like 15 years ago and now is my time to realize it as I have the need to automate all my gear. |