<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://devzone.nordicsemi.com/cfs-file/__key/system/syndication/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/f/nordic-q-a/21657/nordik-uart-app-with-multiple-service-reception</link><description>I need to receive both UART Service data and HRS service data on the app. 
 Currently I have seen on Nordik Connect app , both the services can be found and can connect and receive data. 
 I need to do same with my app using nordik UART App code. </description><dc:language>en-US</dc:language><generator>Telligent Community 13</generator><lastBuildDate>Tue, 01 Aug 2017 12:55:51 GMT</lastBuildDate><atom:link rel="self" type="application/rss+xml" href="https://devzone.nordicsemi.com/f/nordic-q-a/21657/nordik-uart-app-with-multiple-service-reception" /><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85019?ContentTypeID=1</link><pubDate>Tue, 01 Aug 2017 12:55:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7f626255-549b-475a-a5b6-f8d1e0e7d527</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;If you don&amp;#39;t have  a sniffer trace, I can&amp;#39;t help you on this case.
You should also print a log in your peripheral. The log should print out when it receive the notification enabling (CCCD writing) and when it start sending each notification.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85013?ContentTypeID=1</link><pubDate>Tue, 01 Aug 2017 05:48:37 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:3021e723-a66c-4adf-bcb3-ef2f84b20ada</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;but my current problem is when 2 characteristics from different services i have started notification on, my transmission on transmission characteristics goes on toss.
can you help me understand how to get over it.&lt;/p&gt;
&lt;p&gt;I am developing App for iPhone UART service App.&lt;/p&gt;
&lt;p&gt;I have two services. Nordik UART Service and HRM service&lt;/p&gt;
&lt;p&gt;When I notify receiver characteristics of both services,my transmission characteristics taking delay of 2 to 10 seconds to transmit data.&lt;/p&gt;
&lt;p&gt;when i notify only single receiver characteristics, transmission works fine.but i start notify second receiver characteristics, transmission delayed.&lt;/p&gt;
&lt;p&gt;Please go through my below  code  for reception and transmission. How do i manage multiple services with multiple  characteristics, i could not allow to have transmission delay.&lt;/p&gt;
&lt;p&gt;//&lt;strong&gt;Service Discovery Code:&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;+ (CBUUID *) uartServiceUUID
{
    return [CBUUID UUIDWithString:@&amp;quot;6e400001-b5a3-f393-e0a9-e50e24dcca9e&amp;quot;];
}
+ (CBUUID *) txCharacteristicUUID
{
    return [CBUUID UUIDWithString:@&amp;quot;6e400002-b5a3-f393-e0a9-e50e24dcca9e&amp;quot;];
}
+ (CBUUID *) rxCharacteristicUUID
{
    return [CBUUID UUIDWithString:@&amp;quot;6e400003-b5a3-f393-e0a9-e50e24dcca9e&amp;quot;];
}
+ (CBUUID *) torqueInformationServiceUUID
{
    return [CBUUID UUIDWithString:@&amp;quot;0000180D-0000-1000-8000-00805f9b34fb&amp;quot;];
}
+ (CBUUID *) torquerxCharacteristicUUID
{
    return [CBUUID UUIDWithString:@&amp;quot;00002A37-0000-1000-8000-00805f9b34fb&amp;quot;];
}
- (UARTPeripheral *) initWithPeripheral:(CBPeripheral*)peripheral delegate:(id&amp;lt;UARTPeripheralDelegate&amp;gt;) delegate
{
    if (self = [super init])
    {
        _peripheral = peripheral;
        _peripheral.delegate = self;
        _delegate = delegate;
//        myperipheral=peripheral;
    }
    return self;
}
- (void) didConnect
{
[_peripheral discoverServices:@[self.class.uartServiceUUID,self.class.torqueInformationServiceUUID]];
    NSLog(@&amp;quot;Did start service discovery.&amp;quot;);    
}

- (void) didTSConnect
{
      NSLog(@&amp;quot; discovery start ,,,.........&amp;quot;);  
}
- (void) peripheral:(CBPeripheral )peripheral didDiscoverServices:(NSError)error
{
    if (error)
    {
        NSLog(@&amp;quot;Error discovering services: %@&amp;quot;, error)        
        return;
    }
    for (CBService *service in peripheral.services)
    {
        NSLog(@&amp;quot;Discovered service: %@&amp;quot;, service.UUID);
        [peripheral discoverCharacteristics:nil forService:service];
    } 
     NSLog(@&amp;quot;Discovered service: %@&amp;quot;, tsservice.UUID);
  }
- (void) peripheral:(CBPeripheral )peripheral didDiscoverCharacteristicsForService:(CBService )service error:(NSError *)error
{
   if (error)
    {
        NSLog(@&amp;quot;Error discovering characteristics: %@&amp;quot;, error);
        receptionStartFlag=false;
        return;  
    }
    for (CBCharacteristic *d in service.characteristics)
        {   
          if ([service.UUID isEqual:self.class.uartServiceUUID])
            {
                if ([d.UUID isEqual:self.class.rxCharacteristicUUID])
                {
                    NSLog(@&amp;quot;Found RX characteristic&amp;quot;);
                    self.rxCharacteristic = d;                
                    rxChar=_rxCharacteristic;                
                    [self.peripheral setNotifyValue:YES forCharacteristic:d];
                    [self.peripheral readValueForCharacteristic:d];                
                }
                else   if ([d.UUID isEqual:self.class.txCharacteristicUUID])
                {
                    NSLog(@&amp;quot;Found TX characteristic&amp;quot;);
                    self.txCharacteristic = d;
                    txChar=_txCharacteristic;
                    [self.peripheral setNotifyValue:YES forCharacteristic:d];
                }
            }   
        }
        dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_HIGH,0),                     ^{
    for (CBCharacteristic *d in service.characteristics)
      {
       if ([service.UUID isEqual:self.class.torqueInformationServiceUUID])
         {
            if ([d.UUID isEqual:self.class.torquerxCharacteristicUUID])
               {
                   NSLog(@&amp;quot;Found  TSRX characteristic&amp;quot;);
                   self.rxCharacteristic = d;
                   rxChar=rxCharacteristic;
                  [self.peripheral setNotifyValue:YES forCharacteristic:d];
                  [self.peripheral readValueForCharacteristic:d];
               }
                                          
           }
         }
        });
    
}

- (void) peripheral:(CBPeripheral )peripheral didUpdateValueForCharacteristic:
(CBCharacteristic )characteristic error:(NSError *)error
   {
    if (error)
      {
        NSLog(@&amp;quot;Error receiving notification for characteristic %@: %@&amp;quot;, 
        characteristic, error);
        return;
      }
    
    //actual reception 
    NSData *dataRec=self.rxCharacteristic.value;
    
    Byte byteData[[dataRec length]];//(Byte*)malloc(len);
    
    [dataRec getBytes:&amp;amp;byteData];
}

//**Transmission Code**

int8_t bytes2[] ={128,00,00,00,00,00,00,00,00,00,00,00,00};
            NSData *data2 = [NSData dataWithBytes:bytes2 length:sizeof(bytes2)];
            
            if ((txChar.properties &amp;amp; CBCharacteristicPropertyWrite) != 0)
            {
                [myperipheral writeValue:data2 forCharacteristic:txChar
                                    type:CBCharacteristicWriteWithResponse];
            }
            else if ((txChar.properties &amp;amp; CBCharacteristicPropertyWrite) != 0)
            {
                [myperipheral writeValue:data2 forCharacteristic:txChar 
                 type:CBCharacteristicWriteWithResponse];
            }
            else
            {
                NSLog(@&amp;quot;No write property on TX characteristic, %lu.&amp;quot;, (unsigned 
                long)txChar.properties);
            }
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85020?ContentTypeID=1</link><pubDate>Fri, 28 Jul 2017 07:50:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:434adfbd-a323-4e21-a3a6-8dee329c5b88</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Adding delay isn&amp;#39;t a very good solution. You can try: after you write to one service, you wait for the call back before you write to the second one.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85011?ContentTypeID=1</link><pubDate>Wed, 26 Jul 2017 12:24:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f9a71402-ce29-45ad-b236-2d7b0c9341c6</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;but with same features it giving problem to iOS UART App.
when both receiver characteristics notification is on, then transmission is very slow sometimes takes 2 seconds sometimes 10 seconds. doesn&amp;#39;t understand how to handle this with ios&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85012?ContentTypeID=1</link><pubDate>Wed, 26 Jul 2017 12:22:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7c7f8eb2-f2e1-4376-b29d-bdc93a511d05</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;For Android ,&lt;/p&gt;
&lt;p&gt;I have resolve this issue with the following code.&lt;/p&gt;
&lt;p&gt;BluetoothGattCharacteristic TxCharHRS = RxServiceHRS.getCharacteristic(TX_TSCHAR_UUID);
Log.d(&amp;quot;CHAR&amp;quot;,&amp;quot; &amp;quot;+RxServiceHRS.getCharacteristics());
if (TxCharHRS == null) {
showMessage(&amp;quot;Tx charateristic not found!&amp;quot;);
Log.d(&amp;quot;no tx char &amp;quot;,&amp;quot;Tx charateristic not found!&amp;quot;);
broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
return;
}&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;            mBluetoothGatt.setCharacteristicNotification(TxCharHRS,true);
            BluetoothGattDescriptor descriptor1 = TxCharHRS.getDescriptor(CCCD);
            descriptor1.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
            mBluetoothGatt.writeDescriptor(descriptor1);

            Thread.sleep(500);


            BluetoothGattService RxService = mBluetoothGatt.getService(RX_SERVICE_UUID);
            if (RxService == null) {
                showMessage(&amp;quot;Rx service not found!&amp;quot;);
                broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                return;
            }
            BluetoothGattCharacteristic TxChar = RxService.getCharacteristic(TX_CHAR_UUID);

            if (TxChar == null) {
                showMessage(&amp;quot;Tx charateristic not found!&amp;quot;);
                Log.d(&amp;quot;no tx char &amp;quot;,&amp;quot;Tx charateristic not found!&amp;quot;);
                broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                return;
            }

            mBluetoothGatt.setCharacteristicNotification(TxChar,true);
            BluetoothGattDescriptor descriptor = TxChar.getDescriptor(CCCD);
            descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
            mBluetoothGatt.writeDescriptor(descriptor);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;only the 500ms delay got resolved my issue.
but same implementation problem in iOS not working.when first service transmission and reception characteristics is ON everything (transmission and reception) is working fine,after second HRS RX characteristics ON,my first service transmission characteristics execution goes on toss. it takes delay of 2 seconds to 10 seconds for transmission happens.How to have both services and there characteristics work without delay.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85027?ContentTypeID=1</link><pubDate>Mon, 22 May 2017 12:50:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c6f30fe1-578e-4f16-9d57-3b6b74014971</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I mean in the nRF5 application , please check if the sd_ble_gatts_hvx() for both services are called and returned NRF_SUCCESS. Yes you can send the .java , but it would take some time to dig into your code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85026?ContentTypeID=1</link><pubDate>Mon, 22 May 2017 09:02:51 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36a0f3cf-7eff-404c-bb19-c37da85eb200</guid><dc:creator>PriyankaB</dc:creator><description>&lt;p&gt;Yes,I will capture a sniffer trace once all necessary things are available to me.&lt;/p&gt;
&lt;p&gt;As I debug the code,I found below function status as true:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;D/BluetoothGatt: setCharacteristicNotification() - uuid: 6e400003-b5a3-f393-e0a9-e50e24dcca9e enable: true
D/BluetoothGatt: setCharacteristicNotification() - uuid: 00002a37-0000-1000-8000-00805f9b34fb enable: true&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Is this function you are asking about?&lt;/p&gt;
&lt;p&gt;Or should I send you the .java file for the same through PM?&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85025?ContentTypeID=1</link><pubDate>Mon, 22 May 2017 07:37:59 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:44030231-07a1-4d15-bacd-7af0c175aeae</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;@PriyankaB: Please capture a sniffer trace. And please check in your application if  .._hvx() function (send notification) for both services are called.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85024?ContentTypeID=1</link><pubDate>Sat, 20 May 2017 11:12:38 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:ede261e3-921d-4fcd-a548-10306fd24a2d</guid><dc:creator>PriyankaB</dc:creator><description>&lt;p&gt;Hello,&lt;/p&gt;
&lt;p&gt;I faced the same problem. I am unable to get both services at a time. I have tried to get first only HRS data and it is working. Then I also tried to get UART data individually ,it is also working. But when I use both services at a time,only UART data is received.
When I debug the app both services are found. But when I debug the  broadcastUpdate function only one if condition get executed either UART or HRS.
So, please let me know how to solve this?
Thanks in advance.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85014?ContentTypeID=1</link><pubDate>Thu, 11 May 2017 07:32:49 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:0d4189ab-b6b8-461b-81eb-b591d7683681</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Hi Shrikant,&lt;/p&gt;
&lt;p&gt;Please post your full code, whole project. If you don&amp;#39;t want the code be confidential please send it via PM or open a support case in &amp;quot;My Page&amp;quot; on our website.&lt;/p&gt;
&lt;p&gt;You need to enable CCCD before you can receive any notification. This could be the reason why you don&amp;#39;t receive any HRS characteristic in broadcastUpdate. BroadcastUpdate is called when there is a change in characteristic, and if you don&amp;#39;t enable CCCD (the code I posted above) , there will be no change can be notify.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85041?ContentTypeID=1</link><pubDate>Thu, 11 May 2017 03:16:07 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:47564e4a-39ab-4798-8d3e-6f07750750f7</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;Yes sir, I have given you details of enableTXNotification function. there i have updated above CCCD code for HRS profile, i will rewrite here,&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;public static final UUID CCCDTS = UUID.fromString(&amp;quot;00002902-0000-1000-8000-00805f9b34fb&amp;quot;);

BluetoothGattService RxServiceHRS = mBluetoothGatt.getService(RX_TSSERVICE_UUID);
        if (RxServiceHRS == null) {
            showMessage(&amp;quot;Rx service not found!&amp;quot;);
            broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
            return;
        }
        BluetoothGattCharacteristic TxCharHRS = RxServiceHRS.getCharacteristic(TX_TSCHAR_UUID);
            Log.d(&amp;quot;CHAR&amp;quot;,&amp;quot; &amp;quot;+RxServiceHRS.getCharacteristics());
        if (TxCharHRS == null) {
            showMessage(&amp;quot;Tx charateristic not found!&amp;quot;);
            Log.d(&amp;quot;no tx char &amp;quot;,&amp;quot;Tx charateristic not found!&amp;quot;);
            broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
            return;
        }

            mBluetoothGatt.setCharacteristicNotification(TxCharHRS,true);
            BluetoothGattDescriptor descriptor1 = TxCharHRS.getDescriptor(CCCDTS);
            descriptor1.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
            mBluetoothGatt.writeDescriptor(descriptor1);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I am working on sniffer , to get some details to post.
but when i debug above code, all variable RxserviceHRS, TxcharTS initialises. notification will be enabled. but still in broadcastUpdate function characteristics UUID do not match with TxcharHRS UUID. because all time UART Txchar UUID data is available.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85010?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 11:39:56 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:74504656-d64d-40fa-b3a0-2dd785c110fb</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;To really solve the problem you need to understand how the code works. And it should be noted that, we, Nordic, don&amp;#39;t make Bluetooth API on Android, we only make the chip and the Bluetooth stack on it, not on Android.&lt;/p&gt;
&lt;p&gt;The Android apps we provide is just a reference to help you. You still need to dig in, study and understand how Android Bluetooth api works.&lt;/p&gt;
&lt;p&gt;For sure it&amp;#39;s the issue with the coding not the hardware /stack issue, I requested the sniffer to understand what could be wrong with your code.&lt;/p&gt;
&lt;p&gt;I kept asked you if you write to CCCD for HRM characterstic or not , but you never answered. This part should be called for your HRS characteristic:&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;        mBluetoothGatt.setCharacteristicNotification(TxChar,true);
        BluetoothGattDescriptor descriptor = TxChar.getDescriptor(CCCD);
        descriptor.setValue(BluetoothGattDescriptor.ENABLE_NOTIFICATION_VALUE);
        mBluetoothGatt.writeDescriptor(descriptor);
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;Please post your code, full code.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85015?ContentTypeID=1</link><pubDate>Wed, 10 May 2017 02:39:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:e23fac93-99d3-4a9f-b66f-9770b67874e8</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;You are not understanding our problem. We are facing problem at multiple reception. while receiving HRS data , no characteristics found on broadcast Update to read value. only UART Service characteristics are identified and can read value. is that ok with broadcastUpdate funtion we have written? is there is missing in onCharacteristicsRead function? is there is another mService object require to read other service?  i will see sniffer details and try to test and give details. but i think the problem must be in coding.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85009?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 14:05:00 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:be3d0825-9929-491c-b425-85789b37a494</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;No we don&amp;#39;t have code with UART and other service at the same time.
Please follow the steps I stated above and let me know at which step you have an issue ? I assume at step 3 ?  Please try to capture the sniffer trace.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85028?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 11:59:14 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:30e848f5-9003-4b5d-b325-1b395fc7450f</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;I have tested same with Nordik Connect App , there it works for both services , it read both services but i cannot test there transmission for UART because my data is different than what you can transmit.so, i cant check response. i need to transmit byte array for request.&lt;/p&gt;
&lt;p&gt;please go through below link for nrf connect response details&lt;/p&gt;
&lt;p&gt;&lt;a href="https://drive.google.com/drive/folders/0Bx0kGChmcM8BZllqcTVUTlJGQ00?usp=sharing"&gt;drive.google.com/.../0Bx0kGChmcM8BZllqcTVUTlJGQ00&lt;/a&gt;&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85029?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 11:37:36 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:236eee1a-7279-4bd4-8c5a-317cdddc29da</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;first , we have tested with only hrs. it works. but when i tried to use both services it gives problem. i had also rechecked for both services having CCID enabled and it returns true. I am repeating the same, can you provide sample of UART code where multiple services works parallelly. because i am face this problem in both Android and iPhone App development.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85042?ContentTypeID=1</link><pubDate>Mon, 08 May 2017 11:08:25 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:7a0e6096-98ff-4abb-a028-1c51da51f469</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;Please let me know if you can make it work with just the HRS profile, no UART ?
I suggest you to test as follow:&lt;/p&gt;
&lt;p&gt;1 - Make a firmware with just HRS (you can use our hrs example) then make an app with just HRS and make sure it works.&lt;/p&gt;
&lt;p&gt;2 - Make a firmware with HRS and UART then make an app with just HRS and test&lt;/p&gt;
&lt;p&gt;3 - Try to add UART in to the HRS app and test again&lt;/p&gt;
&lt;p&gt;I don&amp;#39;t see any reason why only UART work but not HRS.&lt;/p&gt;
&lt;p&gt;You may want to capture &lt;a href="https://www.nordicsemi.com/eng/Products/Bluetooth-Smart-Bluetooth-low-energy/nRF-Sniffer/"&gt;a sniffer trace&lt;/a&gt; so I can see what happens over the air. Make sure CCCD is enabled for both services.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85040?ContentTypeID=1</link><pubDate>Fri, 05 May 2017 12:08:43 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:6ce8b603-b9ad-443c-9065-9451fa081f49</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;I am facing same like problem in iPhone App, when we try to read both service characteristics value, we can receive data but cannot write tx characteristics at that time. in UART we have 2 charcterictics tx and rx . single service with its 2 characteristis works fine. when we had added second service (hrs), tx characteristics in uart profile stop working. can we have single reference code for both platforms to work on two service profiles at a time?(we are using UART and HRS profile).  when i replace single service on another, only single replaced service will be there it works . only UART or HRS. but i need both services, UART services to read and write characteristics and hrs service with read characteristics.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85039?ContentTypeID=1</link><pubDate>Fri, 05 May 2017 11:54:50 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:36c974fa-907c-4a01-96d3-964e479c3420</guid><dc:creator>Shrikant</dc:creator><description>&lt;ol&gt;
&lt;li&gt;Thanks for explanation regarding characteristics unknown value. but as you recommended i have all the statements to read characterestics (getValue) also some code in readCharacteristics function. I have enableTXNotification function which will enable both service notification. i have seen log for notification enable returning true. but at the end, i am getting only UART chracteristics data in brodcastUpdate. what i am missing to read both services tx chracteristics in an single run.&lt;/li&gt;
&lt;/ol&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85038?ContentTypeID=1</link><pubDate>Fri, 05 May 2017 11:23:55 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:bafd56c8-2989-4ae0-939e-d55c4d52f80e</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I would suggest you to try to read and write to the characteristic first. 609367b is not garbage data, it&amp;#39;s an address in the memory, what do you expect to see? You won&amp;#39;t see the UUID because to get the UUID you should call characteristic.getUuid() you should try to print that in the log.&lt;/p&gt;
&lt;p&gt;broadcastUpdate() is called when you get a notification, if you don&amp;#39;t send a notification on HRS side (or if you don&amp;#39;t enable notification for HRS) there will be no notification for the HRS characteristic.&lt;/p&gt;
&lt;p&gt;I suggest you to get familiar with HRS profile, know how to get characteristic, enable notification (write to CCCD), receive notification before you try to combine it with UART.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85037?ContentTypeID=1</link><pubDate>Fri, 05 May 2017 06:28:09 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:c197ae9e-eeb3-425d-b574-9dfa90ff2572</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;the meaning of my statement is, i have tried to read characteristics in broadcast update function .but, TX_TS CHAR_UUID doesn&amp;#39;t match with received characteristics. so, no getValue function is called in that block.it only match with TX_CHAR_UUID
which mean it only read UART characteristics value in broadcast update function.  i try to log value in enableTXnotification function,which is giving me  below in log result&lt;/p&gt;
&lt;p&gt;BluetoothGattCharacteristic TxCharHRS = RxServiceHRS.getCharacteristic(TX_TSCHAR_UUID);
Log.d(&amp;quot;CHAR&amp;quot;,&amp;quot; &amp;quot;+TxCharHRS);&lt;/p&gt;
&lt;p&gt;Log Result-&amp;gt;android.bluetooth.BluetoothGattCharacteristic@609367b&lt;/p&gt;
&lt;p&gt;BluetoothGattCharacteristic TxChar = RxService.getCharacteristic(TX_CHAR_UUID);
Log.d(&amp;quot;CHAR&amp;quot;,&amp;quot; &amp;quot;+TxChar);&lt;/p&gt;
&lt;p&gt;log result: android.bluetooth.BluetoothGattCharacteristic@ea7dc98]&lt;/p&gt;
&lt;p&gt;UUID i have used&lt;/p&gt;
&lt;p&gt;public static final UUID TX_TSCHAR_UUID = UUID.fromString(&amp;quot;00002a37-0000-1000-8000-00805f9b34fb&amp;quot;);
public static final UUID RX_TSSERVICE_UUID = UUID.fromString(&amp;quot;0000180D-0000-1000-8000-00805f9b34fb&amp;quot;);
public static final UUID TX_CHAR_UUID = UUID.fromString(&amp;quot;6e400003-b5a3-f393-e0a9-e50e24dcca9e&amp;quot;);&lt;/p&gt;
&lt;p&gt;i think garbage means: this value @609367b at characteristics log.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85036?ContentTypeID=1</link><pubDate>Wed, 03 May 2017 14:24:19 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:f459b94b-b5ce-4f38-aef9-674cdeec51c9</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I don&amp;#39;t understand what you say here:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;in above code i tried to read characteristics from both services . also tried to read characteristics in list fashion(code is commented for the same). we have broadcast update function.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;You tried but it&amp;#39;s successful or not  ?? You have broadcast update function, what does that mean ?&lt;/p&gt;
&lt;p&gt;Please answer my question , what you do have when you call  RxServiceHRS.getCharacteristics() to get the list ?
And what was the UUID when you call &amp;quot;characteristic.getUuid()&amp;quot; ? Tell me what was exactly the &amp;quot; something garbage data &amp;quot; you saw.&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85035?ContentTypeID=1</link><pubDate>Wed, 03 May 2017 05:05:40 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:d9e5d5a8-dc80-4518-b1f8-05ed47e751ed</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;in above code i tried to read characteristics from both services . also tried to read characteristics in list fashion(code is commented for the same). we have broadcast update function. but when i debug the code HRS characteristics never executed. this below line return always false ,so i am unable to read.
if (RX_TSCHAR_UUID.equals(characteristic.getUuid()))
so i got something garbage data on this characteristics read not byte array.in represent my TS keyword for hrs profile in my code.&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;private void broadcastUpdate(final String action,
                                 final BluetoothGattCharacteristic characteristic) {
        final Intent intent = new Intent(action);
        //final Intent intent1 = new Intent(action);

        // This is special handling for the Heart Rate Measurement profile.  Data parsing is
        // carried out as per profile specifications:
        // &lt;a href="http://developer.bluetooth.org/gatt/characteristics/Pages/CharacteristicViewer.aspx?u=org.bluetooth.characteristic.heart_rate_measurement.xml"&gt;developer.bluetooth.org/.../CharacteristicViewer.aspx&lt;/a&gt;
        if (TX_CHAR_UUID.equals(characteristic.getUuid())) {

            // Log.d(TAG, String.format(&amp;quot;Received TX: %d&amp;quot;,characteristic.getValue() ));
            intent.putExtra(EXTRA_DATA, characteristic.getValue());
            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(CCCD);

            byte[] received= characteristic.getValue();
            String data = (characteristic.getValue() == null || characteristic.getValue().length &amp;lt;= 0) ? &amp;quot;0 bytes&amp;quot; : GeneralCharacteristicParser.parse(characteristic);

            intent.putExtra(SOME_MORE,data);

        }

        if (RX_TSCHAR_UUID.equals(characteristic.getUuid())) {

            // Log.d(TAG, String.format(&amp;quot;Received TX: %d&amp;quot;,characteristic.getValue() ));
            intent.putExtra(EXTRA_DATA, characteristic.getValue());
            BluetoothGattDescriptor descriptor = characteristic.getDescriptor(CCCDTS);

            byte[] received= characteristic.getValue();
            String data = (characteristic.getValue() == null || characteristic.getValue().length &amp;lt;= 0) ? &amp;quot;0 bytes&amp;quot; : GeneralCharacteristicParser.parse(characteristic);

            intent.putExtra(SOME_MORE,data);


        }
        else
        {

        }
        LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
        //LocalBroadcastManager.getInstance(this).sendBroadcast(intent1);
    }
&lt;/code&gt;&lt;/pre&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85034?ContentTypeID=1</link><pubDate>Tue, 02 May 2017 13:58:29 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:fb79f4ab-a8c8-4166-ad38-644f6d323bce</guid><dc:creator>Hung Bui</dc:creator><description>&lt;p&gt;I don&amp;#39;t get what you write here. onCharacteristicRead() is when you read the characteristic.&lt;/p&gt;
&lt;p&gt;You mean you can get the characteristic correctly and now doing a characteristic read ?&lt;/p&gt;
&lt;p&gt;Why don&amp;#39;t you call characteristic.getValue() to get the value ?? This is what I did in the UART app code, check function broadcastUpdate() in UartService.java&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: Nordik UART app with Multiple service reception</title><link>https://devzone.nordicsemi.com/thread/85033?ContentTypeID=1</link><pubDate>Tue, 02 May 2017 12:16:58 GMT</pubDate><guid isPermaLink="false">137ad170-7792-4731-bb38-c0d22fbe4515:9693d304-cf3d-4cda-80d2-abdb0aee1cab</guid><dc:creator>Shrikant</dc:creator><description>&lt;p&gt;public void onCharacteristicRead(BluetoothGatt gatt,
BluetoothGattCharacteristic characteristic,
int status) {
if (status == BluetoothGatt.GATT_SUCCESS) {
broadcastUpdate(ACTION_DATA_AVAILABLE, characteristic);
ListServices = gatt.getServices();
// gatt.readCharacteristic(chars.get(chars.size()-1));
gatt.readCharacteristic(Services.get(2).getCharacteristics().get(0));
gatt.readCharacteristic(Services.get(3).getCharacteristics().get(0));
//gatt.readCharacteristic(services.get(1).getCharacteristics().get(2));
//                chars.remove(chars.get(chars.size()-1));
//                if (chars.size() &amp;gt; 0) {
//                    gatt.readCharacteristic(chars.get(chars.size()-1));
//                } else {
//                    gatt.disconnect();
//                }&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;  }
  }
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;I have tried to get read, but still is display some alohanumeric value. actually it should display byte array&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>