I'm developing a custom desktop application that requires more flexibility then what the current SDK for Microsoft Band is offering (only MS Windows OS, no win32 API, Windows 10 UWP applications are too limiting in background tasks, ecc..).
I just need to read raw data from the Microsoft Band 2 (Heart Rate, Galvanic Skin Response, Accelerometer, Gyro).
I'm exploring the solution of directly communicating to the band using its Bluetooth LE (Smart) services.
I'm able to subscribe to services using some tools for BLE analysis, and it seems that we can read the data.
Moreover reading here on stack overflow it seems that someone already managed to decode the raw data. Is some unofficial documentation available?
Image: Raw services screenshot
Related
I'm looking for tutorials or developers guideline docs to develop the chromecast built-in devices. Actually, I want to know software structure and how to get required libraries or sample codes on chromecast built-in in a linux device with screen.
I've already looked at the google cast SDK documentation from https://developers.google.com/cast/. However, it contains content about application and streaming services. I have not found what I want yet.
for example,
required DRM (widevine or playready)
media pipeline integration
device discovery (DIAL???)
application lifecycle management (if needed)
I expect how I can get documentation and resources on what I need to understand for "google cast built-in device" development. Thank you.
Is it possible to search for beacon data (uuid, url, ...) with a progressive web application using just web technologies that is without using native mobile technologies (Android, ios, ...)?
Thanks in advance.
Unfortunately, this is not possible as of July 2020. While Google has been working on the WebBluetooth project to bring support for many bluetooth operations to the browser, at least in Google Chrome implementations on Android 6+, Mac or ChromeOS.
Scanning for beacons is not yet possible as of this writing. The API requires that the OS scan for devices matching a requested criteria, and then let the user choose a device to connect to using a user interface. This essentially rules out beacon detection.
Bluetooth scanning APIs are still in draft form here.
EDIT: The APIs mentioned by #zurfyx in the answer below allow you to scan for and connect to an advertised GATT service, but do not allow you to read the data in the advertisement. This is a critical distinction, as reading the data in the advertisement is the key capability required for actual bluetooth beacon detection. That capability is missing from that API. Without that capability, it is impossible to detect a beacon, it is only possible to connect to a BLE device that might be an Eddystone or other service advertisement-based beacon.
UPDATE July 2020: Safari will not be getting any WebBluetooth APIs at all due to privacy concerns, according to a June 2020 announcement by Apple This makes Bluetooth scanning impossible on iOS we apps for the foreseeable future.
As of July 2020, Chrome does not support scanning arbitrary advertisements. See status here: https://github.com/WebBluetoothCG/web-bluetooth/blob/master/implementation-status.md
Disclaimer: I wrote eddystone-web-bluetooth (a library which makes it easy to read and write to an Eddystone device). github#eddystone-web-bluetooth npm#eddystone-web-bluetooth
It is possible to scan for Bluetooth devices by using the Web Bluetooth API (currently supported only by Chrome).
By using Bluetooth GATT service, you can connect to Eddystone devices and send/receive data by communicating following their public specifications (which are basically a list of request codes, and the format in which to send and expect their responses).
These services include information such as:
URL
Advertising interval
Lock state
and more
By using the Bluetooth standard information you can get to know the most generic device information, such as its id and name:
navigator.bluetooth.requestDevice
#beaufortfrancois wrote the probably first Eddystone Web Bluetooth configuration code (source code / demo), so it is probably worth a read if you want to dig more into this. I learned a lot from it.
I am looking for a fitness band which provides direct real-time sensor data over Bluetooth to a mobile (Android) app. I want to write a health app that tracks the heart rate continuously. Most of the bands I found, does not provide direct access and the sensor data needs to be synchronized over the web.
While searching I came across the “Microsoft Band”. Their website (http://developer.microsoftband.com/) says it provides data directly over Bluetooth. But I also found out that for an third party Android app to access the sensor data one has to install “Microsoft Health” app beforehand. Hence I am in doubt whether the data for the Microsoft Band also gets synchronized over the web through the Microsoft Health app or not.
Can someone please clarify my doubt, i.e. whether the sensor data can be access directly at real-time or not. I just want to be sure before buying the product.
On Android, in order to stream sensor data from the Band via the Band SDK, you must install the Microsoft Health application. However, the aggregate data collected by the Microsoft Health application and sync'd with the Cloud is completely independent of any data streamed in realtime by a third party application.
I have an project where I want to scan data to a table using a handheld device. The device would be docked sending the batch of data to the PC to be processed using ActiveSync or Windows Mobile Device Center. The device in this case runs Windows CE 6.0.
The customer has an existing app that uses PocketAccess to do this, but that support was removed many years ago in CE, so it limits his access to new devices.
I first started looking at alternatives and saw a lot about Microsoft Sync Framework. But I have since discovered that it is no longer supported in SQL Compact 4.0.
So rather than design something that is already obsolete, what should I be looking at?
I'm considering developing an app for the upcoming Windows 8. The app requires low-latency audio recording and playback, and I'm trying find out whether the OS will support that (as opposed to other platforms).
So what I'd like to know is:
Is there a low-latency audio API in Windows 8?
Will it be supported on platforms other than PC (e.g. tablets)?
Thanks!
WASAPI was introduced with Windows Vista as the low-latency audio API. It is available both to desktop and to Metro style applications on Windows 8. Because it is a very low-level API, using it is not simple, but it gives you the most power. It will work on both Windows 8 and the newly-minted Windows RT (Arm).
Also available is XAudio2 which is a slightly higher-level API which will be easier to work with. It is the replacement for DirectSound and is designed for game developers, but may work for your purposes. This also is available to both Windows 8 and Windows RT.
There is a bit of comparison of the two APIs at the bottom of this article. I would start with XAudio2 and move to WASAPI only if you find XAudio2 doesn't meet your needs.
I would consider using XAudio2. Microsoft providers Basic audio playback sample for easy start
Yes, there is a low latency API you can access. It's called WASAPI
From my understanding, all tablets/Laptops/Desktops/anything running Windows 8, will have access to it. The only downside is that it's harder to work with (because it's lower level), but you get to directly interact with the byte arrays getting send to the speaker, and the latency is very low.