This post is older than 2 years and might not be relevant anymore
More Info: Consider searching for newer posts

Nordik UART app with Multiple service reception

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.

I have changed UART profile to HRS profile and code was working, i was receiving Nordik HRS service data.

But i want both services should be used and receives data. so i have prepare separate UARTService_HRS for hrs profile in the same code.also added needed changed.but it gives error null pointer exception on BLEGattService.

Please help

Parents
  • Yes sir, I have given you details of enableTXNotification function. there i have updated above CCCD code for HRS profile, i will rewrite here,

    public static final UUID CCCDTS = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
    
    BluetoothGattService RxServiceHRS = mBluetoothGatt.getService(RX_TSSERVICE_UUID);
            if (RxServiceHRS == null) {
                showMessage("Rx service not found!");
                broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                return;
            }
            BluetoothGattCharacteristic TxCharHRS = RxServiceHRS.getCharacteristic(TX_TSCHAR_UUID);
                Log.d("CHAR"," "+RxServiceHRS.getCharacteristics());
            if (TxCharHRS == null) {
                showMessage("Tx charateristic not found!");
                Log.d("no tx char ","Tx charateristic not found!");
                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);
    

    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.

Reply
  • Yes sir, I have given you details of enableTXNotification function. there i have updated above CCCD code for HRS profile, i will rewrite here,

    public static final UUID CCCDTS = UUID.fromString("00002902-0000-1000-8000-00805f9b34fb");
    
    BluetoothGattService RxServiceHRS = mBluetoothGatt.getService(RX_TSSERVICE_UUID);
            if (RxServiceHRS == null) {
                showMessage("Rx service not found!");
                broadcastUpdate(DEVICE_DOES_NOT_SUPPORT_UART);
                return;
            }
            BluetoothGattCharacteristic TxCharHRS = RxServiceHRS.getCharacteristic(TX_TSCHAR_UUID);
                Log.d("CHAR"," "+RxServiceHRS.getCharacteristics());
            if (TxCharHRS == null) {
                showMessage("Tx charateristic not found!");
                Log.d("no tx char ","Tx charateristic not found!");
                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);
    

    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.

Children
No Data
Related