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