I am trying to control a BLE device, and have sniffed some traffic via Wireshark. While I do see some a small number of "Send Write Request", the actual commands to control the device are decoded as "Sent Handle Value Notification".
Interacting with the device has been a bit of a handful, as the device does not seem to return Service or Characteristic UUIDs until paired, but I have managed to get as far as pairing the device (after scanning, and triggering the pair by device name for now), and then I can fetch the Service, Characteristic and Descriptor. I can issue a requestWrite on the Characteristic and Descriptor, which return success, but there is no observed effect on the device. I suspect this is because it is issuing a regular Write, and not this "Handle Value Notification"
Here is what the frame that I have captured while sniffing looks like:
My Service and Characteristic UUIDs are registered, and I am getting those objects back, but ultimately my call doesn't seem to work: (I do get back STATUS_SUCCESS in onCharacteristicWrite though)
getCharacteristic().requestWrite([0x0b]b, {});
I'm not sure exactly what the transmitted packet looks like, in order to tell what the Opcode and Handle are of what is being sent.
I followed some other instructions to write [0x01,0x00] to my descriptor to enable notifications, and I do get realtime calls to onCharacteristicChanged when interacting with the device with status updates, but I'm still unclear on how to send notifications back to the device.
Does the information included with the frame provide enough information for someone to steer me in the correct direction?