Version 3 of Reading COM & stdin

Updated 2006-02-07 21:39:30

I'm trying to read COM & then stdin:

  1. Wait & get data from COM
  2. Ask for tag
  3. stdout tag & msg from com port.
  4. start over

Working example:

  set serial [open com1: r+];
  fconfigure $serial -mode "9600,n,8,1";
  fconfigure $serial -blocking 0 -buffering line;

  set run_it 1;

  while {$run_it == 1} {
    set data [gets $serial];
    set size [string length $data];

    if {$size} {
      set re {[^a-z0-9]*}
      regsub -nocase -- $re $data {} msg;

      # get first 18 characters
      set id [string range $msg 0 18];

      puts stdout "ID: $id";
      puts -nonewline stdout "Tag: "
      flush stdout; # stdout default buffering mode is LINE

      set tag [gets stdin];

      puts "tag=$tag id=$id"
    } 

}


Category Windows