Contact Rococo Software Ltd.

Knowledge base

How to close an RFCOMM connection

Problem: If a connection is not closed, an attempt to make a new connection in the reverse direction (i.e. a former server tries to become a client) the connection will fail, according to the spec.

Solution: Whenever your application opens a stream: you /must/ close it; simply closing its connection is not enough. This behaviour is compliant with JSR 82 and the GCF (Generic Connection Framework). The javadocs explains as follows: "When a connection has been closed, access to any of its methods except this close() will cause an an IOException to be thrown. Closing an already closed connection has no effect. Streams derived from the connection may be open when method is called. Any open streams will cause the connection to be held open until they themselves are closed. In this latter case access to the open streams is permitted, but access to the connection is not."

Category: Connection Handling
Date Published: 19-Feb-2002
Last Updated:20-Feb-2002
Products:Impronto Simulator 1.0 and 1.1

Reporting a bug in the Simulator and Console

Problem: As shipped, the Simulation Console only logs warnings and errors to the console window in which it was launched. In order for Rococo to locate the source of the bug, it would be very helpful if you could reproduce it with debugging output.

Solution: Edit the "manager" script and add the following flag to the java interpreter: -Dlog4j.properties=etc/debugging-log4j.properties. This will produce more debugging output allowing us to determine more exactly what was happening before the bug manifested itself.

Category: Reporting bugs
Date Published: 13-Mar-2002
Last Updated:
Products:Impronto Simulator 1.0 and 1.1

Connecting to a simulator instance running remotely

Problem: The most common usage of the simulator is for it and the device VMs it supports to be running on the same machine. How to tell a device to look for a remote instance of the simulator?

Solution: As configured devices look for the device discovery service in an RMI registry running at localhost:1099. In order to have them contact a discovery service which is not registered at this endpoint, pass the following system properties to the device VM:
-Dimpronto.discovery.rmi.registry.host=remotehost and/or -Dimpronto.discovery.rmi.registry.port=1234 (Note that the Simulation Console may also connect to discovery service registered at a remote host using the Discovery Service... menu item in its Configure menu.)

Category: Using the Simulator
Date Published: 13-Mar-2002
Last Updated:
Products:Impronto Simulator 1.0 and 1.1

Problems changing Discovery Mode of Simulated Devices

Problem: When using Simulation console a device is started and set to 'Not Discoverable', the changes are applied, then set to 'General Discoverable' and the changes are applied again. A client wishing to connect to this device still cannot choose it in the Service Browser window.

Solution: This is a known bug: it will be resolved in a future version the Impronto Simulator

Category: Bugs
Date Published: 20-Mar-2002
Last Updated:20-Mar-2002
Products:Impronto Simulator 1.0 and 1.1

Connection parameters must appear in specific order.

Problem: The JSR-82 specification allows various connection parameters to be specified in the connection string. Although the Augumented Backus-Naur Form (ABNF) specified in sections 9.3, 10.3.1 and 11.4.4 of the JSR-82 specification allow these parameters to be specified in any order, Impronto Simulator 1.0 requires that, where specified, they appear in the following order: ReceiveMTU (where applicable), TransmitMTU (where applicable), name, authenticate, encrypt, authorize (where applicable), master.

Solution: This issue has been fixed in Impronto Simulator 1.1.

Category: Miscellaneous
Data Published: 14-Mar-2002
Last Updated: 14-Mar-2002
Products: Impronto Simulator 1.0 and 1.1

Device does not exit Limited Discoverable Mode automatically.

Problem: The documentation for LocalDevice.setDiscoverable() states that "a device should only be limited discoverable (DiscoveryAgent.LIAC) for 1 minute" and that the implementation will "revert back to the previous discoverable mode" after the minute is up. Impronto Simulator 1.0 does not automatically revert back to the previous discoverable mode; you must call LocalDevice.setDiscoverable() in your application code to effect a change in the discoverable mode.

Solution: This issue will be addressed in a future release of Impronto Simulator.

Category: Miscellaneous
Date Published: 14-Mar-2002
Last Updated:14-Mar-2002
Products:Impronto Simulator 1.0 and 1.1

Category: Bugs
Data Published: 14-March-2002
Last Updated: 14-March-2002
Products: Impronto Simulator 1.0 and 1.1

Why doesn't the Bluetooth Simulation Console support the full range of inquiry access codes?

Problem: The 1.0 spec allows the application to set the inquiry access code to any integer between 0x9E8B00 and 0x9E8B3F inclusive. The Impronto Simulator only supports the General Inquiry and Limited Inquiry access codes, however.

Solution: This is an optional feature in the JABWT specification, and has not been implemented by the Impronto Simulator.

Category: Bugs
Date Published: 14-March-2002
Last Updated:14-March-2002
Products:Impronto Simulator 1.0 and 1.1

Category: User Interface
Data Published: 14-March-2002
Last Updated: 14-March-2002
Products: Impronto Simulator 1.0 and 1.1

The event filter has been changed but the Event Logging window does not reflect the change

Problem: Changes applied to the event filter by selecting "device/logging/event filter" are not reflected in an open logging window

Solution: Apply the change directly to the logging window. Alternatively open a new logging window on the device, which will inherit the event filter settings from the device. Note that logging windows don't share the same event filter. A logging window inherits an event filter when it is opened.

Category: User Interface
Date Published: 14-March-2002
Last Updated:14-March-2002
Products:Impronto Simulator 1.0 and 1.1

Connections have incorrect security mode

Problem: The Simulator GUI displays incorrect security-mode information for connections.

Solution: This has been fixed in Impronto Simulator 1.1

Category: Bugs
Date Published: 15-Mar-2002
Last Updated:15-Mar-2002
Products:Impronto Simulator 1.0

BluetoothStateException raised during call to DiscoveryAgent.selectService

Problem: BluetoothStateException raised during call to DiscoveryAgent.selectService

Solution: If another thread is blocked in DiscoveryAgent.selectService() when it is called, then the caller will see BluetoothStateException. It would be better from a usability point of view if the caller was simply blocked until the other thread was done. This has been resolved in Impronto Simulator 1.1.

Category: Bugs
Date Published: 20-Mar-2002
Last Updated:20-Mar-2002
Products:Impronto Simulator 1.0

Multiple Link Status Windows Displayed

Problem: If you double-click on link multiple times, you will get a new link status window for each time you do this.

Solution: This has been resolved in Impronto Simulator 1.1

Category: Bugs
Date Published: 20-Mar-2002
Last Updated:20-Mar-2002
Products:Impronto Simulator 1.0

The label is the pre-known dialog isn't always stored

Problem: Sometimes the pre-known dialog fails to record the label field

Solution: When the label has been entered, hit the return or enter keys

Category: Bluetooth Simulation Console
Date Published: 16-May-2002
Last Updated:16-May-2002
Products:Impronto Simulator 1.1

Can have two device tabs with the same name

Problem: Since the properties pane can be used to edit device configuration files and configure running devices, it is possible to have two tabs with the same name.

Solution: This will be fixed in a future release

Category: Bluetooth Simulation Console
Date Published: 16-May-2002
Last Updated:16-May-2002
Products:Impronto Simulator 1.1

The semantics of viewing the connection state between two applications with more than one connection between them is confusing

Problem: When two or more connections have been made between two devices, it can be impossible to view all of their states.

Solution: This will be fixed in a future release (the connection information panel will contain tabs for all of the connections)

Category: Bluetooth Simulation Console
Date Published: 16-May-2002
Last Updated:16-May-2002
Products:Impronto Simulator 1.1