Giter Site home page Giter Site logo

android-nrf-connect's Introduction

nRF Connect

The nRF Connect for Mobile is an application designed for Bluetooth Low Energy developers. It allows for scanning for BLE devices and communicating with them.

The nRF Connect for Android application requires Android version 4.3 or later and is available on Google Play or releases, in case Google Play is not available. We recommend to install the application using Google Play as it will get automatic updates.

Get it on Google Play

Important

The source code of nRF Connect is not available. This repo provides only documentation and Issue tracker.

Features

  1. Scanning for Bluetooth LE devices in range
  2. Displaying the RSSI graph with an option to export to CSV or EXCEL
  3. Displaying detailed packet history with RSSI, packet changes and advertising intervals
  4. Displaying advertisements of mutliple devices on a timeline
  5. Connecting to multiple devices at the same time
  6. Showing device services and characteristics
  7. Reading and writing characteristics
  8. Configuring GATT Server
  9. Peripheral mode (BLE advertising) (newest Android 5+ devices only)
  10. Logging events and packets to nRF Logger app (available on Google Play)
  11. Device Firmware Update (DFU) (read below)
  12. Automated tests (read below)
  13. Recording and playing macros to automate operations
  14. Parsing most of Bluetooth SIG adopted characteristics + some proprietary ones
  15. Support for Eddystone (parsing, decrypting EID, Eddystone Config Service)

DFU - Device Firmware Update

nRF Connect supports the following DFU proptocols:

Name SDK Supported Devices Documentation
Legacy DFU nRF5 SDK nRF51, nRF52 Link
Secure DFU nRF5 SDK nRF52 Link
McuManager nRF Connect SDK, Zephyr, Mynewt nRF52, nRF53, nRF54, ... Link

Automated testing

The nRF Connect allows for executing XML scripts with test suites. Two sample XMLs for testing: the HRM-DFU sample and HRM-Scanning sample are available in documentation. They contains the full documentation of the currently available features. Copy those files and the test.bat script to your PC and run. Currently only Windows batch script is available, but adb commands can be called from Mac and Linux as well.

To start the test run the test.bat script:

test.bat [-d device_id] [-E KEY EXTRA] test.xml

or test.sh script:

./test.sh [-d device_id] [-E KEY EXTRA] test.xml 

You may specify key-value pairs in execution or inside the test using

<set name="KEY" value="VALUE" />

and then use them as ${KEY} (see the sample_test_hrm.xml).

Read mode about the test suites in the documentation.

Macros

Starting from version 4.4.0 it is now possible to automate operations using macros. Macros can be recorded, or imported from a XML file.

Read more about macros in the macros documentation.

android-nrf-connect's People

Contributors

gmacario avatar kamran-soomro avatar korish avatar philips77 avatar roshanrajaratnam avatar we-eff avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

android-nrf-connect's Issues

Timeout on android 7.1.1

It's able to connect BLE without any problem but gatt timeout error while discovering the services on Android 7.1.1

Write with response results in disconnection on Nexus 7 Android 5.1

Issue:
On Nexus 7 tablet running Android 5.1, if I send a "Write request" (write with response), I get GATT error (0x85) followed by GATT CONN TIMEOUT (error 8), resulting in disconnection of the device. The device to which this is being sent is using NRF52832 and SDK 13.
If I send a "Write without response", data does get sent, but I am left at the mercy of Android. It would send it at its leisure, and this is not good for my app.

It works fine on Samsung tablets with builds 4.4, 6.0.1, and 7.0.1.

Not sure if the issue is related to Nexus 7 or Android 5.1, but the problem is blocking usage of this platform for my app.

Thanks.

Ability to specify expected ATT error code

For read/write ops, in addition to expected="FAIL", it would be great to be able to specify the expected ATT result code, and pass the test only for that result (test should still fails on any other error):

<write ... expected="FAIL" expectedResult="145" />

Connect Often Falied

I wrote a new android application,when I'm going to connect some device, often get a error code such as 133 or 129(HUAWEI mobile phone is more obvious),but the nrf connect success probability is very large. So,I want to know what special treatment do you have? And can you give me some good advice? Thanks very much.

MCP should accept/display both ASCII and HEX input/output

It would be nice if MCP would e.g. for Nordic UART Service (or others) be able to send/display arbitrary bytes.

Currently non-printable chars are neither displayed nor can be sent (unless I'm missing something). The app shows "Value:". The log has them though ("value: (0x) 01").

Thanks,

nRF Connect intercepts connection from another app

Hello!

I've stumbled upon an interesting "issue". It occurs when working with (for example) Kontakt.io app and having nRF Connect app opened in the background. When I try to connect to a beacon with Kontakt.io app, I can't because somehow nRF initialises connection by itself.

I've recorded a short video with described behaviour:
https://drive.google.com/open?id=0B-sOINpYt_YMYUVTckl6aWpTUlk

Why would nRF app initialise a connection by itself when I'm explicitly doing it from another app.

Automated test parameterization of write value

Hi,
in an automated test xml file, I am unable to use a definition in the value field of a write request to write a byte array.
For instance, I define a VAR value as it follows:
<set name="VAR" value="00010203" />
Then in the test definition I write:
<write description="Write a value" type="WRITE_REQUEST" service-uuid="${MY_SERVICE_UUID}" characteristic-uuid="${MY_CHAR_UUID}" value="${VAR}" />
When running the test I get:

Parsing test suite failed:
'${VAR}' is not a valid byte array

What am I doing wrong?

Read MCP version number

Can you add a feature to be able to read the current MCP version number? Ideally, we'd like to be able to add a Version check along with an assertion at the top of our automated script to ensure either:
a) A specific MCP version is installed and being used on the phone. This allows for distribution of our automated test to reduce problems and conflicts from older or newer releases.
b) A version, or higher, is installed and being used on the phone. This allows for development as adding for great new features from you :)

If the assertion for version or higher isn't feasible, simply writing out the version to a log file would be a great start. This could be a standard line to write out at the top or initiated by a read command. I'd assume this would help you as well if user's submit log files of errors to know what version of MCP is installed.

Thanks!

Log Scan results

I know the docs mention "The device must be connected to read the RSSI as scanning is not yet supported in automated tests."

Can you give any clues on when scanning may be available?

As mentioned before, I'm working on a functional test suite that uses the automated tool. The idea is that we can automate the scanning of any local units and then test them. In the factory, we can control that only one (or only test) units are nearby. The scan will allow us to read the UUID and then initiate the test on that unit without user intervention.

For my purpose, simply listing the Device Name, UUID and (ideally) the last RSSI in the log is all that would be necessary. The rest I can automate.

The suite is PHP based and I plan to release the test suite on Github. With luck, I'll have a very early/crude stab up next week, if that helps :)

Location of cloned services

When I select "Clone device's services" menu option, the app informs me of the filename written.

WHERE can I find the file the services are written to? If it is not accessible by a file browser (I'm using Total Commander on Android), how is the stored service file accessed?

I'm assuming the format of this file is human readable...

Thanks.
R. Main.

How can we make the connection more stable?

Thank you for giving us the information. I am using your app to connect with my BLE device. It is a really stable connection. Currently, I am following the google sample Bluetooth Le Gatt (BluetoothLeService.java). It provided two option for connection

mBluetoothGatt = device.connectGatt(getApplicationContext(), autoConnect, mGattCallback);

with autoConnect=false for direct connection and true for background connection. I am not sure which autoConnect value do you use in your application to make a stable connection. I test both options but it looks same. I am using Galaxy S4, Android 5.1

Thank you

Save characteristic read value to log

I'm working on an automated test suite, but need to check sensor values that won't always have a fixed value (like a temperature sensor).

Assertions look to be for only fixed values, and not ranges (23-26 or 24 +/- 2), so I can't use those as they are currently.

To allow tests to proceed regardless of value, I'd like to simply save the read value from a characteristic and write the value to a log file so I can later parse that value out and verify it was within a proper range.

So, can a line like below:
<read description="Read TEMP Sensor" service-uuid="${TEMP_SERVICE_UUID}" service-instance-id="0" characteristic-uuid="${TEMP_CHAR_UUID}" characteristic-instance-id="0" />`
be used to add:
"Read TEMP Sensor ... 25"
Or something similar? Right now, the assertion will show the read value, but I don't see any way to show it otherwise.

Thanks!

Android O Support

There are some devices that are not picked up by the scan on both my Pixel and Nexus 6P with Android O. The same devices scan just fine with Android Nougat and other Android versions.

AutoReconnect no longer working

In v3.4.1, the "Connect with autoConnect" option works properly and successfully reconnects to the device if the connection is interrupted. In at least the last two versions, this functionality is broken and does not automatically reconnect to the current device. I noticed in logcat that gatt.close is being called, which would explain why it is not working. I do not see that message in v3.4.1 though.

Just a heads up :)

Non optimal display of the environmental sensing data with version v.4.12.0

nRF-Connect revision v.4.12.0 displays the the temperature and humidity data of the environmental sensing service as 2-byte hexadecimal values, which is not practical.
The previous revision, v.4.11.1, displays these 2 characteristics well as 2-byte signed value (with a resolution of 0.01 degrees Celsius). This way of displaying the temperature and humidity is much more convenient than a raw 2-byte hex value.

automated testing

I´ve tried to use the automated testing function.
I have edited the sample_test_hrm.xml script and followed the instruciton in the documentation to test the device information service.

the android debug bridge seems to work. I have testet some commonds before I started the script. In the script i first want to test the "connect" operation, but no result file is generated. it seems that the master control panel (Version 4.03) does not try to connect to my application that runs on a nRF52 DK. the master control panel runs on a sony xperia z android version 5.1.1

on the command prompt the script stops with "waiting for the results"

here is my script file
`






<!--

<!-- 
    Define devices to test. A Target MAY have a 'name' attribute with a user friendly name and MUST have the 'address' definition with the Bluetooth Smart device address.
    You MAY specify more than one target but at least one MUST be specified. 
-->
<target id="devkit_1" name="Dev Kit 1" address="${EXTRA_ADDRESS}" />

<!-- 
    Define tests. Test MUST contain at least one operation elements. Each operation will be performed in order from top to bottom and a result will be logged in the output file.
    Each test and operation MAY have a 'description' attribute and a target reference. Target may be specified for the test (as a default one for every included operation) and
    for each operation inside, so you may connect to more than one device in a single test.
    All operations in the test, except Assert-Services and "DFU" may have a timeout specified using 'timeout' attribute (in milliseconds). The default timeout is 5000 milliseconds.
-->
<test id="basics" description="Check basic connectivity of ${EXTRA_ADDRESS}" target="devkit_1">


    <!-- 
        First let's connect to the device. The 'description' attribute has been omitted. The tag name will be used as the description. 
        By setting the 'timeout' attribute to 4000 ms we ensure that the connection attempt will take no longer than that.
        The 'connect' operation is followed by 1 second break to give Android some time before the next operation.
    -->
    <connect timeout="4000" />

    <!-- 
        Before we discover services let's make sure that the cache is clear. The services might have changed on the device. The 'refresh' operation must be called after the 
        device has been connected at least once (a BluetoothGatt object has been created using connectGatt(...) method).
        Actually there is not need to refresh services in this sample as the 'dfu' operation in the DFU Test (check the next test definition), which is being run prior to this, 
        does it automatically when completed.
        The 'refresh' operation is followed by 1 second break to give Android some time before the next operation as it will cause the Android-internal service discovery.
    -->
    <refresh />

    <!-- 
        In order to read or write something we have to discover available services. 
        The 'target' is set, but as it is the same as for the test, it could have been omitted.
        The 'description' has not been specified and therefore it's set to a default value - "Discover-Services".
    -->
    <discover-services target="devkit_1" timeout="10000" />
</test>

<run-test ref="basics" description="Basic tests for DIS">

</run-test> 

`

do you have any idea why the script does not work?

WRITE_COMMAND doesn't work

Hello
We build a BLE-device and created our own porfile. The Master Control Panel provide a good way to run tests automatically.
I hava a problem with write on a character with the type WRITE_COMMAND. The same write command works with the type WRITE_REQUEST:

<write description="Write measure config step 1" type="WRITE_REQUEST" service-uuid="${CONFIGURESCBS_SERVICE_UUID}" characteristic-uuid="${MEASURE_CONFIG_CHARACTERISTICS_UUID}" value="E703E70308E70302000000" />
    <read description="Read the new measure config" service-uuid="${CONFIGURESCBS_SERVICE_UUID}" characteristic-uuid="${MEASURE_CONFIG_CHARACTERISTICS_UUID}">
    <assert-value description="Check the new value" value="E703E70308E70302000000" />
</read>

But i can write with WRITE_COMMAND and WRITE_REQUEST when I use the Master Control Panel and write manually (open the profile and write maually)
Are there any known issues?

Thanks and greetings
Peter

Disconnect immediately After the connection

  public void onConnectionStateChange(final BluetoothGatt gatt, int status, int newState) {}

sometimes ,Normal connection   onConnectionStateChange(final BluetoothGatt gatt, int status, int newState)    status = 0 newstate = 2

but immediately onConnectionStateChange callback status = 0 newstate = 0

Android BLE unstable

nrf-51822 bluetooth chipset used in our product. Some customers got bluetooth connection problem(not the distance or power problem). My bluetooth connecting steps are same as Master Control Panel(compare the log).
Is there any way make app bluetooth connection more stable ?
Any ideas would be appreciated.

Automated tests: Extra address variable not interpreted correctly

I get the following error when trying to run the sample test. I have tried with different addresses as well.
test -E EXTRA-ADDRESS 00:00:00:00:00:00 sample_test_hrm.xml Nordic Semiconductor Automated Tests batch script Removing old result file...OK Copying "sample_test_hrm.xml" to /sdcard/Nordic Semiconductor/Test...OK Starting test service...OK Test started...OK Waiting for the result...OK Result saved in "sample_test_hrm_result.txt".

type sample_test_hrm_result.txt 31-10-2016 08:33:52 Version: 4.7.0 Device: Sony E6653, Android version: 6.0.1 (32.2.A.0.305) Starting 'DFU Test' for 'Upload HRM onto the Dev Kit' DFU operation...FAIL: - ${EXTRA_ADDRESS} is not a valid Bluetooth low energy address Starting 'Check basic connectivity of ${EXTRA_ADDRESS}' for 'Basic tests for HRM' Connect...FAIL: - ${EXTRA_ADDRESS} is not a valid Bluetooth low energy address Starting 'Remove the bond information' for 'Clean up' Unbond...FAIL: - ${EXTRA_ADDRESS} is not a valid Bluetooth low energy address

adb version Android Debug Bridge version 1.0.32 Revision eac51f2bb6a8-android

Problem in reliability of receiving advertisements.

Hello,
I am in the process of designing an app which listens for any BLE advertisements, and filters them according to their contents. Currently, I am testing the reliability of the nordic BluetoothLeScannerCompat - that is, I am seeing if it will receive all advertisement data. I have a peripheral emitting an advertisement on channels 37-39, once every 40ms.

In nRF connect, all of these advertisements are received with great consistency, as shown in the "History" tab of any device. However, when I use the nordic (and Android Standard) Scanner, I am much less consistent in receiving these advertisements. In a 15 second timespan, my application received about 40 advertisements from the peripheral, whereas nRF Connect received about 150.

My code for the scanner:

String desiredMacAddress = the peripherals mac address.
BluetoothAdapter mBTAdapter;
BluetoothLeScannerCompat mBleScanner;
ScanCallback scanCallback  = new ScanCallback (){
                @Override
                public void onScanResult(int callbackType, ScanResult result){
                    if ( result.getDevice().getAddress().equals(desiredMacAddress )
                          appendMyTextView("\n You received me!");
                    });
                }
            };

public void init(){
        final BluetoothManager btManager = (BluetoothManager) 
        scanActivity.getSystemService(Context.BLUETOOTH_SERVICE);
        mBTAdapter = btManager.getAdapter();
        mBleScanner = BluetoothLeScannerCompat.getScanner();

        scanLeDevice(true)
}

private void scanLeDevice(final boolean enable){
        if(enable) {
            new Handler().postDelayed(new Runnable() {
                @Override
                public void run() {
                    //BLEDevice Scan has ended
                   stop()
                }
            }, 15000);
            mLeScanner.startScan(scanCallback);
        }
        else{
            mScanning = false;
            mLeScanner.stopScan(scanCallback);
        }
    }

private void stop(){
     scanLeDevice(false)
}

Any advice on how to improve scan reliability would be much appreciated!

P.S. I've also posted this to the BluetoothLeScannerCompat github, I

Can't connect to a non-Nordic device

Hy,
is this tool limited to connect to Nordic devices? I try to connect to a different BLE device.
I created a very simple test xml:
<test-suite description="Very important test">
<set name="EXTRA_ADDRESS" value="C4:BE:84:72:8F:86" />
<target id="myowndevice" address="${EXTRA_ADDRESS}" />
<test id="basics" description="Check basic connectivity of ${EXTRA_ADDRESS}" target="myowndevice">
<connect timeout="4000" />
<refresh />
<disconnect />
</test>
</test-suite>

After starting it it hangs after:
Removing old result file...OK
Copying "sample_test_hrm.xml" to /sdcard/Nordic Semiconductor/Test...OK
Starting test service...OK
Test started...OK
Waiting for the result...
and never returns.
I don't see any entries in nRFLogger. Using the nRFMasterControl GUI I can discover and connect to my device no problem.
mydevice
Thanks in advance
Harald
P.S. I guess, this is not the ideal place to aks these questions, is there a better place? A forum?

Make tests runnable from the app UI

The automated testing here looks really powerful and we'd love to use it for desk testing during development as well and end of production line testing. But we don't have a Windows machine in either situation and don't want to add one. It was disappointing to see that, to use this, the phone/tablet has to be connected to a host machine.

Can you not add some UI to the app that allows the user to select an XML file for the test from the filesystem, optionally specify device and extras, then run the test and see results in real time? I think that would make this much more useful.

At the very least, it would be nice to see a bash version of the test script that I can then call from make, or convert to a Makefile.

133 error while connecting BLE Devices

Hi ,

I am getting some issues with the latest Play Store Build on Samsung device. I am getting error when i am connecting to a BLE device "Puck JS". It gave me error 133 while connecting, After a long time i was able to connect but after few seconds it disconnected.
Log 2017-05-10 14_31_48.txt
screenshot_2017-05-10-14-23-57

I am using Samsung Galaxy Note Edge with 6.0.1

Automated tests: assert-value fails incorrectly

I have an <assert-value value="90330000"/> check inside an <assert-notification>. In the logs, I see the following:

Notification received from ..., value: (0x) 90-33-00-00
"(0x) 90-33-00-00" received
Notification received
Assert-Value...
Value of characteristic '90330000' is not equal to ''

Any idea why the assertion is failing even though it seems to receive the correct data?

Exception when reading HID Information Characteristic

I get an android exception when I try to read a HID characteristic. It looks like the application has insufficient rights:
gatt.readCharacteristic(00002a4a-0000-1000-8000-00805f9b34fb)

E 16:16:17.745 Exception occurred (Need BLUETOOTH_PRIVILEGED permission: Neither user 10095 nor current process has android.permission.BLUETOOTH_PRIVILEGED.)

V 16:16:17.759 Disconnecting...

DFU status when bluetooth disconnect

Hi,

Platform: nRF5_SDK_11.0.0_89a8197
Master Control Panel: V4.1.3

1.If dfu has started and transported some data, then disconnect bluetooth and kill app.
2.The second time to connect start dfu, will return DFU_STATUS_INVALID_STATE.
3.The third time to connect and start will success.

I check the firmware, the firmware has a variable m_dfu_state to mark the state of dfu.

typedef enum
{
DFU_STATE_INIT_ERROR, /< State for: dfu_init(...) error. */
DFU_STATE_IDLE, /
< State for: idle. /
DFU_STATE_PREPARING, /< State for: preparing, indicates that the flash is being erased and no data packets can be processed. */
DFU_STATE_RDY, /
< State for: ready. */
DFU_STATE_RX_INIT_PKT, /< State for: receiving initialization packet. */
DFU_STATE_RX_DATA_PKT, /
< State for: receiving data packet. */
DFU_STATE_VALIDATE, /__< State for: validate. */
DFU_STATE_WAIT_4_ACTIVATE /
*< State for: waiting for dfu_image_activate(). */
} dfu_state_t;

I

How to handle this situation?I meet this on our real production with your Android-DFU-Library.
Thanks.

Fails to connect to some dual mode devices

When a device advertises as supporting both BR/EDR and BLE, Android will by default prefer to connect over BR/EDR. Some devices don't support GATT in this mode, and the connection will fail. In particular, devices that use the Microchip RN4677 have this problem - nRF Connect always fails to connect to these devices. Also, connections to iOS devices seem more likely to fail when connecting in this mode.

On Android 6.0 and later, the connectGatt method of BluetoothDevice supports a 'transport' parameter which allows forcing a BLE connection. On older versions of Android, this version of the method is accessible via reflection. Using the TRANSPORT_LE option solves connection problems for many dual-mode devices (for me at least - it's not documented what the default TRANSPORT_AUTO option actually does - some Bluetooth stacks may prefer BLE when both modes are available)

nRF Connect should have an option to prefer BLE connections over BR/EDR (or even default to it).

How to implement autoconnect in my app

Hi,

We are using nrf51822 for our product. Can I get some documentation of the nRF-Connect app so that we can implement the autoconnect feature in our app?

Is it possible to get a copy of the Android-nRF-Connect app?

Thanks

How to read request response?

I am trying develop a custom application for a fitness band which uses Nordic's chip. I can successfully send notification commands but there are some commands which expect a response back from the band, how can I receive these responses?

For example: an AT+BATT (41:54:2b:42:41:54:54:0d:0a) request makes the band send a battery percentage integer to the official app( Which I found using the hci_logs) How can I read this data in the nRF Connect app?

Taking over connection of other app

When the nRF-Connect app is opened, and I connect to a ble device in my own app, the nRF-Connect takes over the connection: you see it being connected in the nRF-Connect app. Is this intended behaviour?

Make selection of write value type sticky

I am using this fantastic app and I have a suggestion for the workflow. When I am connected as a client to a BLE Server and wish to write a new characteristic value, when the dialog in which I can enter the new value appears, the type is always set to "BYTE". In my tests, I then set this to "TEXT" and enter a string and click SEND. Now, when I want to send a new value and open the dialog again, once more the value type is back at "BYTE" and once more I have to change the value type to "TEXT".

My suggestion is that if a user (me) changes the value type for a characteristic, the tool remember the last value type I used and makes that the current setting the next time I open the dialog in the same run of the tool. This will save me a few steps in my workflow.

Wish list: Ability to provide descriptions for custom UUIDs

When I work with devices that have custom services and characteristics, these have generated UUIDs. I would love to be able to "describe" these to nRF Connect such that when I view them in the tool, they have more descriptive names. For example, if we look in the following screen shot, we see "Unknown Service". I would like to able to provide my own descriptions. In an ideal world, we would have a database hosted on the Internet that contains a list of services that could be consulted with the ability for users to add/update their own.

image

Send FLOAT value

Hi,
I would like to send a float to a BLE device (RedBear). I declared a characteristic of Double type.

BLEDoubleCharacteristic tempCharacteristicCalOrigin = BLEDoubleCharacteristic("CCC2", BLERead | BLEWrite);

On the Android nRF app, I change the value type to FLOAT 32.
When I try to write the exponent and the mantissa, the app complains with This value does not match its type.

s70308-124651

I'm calculating the mantissa and exponent using the online converter FloatConverter/IEEE754.

Using that calculator, the values for the exponent and mantissa would be 131 and 3866624 for the double number 23.375. But it does not work.

Which are the values for the Exp. and Frac. fields? How do I compute them from a double value?

Thanks!

Some question about scan remote devices

Dear friend:
i have a question to ask you.
i was developer an android application to scanning the bluetooth device.And i use android API mBluetoothAdapter.stopLeScan(mLeScanCallback and mBluetoothAdapter.startDiscovery(),but i cannot get the bluetooth devices!!!! then i use you nRF-Master-Control-Panel app can found the devices. can you tell how can i get the bluetooth devices!??Doesn't you not use the Google API to develop?? thanks!

Change complete local name of an advertiser

I'm wondering how to change the complete local name of an advertiser. In my Huawei P10 plus the name is "Server 7 places available VKY-AL00", which just leads to "Error1: Advertisement Data too large"

all mails to you are blocked

I'm not allowed to send an issue to your mail accounts from Google Mail, because everytime I got a "auth required" error - this also happens to android-devs.

auth required response

Auto testing -- Not triggering

Hi, I wrote the following: "test.bat -E EXTRA_ADDRESS "D2:36:31:12:33:BA sample_test_hrm.xml" in command line, and it appears the default auto testing is not being triggered on my Android. It is constantly looping "wait 10sec, this ip is reserved and does not exist".

The only thing i change was turning echo on in the test.bat
Am I suppose to change anything else to make it work?

error-nrf-autotesting

App fails to ask for local storage permission

I'm using the app for the test script functionality. When I run a test script over adb, the nRF Logger app shows the following error in the logs on the Android device:

Parsing test suite failed:
/sdcard/Nordic Semiconductor/Test/ble_out_of_box.xml: open failed: EACCES (Permission denied)
...

If I go to Android's Settings, Apps, nRF Connect, Permissions, then sure enough, "Storage" is unchecked. But the app never asked! On Android 6.0 and up, you need to ask at runtime, I think. I'm on Android 6.0.1 on this device.

Automated Testing - Eddystone

Hi,

  1. How can I check that Eddystone is advertising using the automated testing? I did the following but it doesn't seem to detect:

set name="EDDYSTONE_SERVICE_UUID" value="0000FEAA-0000-1000-8000-00805F9B34FB"
assert-service description="Check if Eddystone Services exist" uuid="${EDDYSTONE_SERVICE_UUID}" instance-id="0"
assert-service

Also tried the long 128-bit uuid "93FB4E84-CCF1-4ED9-BD24-053267701B25" but doesn't detect as well. I know it is probably the way the nRF Master Control Panel detects Eddystone. Any idea?

Disconnect fails if app is open

Whenever a test ends, a disconnect should automatically happen. If I have the app open on my phone, then the disconnect does not occur.

If I open the Task Manager on the phone and close the app, and then try the same test, a disconnect does occur as expected.

The same behavior happens if I use the tag.

Tested on 4.2 and 4.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.