1This is TODO  Tue Nov 13 14:54:06 MST 2001
2
3----------------------------------------------------------------------------
4
5	HIGH PRIORITY TODO's
6
7----------------------------------------------------------------------------
8Win32 Frame Parity CD and RI events.  TIOCGICOUNT is commented out in
9win32termios.h to avoid SIG11's.  The source of these has not been
10identified.  I could not figure this one out.  If BlackBox is run on COM1
11and COM2 and you plug in a null modem cable between the ports things blow
12up.  I dont know if variables is on the native side get gc'd or if there
13is a bad pointer someplace.
14
15
16The next bug is also report using BlackBox on Win32:
17"Using all of the default settings, if I click auto-transmit it
18runs for about half a second and then crashes. I've attached the log file
19it gave. Sometimes it runs a little longer than others. If you enable and
20disable auto-transmit repeatedly it seems to help it crash faster. This
21looks like a fairly repeatable way to cause the problem so hopefully
22debugging would be easier."  I'm going to try looking at this tonight.
23
24And the final bug report is reported on FreeBSD 4.5 with some in house
25software:
26
27"Okay, now the application runs.  I don't get a sig11, but my application
28freezes when it tries to talk to the modem.  The user has access to the
29modem as minicom works on that modem.  This application works well under
30windows with the JavaComm from Sun."
31
32
33Sat Jul 28 09:55:37 MDT 2001
34
35----------------------------------------------------------------------------
36
37	REMAINING TODOS
38
39----------------------------------------------------------------------------
40
41The following TODO's are known to need work but will not be implmented in the
42near future.
43
44DSR does not work reliably for some people.  contrib/DSR-workaround.java
45contains a workaround the Ken Eisner contributed.  If you are able to reproduce
46the problem and find a fix for RXTX please let the maintainer know.
47
48Buffer Size is just a var.  No memory is allocated.  This was done to duplicate
49the behavior in the behavior table in javax.comm.CommPort.html.  Its not clear
50to me if the buffers are just mallocs or modem buffers.  Any experts there?
51(its probably refering to fopen()/fread()/fwrite()/fclose() which may or may
52not be of interest to someone)
53
54While looking through the blackdown mail list, it was obvious that some people
55really want printer support.  Here is a chance to put it in themselves.
56
57ParallelPort and CommPortIdentifier files are provided so you can start
58implementing right away without worrying about how automake works.  They are
59not written in stone.  If you want to do it differently feel free.
60The good side is the stuff compiles as is.  Write was tested on a printer.
61
62Currently (rxtx-1.4-5) sun's jdk (version 1.2.2_006) with native threads is
63locking up with multiple open()/closes().  Its ugly.   The stack trace is
64useless.  No insight from jdb.  The green threads are working.
65
66I'd suggest avoiding native threads with 1.2.2_006 unless you can figure out
67whats going wrong.
68
69----------------------------------------------------------------------------
70
71	Porting Status.
72
73----------------------------------------------------------------------------
74
75Irix SerialPort support
76	I've heard it works.  I didnt get an exact diff back but it should work.
77	rxtx-1.5 has not been tested.  Last report was that the library built
78	but there was unsatified link errors when an application was run.
79
80	The following showed up in the build:
81
82	/usr/include/standards.h:128: warning:  `_NO_POSIX' redifined
83	/usr/include/standars.h:156: warning: `_NO_XOPEN4' redefined
84	ld32: WARING 84: /usr/lib32/libc.so is not used for resolving any symbol
85
86*BSD SerialPort support
87	freebsd serial works.
88	kernel specific implementations
89	possibly a buggy event loop.
90
91AIX
92	It has not been confirmed that AIX works.  I've heard of people building
93	it though
94
95WinCE
96	WinCE should work now
97
98The following should work with Serial communication.  Sometimes breakage slips
99in.
100
101	Solaris (x86/Sparc), OpenUnix, UnixWare, Digital Unix, True64,
102	Mac OS X, HP-UX, Win32.
103
104If you would like to donate ssh access for any of these for compile tests before
105release contact taj@www.linux.org.uk.  We have Solaris x86 2.6 and 2.8.  Also
106a DEC UDB without an OS.  Binaries will be offered if access to build boxes is
107 provided.
108
109Win95/98/ME/NT/2K/XP with mingw32
110
111	Long story there.  Ever put together a few hundred lines of code for
112	fun and then have to support it 4 years later?
113
114	It started as mentioned with some toy code while playing with cross
115	compilers.
116	The Wayne Roberts provided many improvements.
117	Another big push was made after this.
118	The code should be fairly good now.
119	Some of the builds are hairy.
120
121	The library was tested  (rxtx-1.5-4).  The library built and installed
122	using lcc and mingw32(on windows and from linux)
123	The library passed multiple tests after rxtx-1.5-7.
124
125	files:
126		SerialImp.c   termios based JNI code
127		SerialImp.h            ""
128		termios.c      termios implementation for win32
129		win32termios.h         ""
130		init.c  lcc dll support
131		init.cc mingw32 dll support
132		fixup.c mingw32 dll support
133		Makefile.lcc  static Makefile for building with lcc
134		Makefile.cc   static Makefile for building with mingw32
135
136	The following other options are possible but not started
137
138		use cygwin.dll and release rxtx under the GPL
139		replace SerialImp.c/h with something that does not use termios.
140
141	win32 API documentation:
142		ftp://ftp.cs.virginia.edu/pub/lcc-win32/win32hlp.exe
143	Microsoft Online Library:
144		http://msdn.microsoft.com/
145	Serial API doc:
146		http://msdn.microsoft.com/library/techart/msdn_serial.htm
147
148BeOS
149	BeOS support is in the early stages.  It should read and write bytes
150	See the BeOS documentation for more information.  See rxtx-2.1 for
151	details.  This effort is mostly abandoned.
152
153----------------------------------------------------------------------------
154
155	File specific thoughts
156
157----------------------------------------------------------------------------
158RXTXPort.java
159	framing control -?-
160	buffer control -?-
161	look for FIXME
162
163ParallelPort support.  Needs some code.
164	files:
165		ParallelImp.c stubs
166                      A  large fraction of the stubs are filled in now.
167		ParallelImp.h
168		LPRPort.java similar to RXTXPort.java + stubs.
169	Printer support is working with simiple print tests.
170	Full support for printing will be put in when 2.4 linux kernels
171	are mainstream.
172
173----------------------------------------------------------------------------
174	From This point on, You need to use rxtx 1.5.  All of this work is
175	being done in the development branch of the cvs archive.
176
177	cvs checkout -r commapi-0-0-1 rxtx-devel
178
179	gets the recent work.
180----------------------------------------------------------------------------
181
182RS485 Support
183
184	This is intended to be an rs232->rs485 driver.
185	The basic layout is in place with no native implementation.
186
187	devices are not coded into RXTXDriver.java see /dev/ttyS0 and gang
188	for examples.
189	Nothing is carved in stone.  Changes will probably be needed in
190	several of the files.
191
192	So far the only significant difference between RS485Imp.c and RXTXImp.c
193	is writeByte and writeArray raise and drop DTR as needed.  I've not
194	spent a large amount of time on this.  It compiles.  I need to find
195	an RS485 device to test this.
196
197	I could picture enumerating the devices on the bus similar to
198	enumerating ports with 232 comm.  It could be possible to build
199	the packets with vendor specific bits.
200
201	files:
202		RS485.java
203		RS485Port.java
204		RS485PortEvent.java
205		RS485PortEventListener.java
206I2C Support
207
208	The basic layout is in place with no native implementation.
209	devices are not coded into RXTXDriver.java see /dev/ttyS0 and gang
210	for examples.
211	Nothing is carved in stone.  Changes will probably be needed in
212	several of the files.
213
214	I want I2C support for a recycling infusion mash system (home brewery)
215	I'm looking at building.  Who said there isnt free beer?
216
217	files:
218		I2C.java
219		I2CPort.java
220		I2CPortEvent.java
221		I2CPortEventListener.java
222
223	I'll be returning to this after I order the parts for dallas semi.
224
225CommPortIdentifier support. Needs some code.
226
227	This is starting to shape up.  Maybe 100 lines from a the full
228	montey.  Grep for FIXME for known bad spots.
229
230	Ownership needs work.  BlackBox fires up, finds the ports and
231	read/writes with the rxtx implemented comm.jar.
232
233	This has actually expanded to a complete comm.jar implementation.
234	Contact the maintainer if you have interest in working on this.
235	While automatic enumeration of ports needs some work you can
236	open specific ports.
237
238	Plenty of example code can be found in commapi/samples/porting
239	Please don't send in Sun's code.
240
241	files:
242		CommDriver.java
243		CommPort.java
244		CommPortEnumerator.java
245		CommPortIdentifier.java
246		CommPortOwnershipListener.java
247		SerialPort.java
248		SerialPortEvent.java
249		SerialPortEventListener.java
250		UnsupportedCommOperationException.java
251		NoSuchPortException.java
252		OwnershipEventThread.java
253		ParallelPort.java
254		ParallelPortEvent.java
255		ParallelPortEventListener.java
256		PortInUseException.java
257
258------------------
259backwards compatibility for older Linux systems.
260------------------
261non Linux specific implementations
262------------------
263allow the library to catch sigint so it can shut down the port properly when
264sent
265------------------
266Add more documentation.
267------------------
268
269----------------------------------------------------------------------------
270
271	IDEAS
272
273----------------------------------------------------------------------------
274
275Make rxtx apps capable of being spawned from mgetty.  <gluck@tempo-services.com.au>
276
277Lock file server for multiple users:  see src/lfd.
278