Does anyone have an example project of something that would look like this?
UART -> PROC/PSOC BLE -> which connects to BLE slave device
The *Soc would need to perform a few GATT characteristic writes to specific handles and also recieve notifications? Any help would be greatly appreciated. I'm also looking at this project, but I feel like I am missing something to do exactly those things : http://www.cypress.com/?rID=110262&cache=0
The PRoC BLE is like a reduced PSoC BLE where some of the internal analog components are left out. Since the BLE stack is pure software (despite the radio) it behaves similarly: One connection only.
Okay, so given that, if I have several (actually 12) peripherals which could be transmitting notifications in a star topology to the Cypress module - why could I not multiplex them? Afterall, BLE and especially the notification aspect of it is connectionless....
If not, how can I make this happen? Or rather can I with these Cypress products?
If you want to implement a start topology you can refer the project https://github.com/cypresssemiconductorco/PSoC-4-BLE/tree/master/100_Projects_in_100_Days/Day030_Tim...
.BTW your understanding is not correct "Afterall, BLE and especially the notification aspect of it is connectionless....". Notifications have to be send by server to client when connection is established.
That project was the one I had in my first post - but I highly disagree, besides the simplistic negotiation of capabilities - it is very similar to UDP.
Once a connection is set(with UDP it is done at the application layer), the hosts have no real idea that a connection exists - in that regard, this is not like TCP which is connection-orientated. Syslog is a prime example of this: there is a "connection" even with the UDP version and then data is sent. The first connection was a "hello, I am here".
Now with the second project - they connect to a host every second, is it possible to make this an abhorently low value such as 2ms vs. 1second or even 7.5ms?
PSOC4 BLE or PROC ble cannot maintain more than one connection at a same time.
So that's why we are disconnecting the present connection and connecting to the other device in round robin manner.
THough in the example we are not trasnferring any data, BLE devices sends notifications only while mainting connection. You cannot send notification without connection.
Host would definitely know whether the device is in connection state or not.Use the API Cyble_GetState() to know the current state of device.
We set the time as 1second .It is no where limitation or requirment.
For any BLE devices to connet it takes atleast 3.5-4ms and this is the best case. You cannot establish connection to new device within 1 seconds. You can try 7.5ms.