Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/Serial+Port+Logic+Analyzer+Screen+Capture?V=10
QUERY_STRINGV=10
CONTENT_TYPE
DOCUMENT_URI/revision/Serial+Port+Logic+Analyzer+Screen+Capture
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.126.104
REMOTE_PORT61766
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR18.119.131.72
HTTP_CF_RAY880b65da9832e0fc-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP18.119.131.72
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit {Serial Port Logic Analyzer Screen Capture} {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

   * Printer on Serial Port
   * 19.2KB (the fastest it goes), no Xon-Xoff, 8 bits no parity
   * Laserjet.

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.

   * On the PC type '''tclsh hpcap.tcl gif_file_name''' (which is where this script is saved)
   * On the LA hit the print and then print screen button
   * Wait a few minutes and you have your gif file!

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:


   * http://github.com/joukos/ghettoib/wiki/ghettoIB:-getting-color-screenshots-and-more-out-of-an-old-logic-analyzer
   * http://www.febo.com/pipermail/time-nuts/2009-August/040392.html


======
<<categories>> Graphics | Device Control} regexp2} CALL {my render {Serial Port Logic Analyzer Screen Capture} {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

   * Printer on Serial Port
   * 19.2KB (the fastest it goes), no Xon-Xoff, 8 bits no parity
   * Laserjet.

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.

   * On the PC type '''tclsh hpcap.tcl gif_file_name''' (which is where this script is saved)
   * On the LA hit the print and then print screen button
   * Wait a few minutes and you have your gif file!

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:


   * http://github.com/joukos/ghettoib/wiki/ghettoIB:-getting-color-screenshots-and-more-out-of-an-old-logic-analyzer
   * http://www.febo.com/pipermail/time-nuts/2009-August/040392.html


======
<<categories>> Graphics | Device Control}} CALL {my revision {Serial Port Logic Analyzer Screen Capture}} CALL {::oo::Obj309070 process revision/Serial+Port+Logic+Analyzer+Screen+Capture} CALL {::oo::Obj309068 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4