Other Parts Discussed in Thread: CC2541, CC2540
Hello,
I am in desperate need of some guidance seeing that I'm very new to BLE and iOS development.
I have installed and am running the TI BLE example applications on my iPhone, with a successful connection to the CC2541 Keyfob. I have also read quite a bit of the documentation and it seems that with iOS CoreBluetooth BLE integration the main actions are: detect peripheral, detect services of found peripheral, detect characteristics of found services. Further communication (read and writes) happens strictly via the iOS CoreBluetooth API then.
Here is my problem/question: The hardware guys (they will use the CC2540 chip) have a custom protocol that needs to be implemented. Can this protocol only be exposed via profiles (with services and characterics) or is there a way to exchange data between the phone and hardware via BLE with a raw-data-exchange protocol? I just need guidance on what is the easiest way to get the comms going between the hardware and phone via BLE.
Correct me if I'm wrong, but I understand that the SPP does not work with BLE and that all data communications within BLE are done using the ATT / GATT layers of the protocol stack, which allows for a maximum of 20 bytes per packet. So from an iOS (CoreBluetooth API) point of view, is there any other way to comms with the BLE hardware (cc2540) apart from the services/characteristics mechanism? In other words, can one go the raw-data-exchange mechanism at all, or must the hardware guys ensure that they implement things on their side in such a way that from iOS CoreBluetooth API I can read/write values via Characteristics?
I do apologize if I seem unclear/vague in certain areas. This will be due to my lack of knowledge so please bare with me.
Any help/advice/guidance is much appreciated.
Thanks in advance,
Scott