CalComp DBIII & v.digit

James Darrell McCauley mccauley at mcs.com
Fri Dec 8 07:00:00 EST 1995


Charles Wichman (wichman at gis.cwu.edu) writes on  8 December 1995:
>We're trying to get a CalComp DrawingBoard III digitizer (model 34480-H4) to 
>talk to a SPARC10 workstation running GRASS4.1.5 under Solaris 2.4.  Do any 
>of you out there have a series 3400 Calcomp tablet operational with GRASS?  
>If so, which version of digit (v.digit or v.digit2) have you had the most 
>luck with?  Can you provide any pointers for making the interface work 
>(digcap/digitcap entries, code modifications, etc)?
>

I have a Calcomp III Model 34180 running with GRASS 4.1.5 under Solaris 2.4
using v.digit and cc95f23_16. The fix is appended. (3 cheers for
David Houlder!!!)

--Darrell

>Chaz Wichman
>wichman at gis.cwu.edu
-- 
Darrell McCauley, PhD; mccauley at mcs.com; http://www.mcs.com/~mccauley/

David Houlder (david at dart.anu.edu.au) writes on  1 November 1995:
>Folks...
>
>I think I've fixed the problem that prevents v.digit from working under
>Solaris 2.x.  The digitizer I/O was inadvertantly put into a state
>where an attempt to read characters when none were available would
>return a zero byte count, rather than waiting for a character to
>arrive. v.digit interprets the 0 byte count as an error. A diff on the
>old and new files (graph_input.c) shows the fix: The lines starting
>with '+' are the fix.
>
>zygochloa% diff -c /opt/source/grass/s4/src/mapdev/v.digit/graph_input.c graph
_input.c
>*** /opt/source/grass/s4/src/mapdev/v.digit/graph_input.c       Wed May 17 17:
54:37 1995
>--- graph_input.c       Wed Nov  1 10:57:25 1995
>***************
>*** 598,603 ****
>--- 598,615 ----
>          termvar.c_cc[VEOF] = 0 ;
>          termvar.c_cc[VEOL] = 0 ;
>          termvar.c_lflag = 0 ;
>+ 
>+       /* Fix for Solaris 2.x (David Houlder, ANU, November 1995)
>+        * VMIN and VTIME are the same elements as VEOF and VEOL,
>+        * which have been set to 0 above. With VMIN==0,VTIME==0
>+        * read() never blocks, returning 0 when no chars are
>+        * available, which v.digit interprets as an I/O error.
>+        * VMIN==1 makes the read wait for at least 1 char
>+        */
>+         termvar.c_cc[VMIN] = 1 ;
>+         termvar.c_cc[VTIME] = 0 ;
>+ 
>+ 
>      }
>          /*** set parity    ***/
>      switch(digdevice.parity) {
>
>
>
>
>Anybody care to investigate this VMIN,VTIME/VEOL,VEOF problem on
>another sysv unix? It might just be a Solaris quirk. I've only tested
>it with one digitizer (Kurta XGT pretending to be Summa UIOF) in ascii
>mode, but the fix should work for binary mode too.
>
>
>David Houlder                          Phone:  +61 6 249 4613
>Geography Department               (In Aust.:  (06) 249 4613)
>The Australian National University       Fax:  +61 6 249 3770
>--------------------------------------------------------------
-- 
Darrell McCauley, PhD; mccauley at mcs.com; http://www.mcs.com/~mccauley/





More information about the grass-dev mailing list