> - In the documentation and the sample, I could also not find code which
> issues any commands which are understood by the PCMCIA card.
I'm not too familiar with PCMCIA technology myself (actually, I know little more
about it than that it's supposed to operated in a plug-and-play fashion ;-)), so
I had to do a little reading in the SDK docs to get into the basic concepts -
and maybe I still got it all wrong. :-)
It seems to me that the specifications for a "PCMCIA driver" in Geos do not
define too many device-specific functions at all - most CardService functions
only seem to deal with general things like notifications of inserting, removing
and reserving access to the card, while additional interfaces have to be
provided by the driver itself if it wants to support a non-standard device.
Actually, this seems reasonable to me, as a new type of I/O device must bring
its own command set unless it is only a PCMCIA version of an already supported
device class... The PCMCIA driver structure appears to work only as a means of
negotiating dynamic loading/unloading of drivers when cards are
inserted/removed.
I had a quick look at the source code of the PSERIAL driver for PCMCIA serial
cards on the Zoomer in ...\driver\sdk\pcmcia\pserial\zoomer of the pre-OmniGo
version of the SDK (it seems that this driver is not in the OmniGo DDK, who
knows why?): this driver doesn't contain any serial-device-specific functions,
instead it just loads the standard serial.geo driver and registers itself as an
additional "port" with the driver, specifying a base port and IRQ number. The
serial driver then seems to handle actual access to the card. I think that a
similar strategy will be necessary for other I/O-style cards...
This is a list of the driver functions which are mapped by the PSERIAL driver's
strategy routine:
DR_INIT
DR_EXIT
DR_SUSPEND
DR_UNSUSPEND
DRE_TEST_DEVICE
DRE_SET_DEVICE
DR_PCMCIA_CONFIRM_REMOVAL
DR_PCMCIA_CARD_REINSERTED
DR_PCMCIA_POWER_DOWN
DR_PCMCIA_POWER_UP
DR_PCMCIA_DEVICE_TURNED_ON
DR_PCMCIA_DEVICE_TURNED_OFF
The standard serial driver only becomes involved in DRE_SET_DEVICE and in the
on/off/inserted/removed functions of the PCMCIA driver.
Only very general stuff, but maybe this helps you in getting on the right
track...
ciao marcus