I am planning on adding some vendor specific Characteristics to the Glucose Profile.
Is this a recommended practice or do you advise a different approach?
There are some items in the currently defined glucose profile that fall short of what we need to do.
Please let me know if this is an accepted practice or another approach
Solved! Go to Solution.
It is not allowed to add vendor specific characteristic to a standard BLE profile. Meanwhile there should be no problem of having Glucose Service with legal mandatory/optional characteristics and Vendor Specific Service with Vendor Specific Characteristic. For your application it would be just very few extra bytes, but it will be legal and you should not have interoperability problems if somebody decides to use of the shelf client with your Glucose Service.
If you are using 2.0 version of the SDK there is a new Smart Designer feature. Click on File->New->Wiced Smart Device Configuration and it will allow you to create the GATT database.
I do not yet have the SDK 2.0 … did it get released on time? Also, this is going to require us to move to a new A1 ROM but the device I have to work on at the moment still has the A0 ROM and SDK 1.1
So are you saying I should not ADD a vendor specific characteristic to the existing Glucose Service? What happens if I do ? Just curious …
Also, if this is not allowed you are suggesting that I could add a vendor specific SERVICE with its own characteristics?
Will both services run at same time? For example, if I run the primary glucose service do I need to create a primary UUID 128 service with its own characteristics and both should appear say on a BLE app scanning? Like LightBLue app in iOS?
I tried this earlier but was having some issues having both services show up …
SDK installs in a different directory, so you should be able to install both and switch between them. You can use smart designer to help you develop GATT DB and copy paste into 1.1 project. They are using the same macros. But you can do everything by hand. There are plenty of samples which publishes 2 or more services. For example hello_service has Vendor Specific Service and standard Battery and Device Information services. Two services do not run in a separate thread. It is just a way to tell peer that this set of characteristic belongs to one entity and another set of characteristics belong to another entity. Read/Write/Notify only use handle of characteristic value. Just make sure that all handles of all services and characteristics are sorted correctly.
I believe I have made some headway with this and can see my vendor specific service co-exist with the glucose service. So that is good.
However, I would like to find out more by what was meant by in your previous post “It is not allowed to add vendor characteristic to a standard BLE profile”
Is this something mandated by the SIG itself ? I just want to make sure I understand where this information comes from …
That is correct. When Bluetooth SIG defines a new profile they create a Service document which specifies which Characteristics are mandatory and which are optional for this Service. This is very important if you allow not only Client developed by you, but any Client to be able to work with your Service. For example if I decide to develop a Glucose meter application on the iPhone I should be able to connect and work with Glucose meter server developed by you. If you are not spec compliant my application might not behave correctly. If you do not care about other clients you should not use BT Glucose Service at all, but use Vendor Specific Service which will publish glucose meter measurements.