Etan,
This discussion seems to imply that discovered services and characteristics can be cached across disconnect/reconnect pairs if the application runs continuously in the background, so long as CBCentralManager does not power down.
Have you tried this and/or do you use this functionality yourself?
John
On 17 Apr 2013, at 08:14, Etan Kissling wrote:
Jack,
In the mentioned session they explained that characteristics are only cached when encryption is on. I haven't tested whether this is true, but may be worth trying.
To speed up characteristic discovery, consider lowering the connection interval for the first 30 seconds or so from your peripheral. You can do this by sending a connection parameter update request.
Also ensure that all your services with 16-bit uuids are grouped at the beginning of your peripheral gatt database. This allows to read up to four 16-bit uuid services at a time with the default MTU of 23 bytes.
Regarding serialization of cb* objects: it's not possible with public apis and even if you could serialize them for nsuserdefaults storage, you would still run into problems as the documentation clearly states that all peripherals etc are invalidated when
the cbcentralmanager state falls below a certain level. When you create a new manager, state defaults to "unknown" which is the lowest level ;-)
Cheers
Etan
Thank you very much for all your comments.
Jack
On Apr 16, 2013, at 11:28 PM, Andras Kovi < email@hidden> wrote:
Well, if you retrieve or discover a peripheral, then its services will be nil. Those are read only from our perspective so there is not even a theoretical way to save and then restore the characteristics. Maybe they come up with some caching this year (WWDC
2013 hasn't happened yet to my best knowledge :) ) but I doubt that as that would introduce a whole bunch of issues. Rediscovery is not a big deal, you just have to plan for it.
Cheers,
Andras
I may be wrong but I remember that in Advanced Core Bluetooth session from this years WWDC, they said we could catch the
characteristics.
Jack
On Apr 16, 2013, at 11:06 PM, Andras Kovi < email@hidden> wrote:
Yes, Khaos is right. You cannot save neither the characteristics or the services. They must be rediscovered every time.
Andras
It seems you had to re-discover characteristics every time you established a new connection.
Here are threads that discussed this problem previously.
http://prod.lists.apple.com/archives/bluetooth-dev/2013/Mar/msg00032.html
On Apr 17, 2013, at 1:25 PM, Jack Phan < email@hidden> wrote:
The reason is that I don't want to scan again. I would like to reconnect but don't want to discover characteristics again because it takes too long.
So when the user opens the app, I reconnect, no discover characteristics, but send characteristic values that I had saved to Peripheral.
Jack
On Apr 16, 2013, at 10:14 PM, Khaos Tian < email@hidden> wrote:
sorry for the typo.
I mean why don't you perform a discover characteristics action and then use that CBCharacteristic to perform action you want?
On Apr 17, 2013, at 1:06 PM, Jack Phan < email@hidden> wrote:
Hi Khaos,
Yes. I would like to save CBCharacteristic *myChar into NSUserDefauts and then load it when user open the app.
Thanks,
Jack
On Apr 16, 2013, at 10:02 PM, Khaos Tian < email@hidden> wrote:
May I ask why would you like to say CBCharacteristic into NSUserDefaults?
On Apr 17, 2013, at 12:56 PM, Jack Phan < email@hidden> wrote:
Hi Group,
I'm working on a project for iPhone (Central) with TI CC2541 (Peripheral) and would like to save a CBCharacteristic *myChar to NSUserDefaults but I don't know how.
Please give me a way to solve this. It's great if you could share your code for it.
Thanks a lot,
Jack
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Bluetooth-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
|