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