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
  • Please see this .. i have problem with this

    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:
            // developer.bluetooth.org/.../CharacteristicViewer.aspx
            if (TX_CHAR_UUID.equals(characteristic.getUuid())) {
    
                // Log.d(TAG, String.format("Received TX: %d",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 <= 0) ? "0 bytes" : GeneralCharacteristicParser.parse(characteristic);
    
                intent.putExtra(SOME_MORE,data);
    
            }
    
            if (RX_TSCHAR_UUID.equals(characteristic.getUuid())) {
    
                // Log.d(TAG, String.format("Received TX: %d",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 <= 0) ? "0 bytes" : GeneralCharacteristicParser.parse(characteristic);
    
                intent.putExtra(SOME_MORE,data);
    
    
            }
            else
            {
    
            }
            LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
            //LocalBroadcastManager.getInstance(this).sendBroadcast(intent1);
        }
    

    I have tried to read characterictics and it is showing null. when i debug the code it is showing charactecteristcs as null value. only UART Characteristic is notified and read

Reply
  • Please see this .. i have problem with this

    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:
            // developer.bluetooth.org/.../CharacteristicViewer.aspx
            if (TX_CHAR_UUID.equals(characteristic.getUuid())) {
    
                // Log.d(TAG, String.format("Received TX: %d",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 <= 0) ? "0 bytes" : GeneralCharacteristicParser.parse(characteristic);
    
                intent.putExtra(SOME_MORE,data);
    
            }
    
            if (RX_TSCHAR_UUID.equals(characteristic.getUuid())) {
    
                // Log.d(TAG, String.format("Received TX: %d",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 <= 0) ? "0 bytes" : GeneralCharacteristicParser.parse(characteristic);
    
                intent.putExtra(SOME_MORE,data);
    
    
            }
            else
            {
    
            }
            LocalBroadcastManager.getInstance(this).sendBroadcast(intent);
            //LocalBroadcastManager.getInstance(this).sendBroadcast(intent1);
        }
    

    I have tried to read characterictics and it is showing null. when i debug the code it is showing charactecteristcs as null value. only UART Characteristic is notified and read

Children
No Data
Related