Understanding the Bluetooth connection pro
We cannot inform the device is "CONNECTED" until it is ready to immediately accept commands, as customer usually act on the CONNECTED callback to poll the device for more information.
When we set the Scan Filter:
- The "Found Device" calllback (in the SDK) reports the first VP3300 device in about a second (for the VP3320, it is about half that time)
- The iOS is then instructed to poll the device for characteristics
- The "characteristics" callback (in the SDK) receives information about the device about 500ms later
- If the characteristics match the signature of the VP3300, then the SDK asks the iOS connect to this device
- The "connected" callback *(in the SDK) is informed the bluetooth module is connected about 500ms later
- The SDK must now verify this is a VP3300. So it executes a getFirmware command. This takes about 500 ms.
7 If there is a valid response, then the SDK tells the program the device is connected and the customer sees "CONNECTED"... about 2 seconds have passed by now
- If the getFirmware command fails because of a timeout, two more seconds have passed. Sometimes the bluetooth channel needs more time after characteristics are found before we can communicate to the device
- The firmware sends getFirmware a second time. This takes about 500ms
10 If there is a valid response, then the SDK tells the program the device is connected and the customer sees "CONNECTED"... about 5 seconds have passed by now
11 If the getFirmware command fails a second time, then something else is wrong (unit powered off?), and device stays disconnected.