OBEX library — Readme
3rd December 2007 — release
1.5 (1.5.1203).
What’s new
For the full list of changes in the current and previous versions see the Changes document. In brief the changes in the core library in this version include:
- Support for NETCFv1.
- Support for Mono (http://www.mono-project.com/Main_Page),
Mono version 1.2.6 is required for the library and samples to work fully.
- Added a
HasSize property to ObexFileOrFolderItem class,
and thus to ObexFolderItem, and ObexFileItem classes.
This allows one to know whether a size value was included in the folder-listing.
- The ProtocolViolationException message when parsing an incorrectly formatted received
PDU now reports information about the location of the fault, for example “Overrun
PDU in parsing at index: 3, location: 'pre-header-bytes', pduLength: 3.”
- A fix to workaround the bug in various servers where a connect response packet signalling
an error is in a bad format (it doesn't contain the necessary connect bytes).
We detect the short response when it has an error code and suppress the ProtocolViolationException
in that case so that the ‘bad response code error’ can occur.
- A fix to workaround the bug in the Widcomm servers, where a connect response packet
signalling an error has zero in the maximum-packet-size field.
- A fix to workaround the Widcomm Abort fault where it returns an illegal Final PDU.
We now ignore any such invalid responses in that case.
- Adding null Byte-Array headers disallowed.
These are also many fixes and improvements to the sample programs. They have
also been updated to use version 2.2 of the InTheHand 32feet.NET library.
Note that the NullReferenceException that would occur when attempting a Bluetooth
connection on a CE/PPC device without the Microsoft Bluetooth stack was an issue
in that library and has been fixed (their workitem
11744).
Features
The library provides very broad client-side OBEX support, providing not just the
‘Put’ operation that most libraries and applications support, but also
the complete set of operations: Connect, Put, Get, SetPath, Delete, and Abort. This
is accessed through a session based interface. All errors communicating to the peer
OBEX server are exposed to the calling application.
As well as the ‘on-the-wire’ protocol support there is also broad support
for the objects defined in the OBEX specification, for instance the Folder Listing
XML documents as used by the Folder-Browsing service. A full parser, returning an
array of folder and file objects, is included
The library also provides access to its lower-level PDU (packet) creation and parsing
facilities, enabling third-party implementation of any required features, for instance
server-side operation, and perhaps even reliable-session support.
The library, its class documentation in both compiled HTML Help, and in raw XML
for Intellisense, and a Programmer’s Guide
are included.
Assemblies for both the FXv2 desktop and Compact Framework versions 1 and 2 are supplied.
Included sample code contains examples in both C# and VB.NET, showing how to use
Put, Get, SetPath, and Folder Listings operations. They include examples of asynchronous
usage, along with progress bar updating. Most use the TransportConnection library
to form the connection to the OBEX server. Some however manually create the
connection.