Charles Wichman (wichman@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@gis.cwu.edu
--
Darrell McCauley, PhD; mccauley@mcs.com; http://www.mcs.com/~mccauley/
David Houlder (david@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@mcs.com; http://www.mcs.com/~mccauley/