Bluemix Presence Insights beacon connector exit event - ibm-cloud

I'm using IBM Presence Insights with my Android App + Estimote SDK. The SDK picks up the Beacon UUID, major and minor upon entry. Next, it successfully sends the event to PI. However, how do I send the exit event to PI since there's no "exit" API or parameter?

Exit events are automatically generated by Presence Insights when:
The device is detected by another beacon, at a different zone.
The device is not detected for a period greater than Device Timeout.
Device Timeout can be configured at Settings -> General -> Application Settings. The default value is 900000 ms (15 mins).

Related

cordova-plugin-ble-central autoconnect function always prompting user to pair the device

I'm currently working on an ionic capacitor app that needs to connect automatically with a ble device.
I'm using the ble ionic native plugin:
https://ionicframework.com/docs/native/ble
https://github.com/don/cordova-plugin-ble-central
The goal is sending and receiving bluetooth info and commands to the ble device, which is a car alarm central that controls a few actions like lock and unlock the doors accordingly to the RSSI values on from the device.
So, I'm using the autoconnect function to auto-connect with the device as soon the device is close to range and all works perfectly in Android and iOS. The only issue is that everytime the device reachs the ble range and the ble plugin try connecting, the system prompts the user to accept pairing with the device again.
I need it to work without that pairing prompting everytime. I tried to pairing the device previous to initialize the app but it didn't worked as well. So is it a way to make this autoconnection work without prompting the pairing acceptance everytime it is disconnected?
The issue occurs on Android versions 9 and 10 and iOS.
I've changed my ble hardware interface to ask for a PIN code. I guessed the connection could be considered secure by the OS and prevent prompting the user to pair again. Didn't work as well.
Every connection started by the plugin seems like bounding and connecting as if it was the first time connecting to the device. Even connecting to a known device is prompt the user to input the PIN, which if not provided the OS forgets the device.
Any toughts? Anyone? Thank you!

Movesense Peak detectiion trigger

On the Maxim EKG chip, INT2B can be set as a peak detection trigger. How do I send a BT notification, preferably with a timestamp as soon as possible through the Nordic platform? Thank you.
In Movesense architecture there is no direct access to hardware, everything happens via Movesense API (defined in MovesenseCoreLib/resources/movesense-api as ".yaml"-files).
The Maxim 30003 peak detection is accessed via /Meas/HR -resource which gives notification each time a peak is detected. That resource can be subscribed to directly from the mobile (via the MDS library, see: movesense-mobile-lib). The delay from the actual peak to the mobile notification should be relatively constant and dominated by Maxim chips detection delay (read: I have not measured). The BLE connection causes itself some delay that should be 20-100ms or so depending on the BLE connection parameters etc. This is the way I'd go for since later when we add the timestamp to /Meas/HR (it has been requested from us already) it's a simple modification to use the included timestamp.
Alternatively you can write your own sensor app (firmware) with its own API, that can subscribe to /Meas/HR and for each notification do GET to /Time/Detailed and return just the timestamp each time a peak is detected. For a starting point for that I'd recommend the jumpmeter_app and modify it accordingly.
Full disclaimer: I work for Movesense team

How the application does to manage the repeated signal of beacons?

I'm new in beacons and I don't understand how the application manages the signals of the beacons. Because the app can receive in a short period of time many signals from the beacon. How the application does to manage that repeated signal? If for example a beacon sends a message and half a second latter the same beacon sends another message then the application get two signals of the same beacon. It means that each time the beacon sends a message the app shows a an add to the user? or how the application knows that this message was already displayed by the app?
Beacons do not send messages to users. They only transmit a unique numeric identifier over and over again, at a typical rate of 1-10 times per second. That's it! That is all they do!
Most of the functionality people associate with beacons is really provided by software that runs on a mobile phone, or even running on cloud servers. An iOS framework or an Android library detects the beacon transmissions and converts them to one of two basic event notifications for mobile apps to process:
Beacon appeared/disappeared (called monitoring)
Beacon is still in range at an estimated distance (called ranging).
By using monitoring events, mobile apps are told when beacons first appear, and can then convert the beacon's unique identifier into a message to be displayed to the user via a lookup table bundled with the app or on a cloud server. Thanks to the monitoring event notifications, the message only displays once for each time the beacon is first detected by the phone. It will be displayed again only once the beacon goes out of range and comes back in range again.

CoreBluetooth APIMISUSE (send command - peripheral not connected)

The system i'm working with uses the following scenario:
Connecting to bluetooth LE device
Discover Services & Characteristics
Write command to TX characteristic and receive response
Above works fine 90% of time. Now and then the system gets into a state where 3rd step constantly fails (there is no response from device whatsoever even though step 1 and 2 succeeded. Restarting the app / phone / BLE device DOES not remedy this. Block is constant. What does resolve the problem is manually unpairing the device from iOS system settings. Looking at BLE diagnostic logs i get this:
"pon. mar 7 21:27:30 Preferences[380]: [CoreBluetooth] API MISUSE: can only accept commands while in the connected state"
However prior to sending the commands i've debugged the app and i'm 100% the connection is established and services&characteristics have been discovered. Any Idea? Anybody facing similiar problems?
Did you implement centralManager:didDisconnectPeripheral:error: in your central manager delegate?
It will notify you when a peripheral disconnects. Could be that the peripheral disconnected or there was a connection error. You should always make sure to only do read/write operations while in the connected state.
Maybe also have a look at this method: centralManager:didFailToConnectPeripheral:error:

MonkeyTalk for recording and replaying the user actions; could it work offline?

I want to use MonkeyTalk for recording and replaying the user actions on the mobile device for measuring energy consumption but I don't want the mobile device to be connected the the computer or its WiFi to be on (because it consumes energy) when it is replaying the actions. So does anybody know if the phone has to be connected with a cable or WiFi to the computer when you want to replay the recorded interactions?
I would also appreciate to know if you have any suggestion for using other tools.
Update entire app from SVN to your mac system.You are creating an IOS agent to your app activate for testing.Once running your app then automatically record option is activated in monkey talk automation tool.