Friday, July 10, 2009

Bluetooth Status

There have not been any huge steps forward in the current status of the bluetooth stack, but many small ones which give a bit more visual, and development comfortability:

Little icons for devices list: Jörg Meyer, drew an identifiable icon according to the device class instead of the former empty black square.

Debug information: The bluetooth console opened by the server has improved its debug information, being more clean and formatted.

Close and start server, maybe one of the oldest and most annoying bugs the stack had. The USB pipes of the h2generic driver were not correctly cleaned, therefore at closing the device driver(Quitting the server) compiling the server or the kit and trying to start again the server, to test the changes, the stack was blocked due the usb pipes. The only way to test again was to restart the whole system. Consequences, now you can start the server and quit the server, plug and unplug your dongles. In a user side these are not common operations, but the development is going to be a bit more comfortable.

SetDeviceClass: This is a new method added to the bluetooth kit although it is not in the JSR-82 standard. Once the device class is set, and any remote discovers the Haiku node, it will concretely know if this is a phone, a printer, a GPS, or as we will set by default, a computer. This was an option in preferences, but until now it had no effect.

Here we can see how 2 dongles(BCM2035 and CSR bc-4) in the Haiku node have been discovered by Windows7 as different Device class(handheld, and Laptop).




Deskbar applet: Finally! Michael Weirauch took a day and sent me this patch which adds a deskbar addon, where we will place the most common actions. Currently the ones placed just help the development.


Friday, April 17, 2009

Status, something sleeping in HD

I remember when I was coding the Relauncher_deamon I isolated the component showing the feedback, and placed it in separated application, that must have happened around 2003!
The intention to isolate it, was to show information about the startup process, I placed it in an own LiveCD based on R5. I think it can be useful for scripts.

So after some talks in the Spanish mail-list, I have got the motivation to get that harddisk and recompile the application:

Can be downloaded here or in its bebits page

Sunday, March 22, 2009

Important change

In the last week, due a more advanced implementation on how HCI commands are created, I checked the possibility to start using the size value given by the ioctl's(control hook on drivers). On R5 the value was always 0, therefore I was forced to pass in the first 4 bytes of the buffer, its size.

This ioctl's feature works as expected in Haiku, therefore as this new mechanism for bluetooth commands assumes this fact, the R5 behavior, although present in code has been dropped in r29639. Check inclusion for define BT_IOCTLS_PASS_SIZE.

With the new mechanism memory leaks allocating commands are solved, as they are meant to be allocated in stack, and dropping this R5 legacy, we are using 4 less bytes of memory per command (considerable as many bluetooth commands are just 3 bytes).

Bla bla bla, sumarizing the important part:

*** After this revision, be sure you recompiled and are using an updated version of at least: h2generic, bluetooth kit and bluetooth_server. As this change solved many issues but broke many compatibilities ***

For the ones who test often, there are some strings more on the LocalDevice panel information (preferences), there you will be able to check your dongle's bluetooth version, and the company who maufactured.

I use this update to thank Edwin Erik Amsler, who has shipped me some bluetooth devices to test, and a bluetooth 1.2 dongle which was recognized by the stack:



the phone discovered:

Sunday, March 1, 2009

The Inquiry Panel

Maybe this is the most visual thing the bluetooth stack can show.

I have 2 bluetooth dongles connected: "CSR - bc4" and "Broadcom BCM2035". The further tests are gonna be pair the one with the other despite they are plugged in the same host. But by this way the input and the output are tested at the same time, as they don't know about each other and there is no such thing as loopback device in bluetooth context.

In the video can be seen how i set to discoverable the CSR one, and leave selected the Broadcom one. This will be used for the inquiry process. After the scanning and the retrieval of names, a phone and the CSR device are listed, and can be added to the Remote Device list.



Again UI suggestions/mockups are Welcome

Friday, February 13, 2009

Whisper BeNet running in Haiku

I have taken some time to comment about this parallel subject. Actually, I needed to check the commit date to know when that happened.

At the end I committed the initial sources of Whisper BeNet. Used Niue as build system for ZETA, and Paladin, for build system for Haiku.

Later on at the end of last December as per revision 13 the code is now running in Haiku. What I can see is that the network part might be working quite well, as it was possible to set a silence conference as can be seen in the screenshot. But the sound recording will be pending...


Friday, January 23, 2009

Some other evolution

This is the current state after some feedback. The information about the Local Device is not taking so much protagonism now, and the first tab the user can see is the list of the current remote devices(not implemented).

The intention is that the settings tab should not be needed for an average user, and the identified needed functions of this tab would be accessible also through a Deskbar applet...


Friday, January 9, 2009

Preference & next steps

In the next months all work is being focused in the codebase of the Phase1(ARCE) of the project. Three main things, fix bugs, clean, and implement features and tools which will make starting the Phase2 with a more comfortable Bluetooth base.

One of the most annoying things is that the bluetooth_server is not recognizing the hotplugged dongles on the system, they must be plugged before starting the server. So basically the management of the device(s) plugged in the Haiku system must be improved.

The second big one is the lack of tools, there are 2,  one informational, and another for discovering, but we cannot yet(in svn) take any action. The actions needed by the tests were taken by the remote device(phone).

In a document I was dropping during these months my UI Wishlist

There is a mockup of the future InquiryPanel which I would like to receive some feedback too, but the intention of the post is to show the current Preference application:

3 tabs, rightmost is pretended for global settings. The middle one, pretends to be a list of all known remote device: reacheable, paired, blocked, connected. And a description of what we know about it or services offered if available.

And the target of the post would be the tab which can be seen in the screenshot. Is the description of the LocalDevice, and the most basic action make it enter the game(discoverable). The good thing of those 2 checkboxes is that they are actually working. The black box is intended to show a laptop or Desktop machine(who know.. a smartphone?) icon depending how are you willing to identify yourself.

The panel is very basic so I thought there are many artists around that might want to give me some ideas with mockups or comments. I would be glad reading them before going on with the code.

BTW: The dongle identified in the screenshot is one donated by Pieter Panman one finally containing a valid bdaddr, thanks!