emericg / toolBLEx

A multiplatform Bluetooth Low Energy (and Classic) device scanner and analyzer.
GNU General Public License v3.0
130 stars 13 forks source link

[Feature Request] Custom characteristic names/tags #18

Open parkerlreed opened 3 months ago

parkerlreed commented 3 months ago

Is your feature request related to a problem? Please describe. For devices with known characteristics (not defined in the spec) it would be great to have custom names/tags to be able to easily distinguish them in the list

Describe the solution you'd like A way to rename a characteristic away from "Unknown" or maybe a tag field in the empty area to the right.

Describe alternatives you've considered Pen and paper? :D

Additional context

I was thinking the next logical step from here is setting a data type for the known characteristic so you can display converted data when the read is performed.

image

emericg commented 3 months ago

It would be a neat feature!

There is one item related to that on my TODO list, it is to add "known" device advertisement data parsing and decoding functionality, similar to what you are describing for known characteristic data.

But. Both feature would be a significant amount of work, and I have no plan to work on it at the moment, unfortunately.

I am open to discussing it though, maybe something relatively simple can be done with good enough results? What I want for this feature (and the advertising one) is the ability to link precisely a value with its data. If a characteristic returns only the 4 bytes of an integer, then it's good. But if it returns 6 bytes, that nobody knows what the two bytes are, then it can get weird.

In that case, by hovering the mouse on the decoded value, it should be clear that we are talking about an int32 value, corresponding to the bytes dynamically highlighted by the UI, using this or that format/decoding rule (for instance a temperature of 24.50 is usually coded as an integer value of 2450, that must be then divided by 100).

So there should be an intermediate format describing a list of known UUID, with their content as a set of values with name, unit, data type, data position, data conversion rule, and probably other stuff?

All of that user generated too...

parkerlreed commented 3 months ago

That's what I was thinking (along with the obvious huge implementation time sink)

As you mentioned, even just a basic UUID to name mapping could suffice for most uses, while the data conversion et all would take longer to implement.