Estimote Beacons: Set up broadcasting interval - objective-c

is ist possible to increase the broadcasting interval of an estimote beacon?
I use CoreLocation to connect the beacons to my app.
But now i want to put the rssi values of the several beacon in a kalman filter. But in the current state i get one value in a second.
Thanks in advance.

Core Location itself does not support connectivity, because it treats beacons (or, more precisely, iBeacon) as broadcasting only. However, specific vendors can expose access to settings through their own apps and SDKs. We do that at Estimote: you can download the app from iTunes (https://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=686915066&mt=8) or Google Play (https://play.google.com/store/apps/details?id=com.estimote.apps.main), or check the SDK (https://github.com/Estimote) to access beacon's settings, advertising interval among them.
Estimote Beacons broadcast at 950 ms interval by default, and you can adjust it to anywhere between 100 and 2000 ms. Keep in mind though, that responsiveness also depends on the receiver's probing frequency. iOS devices do that, on average, once a second. However, that's just a general consensus: Apple does not publish details about this, nor do they expose access to settings of Bluetooth scanning.
On Android, on the other hand, you can set the scanning interval yourself. Check the BeaconService class in Estimote SDK: http://estimote.github.io/Android-SDK/JavaDocs/com/estimote/sdk/service/BeaconService.html
Cheers.

Related

How to get both sensor timestamp and mobile timestamp in order to synchronise two Movesense sensors in Xcode?

We are working on developing our own iOS app connecting with two Movesense sensors and fetching the acc, gyro and mag data. The app is going to be used for measurement of 8 hours, with 52 Hz. We'd like to collect both sensor time stamps and the phone time stamps, in order to make an accurate synchronisation of these two sensors. The default DFU settings seem to only give us sensor time stamps, which looks like this (example of only gyroscope data by Movesense Showcase app):
Should I modify the DFU, or is it possible to just state it in Xcode when getting the data package? I have tried to go through the available DFU packages and the .apk files as listed on the Movesense website. I am personally not familiar with the DFU programming, therefore we'd like to use one existing DFU package from Movesense, which is hopefully stable for the connection and data sampling.
You do not need to create your own firmware (DFU) for that. All the API's are available from the mobile phone, so just follow up the instructions given in this question & answer:
Android app dev: Finding the best way to synchronize the timestamps of two sensors
When recording using our Movesense Showcase app the situation is different since that app does not do multi sensor clock synchronisation. When recording with plain iOS Showcase app I would do "hit sensors together in the beginning and end of the recording" to synchronise the sensor data streams using the peak in acceleration. Then remember to treat the data streams as having different sample rates and base your analysis on the timestamps instead.

Android, Getting inconsistency in User Current Location.?

I am new in android and wanna get user current location using GPS_PROVIDER, but every time getting different-different location how can I use Google Play Services. and what is the best way to get accurate location in android.
Thanks you.
In general there are two different types of locations available through the Android API.
One is the GPS-Location which only works outdoors and which has an accuaracy between 5m and 50m.
The other kind of location is the so called Network-Location which is a loaction measure based on Wifi Networks in you surrounding and GSM-Base-Stations which have a accuracy between 100m and 1500m. This localization technique also works indoors, because it only requires you smartphone to have network access. The accuaracy gets better in urban areas where a lot of Wifi and GSM-Base-Stations are located. The more GSM-Base-Station / Wifi hotspos are available the better is the accurarcy of the loation measurement. It can also get down to 5m.
When requesting such an location Google does internally some magic to compute the position. This request requires a internet connection (you don't need to explicitly give the permission). Interanally Android sends a request to a Google server which contains fingerprints of the surrounding GSM-Base-Stations and afterwards computes your location (if you are curious you can find the code here).
With GPS-bases location the location accurarcy is the same all over the world without any internet connection, but works only outdoors.
With my applications I implemented a logic which detects if GPS is present or not and if not I switched to network localization, this works fine.

Is it possible to Access all Beacons with ibeacon API?

i'm close to finish an App using Estimote beacons having their UUID
hardcoded in my project which list out all the Estimote beacons using ibeacon API, but when i'm trying to make my own device as a beacon transmitter using the Device UUID, which is differ from the estimote UUID, i cannot find it, as the UUID which i mentioned in the code is Estimote's.
So my question is , is there any way that i can find all the beacons(Ex- Estimote Beacons, Kontakt Beacons, Blue cat Beacons and ibeacon hardware) which i can track with apple's ibeacon API?
With same code i wanted to track all beacons without hardcoding any UUID?
is it possible?
No,Apple has put restriction on finding of unknown Ibeacon .You can not find any unknown beacon.Though there are some hacks which are not that effective.Also there can not be more than one Udid a app region can contain.What you can do either is that ask the user what Udid he wants to monitor then the app can range for it.
Sorry for wrong spelling if any..
No, you must tell CoreLocation the ProximityUUID of any iBeacon you want your app to see or it will not tell you about it. See http://developer.radiusnetworks.com/2013/10/21/corebluetooth-doesnt-let-you-see-ibeacons.html
This does not mean you need to hardcode every UUID in your app. Doing so would require you to resubmit the app for approval each time you add an iBeacon with another UUID.
An alternative is to use a web service to give you a list of UUIDs to search for. You can build your own, or use my company's ProximityKit service that does this for you.
I wrote a test bench app for my company that has an array of UUIDs. It saves a default set of UUIDs to user defaults using the registerDefaults call.
The user can then create new UUIDs at will, as well as sharing them with other devices. (I Use a UIActivity, so you can share via AirDrop, messages, email, etc.)
It lets you input a UUID as hex digits, or you can tap a "create new UUID" button to generate a new UUID.
I included the Estimote UUID as well as the 3 UUIDs Apple includes, and a couple of unique ones.
Our test bench app then uses the list of UUIDs for both transmitting and receiving beacon IDs.
So while the UUIDs are stored locally, they are not hard-coded.
You could certainly also fetch a list of UUIDs from a web service as David proposes, or use iCloud to fetch a user-defined list of IDs across all devices that use the same AppleID.
A bitter truth for those who want to discover arbitrary iBeacons and their uuids.
There doesn't seem to be any hack to look for an arbitrary iBeacon on iOS -- you have to know at least the ProximityUUID to see one.
Using CoreBluetooth is pretty useless for working with iBeacons. You can see their advertisements, and measure the signal strength, but you can't see any of the identifiers, and thus, you don't even know for sure if any advertisement you see is an iBeacon at all, versus any other BluetoothLE device.

How to pass data to another app constantly in iOS?

I just want to know that is it possible to communicate two different apps in different device. Like I have a sample app in device A App name A and in another device B i have a app B I want to share some things between them. I came across to GameKit framework in iOS but I made a app when it is installed in both device they communicate succesfully but what if apps are different and what is the size limit of the data to send it over bluetooth in iOS.
Any idea how to implement this feature?
Two different apps can communicate via Bluetooth using GameKit as long as they both agree on the protocol (i.e. if you wrote both apps, or you know what protocol the other app is using).
There's no limit to the amount of data they can exchange, although there is obviously an upper limit on bandwidth (bytes per second).
Does that help?

J2ME location API (JSR 179) on non-GPS devices

The Java ME Location API says it supports:
Mobile Network based positioning.
GPS
Short Range Beacons
Quite a number of phones support this API (JSR179). However, some phones don't have an inbuilt GPS module, is it still possible to use this API to obtain the phone's current location?
Mobile Network based positioning.
The security settings will control if you can access this, the service provider may also make a charge.
From my very limited experience of J2ME, you can set the phone to not allow an app access to private data (such as location) and to charged for services (such as location) - you can also set it to popup a request for the user to authorize it.
J2ME is pretty well designed to gracefully fall back to whats available and hide a lot of the details.
Yes, some GPSless S60s (e.g. N70) give location through this API when used with an external GPS device attached via Bluetooth. Others may possibly give you approximate location using CellID.