I created my bluetooth service and characteristic and clients can connect to it and I am sending notifications on the connection. But the notifications don't arrive at the client, except if the client is "nrf Connect".
When I wireshark the connection with "nrf Connect" I see my notifications properly decoded by wireshark as they are sent to my pad. But then I use another client for my service. The client will also successfully subscribe. But now, when I wireshark the connections, I see my notifications are garbage and the client doesn't react.
Again everything is at least properly enough set up, so that "nrf Connect" can see the property, see that it's NOTIFY, that is has a 0x2902 descriptor and "nrf Connect" can initiate notifications and receive and display them. My pet theory is, that the bluetooth handle for the characteristic is somehow mismanaged.
I am using these headers on linux so it's bluez as I understand it.
#include <gio/gio.h>
#include <glib.h>
Even with a thorough search I could not find a case, of a working notification example in the bluez sources, nor on github.
This is my GATT XML just in case:
" <interface name='.bluez.GattCharacteristic1'>"
" <property name='UUID' type='s' access='read'/>"
" <property name='Service' type='o' access='read'/>"
" <property name='Value' type='ay' access='readwrite'/>"
" <method name='ReadValue'>"
" <arg type='a{sv}' name='options' direction='in'/>"
" <arg type='ay' name='value' direction='out'/>"
" </method>"
" <method name='WriteValue'>"
" <arg type='ay' name='value' direction='in'/>"
" <arg type='a{sv}' name='options' direction='in'/>"
" </method>"
" <method name='StartNotify'/>"
" <method name='StopNotify'/>"
" </interface>"