2005-02-17 VI We have a HP16500 (and a HP1655A). These are old HP Logic Analyzers. And very beautiful. They have a serial port output that can connect to an HP printer. And you can print the screen to that. There seems to be no other easy way to get the screens out. I wrote up this script which will capture the data and write it into a gif file. Setup is easy: On the Logic Analyzer, set it
Use a crossover (null-modem) serial cable to connect the Analyzer to the serial port of the PC (com1 for me). They all print a standard 640 x 368. The 640 is 85 * 8. If your LA prints a different size - it should be easy to figure out what to change in this script.
The end of capture is detected as a one second silence. Note that the gif file creation takes a few minutes (perhaps someone can speed that up), so don't give up and Ctrl-C it. Tested on win
proc writeimg {r fn} { puts "Writing GIF to file $fn" package require Tk image create photo pic -height [expr 368] -width [expr 85 * 8] set y 0 set i1 1 while {1} { set i1 [string first b85W $r $i1] if {$i1 < 0} {break} incr i1 4 set str [string range $r $i1 [expr $i1 + 85 - 1]] binary scan $str c85 l set x 0 foreach c $l { for {set i 7} {$i >= 0} {incr i -1} { if {(1 << $i) & $c} { pic put black -to $x $y } incr x } } incr i1 85 incr y } pic write $fn -format gif puts "Done" exit } proc endcap {} { puts "Capture Ended with [string length $::buf] bytes" writeimg $::buf $::giffile } proc rd_chid {chid} { if {[info exists ::afterid]} { after cancel $::afterid } else { puts "Capture Started" set ::buf "" } append ::buf [read $chid] set ::afterid [after 1000 endcap] } set giffile [lindex $::argv 0] if {$giffile eq ""} { puts "Usage : <hpcap> gif_file_name" exit } set com [open com1: r+] fconfigure $com -mode 19200,n,8,1 -blocking 0 -translation binary -buffering none fileevent $com readable [list rd_chid $com] puts "Waiting for Capture data. Will write into $giffile" vwait forever
Links to here: