Hi,
I recently updated and started using the binary protocol
The issue I’m having is that I cannot find the UUID in the JSON tree and I was wondering if this is on purpose
I mean it is a very useful feature for systems with more than one ODrive
Thank you!
This was not on purpose, feel free to add a endpoint to access the UUID.
If you get it to work, please do make a pull request.
Let me know if need help with any of this.
Thanks for the quick reply!
I would like too but unfortunately my C skills are not advanced enough to do it the proper way so I’ll probably hack something locally until the feature comes back
I figured that the UUID comes from utils as 3 ints but not sure how to convert to string and where to initialize the variable or how to expose strings as there are no string samples in the fields exposed through the JSON tree
So my plan is to expose 3 ints as 3 endpoints and initialize them in the motor initialization method and then convert on the host after reading them
Okay cool. Actually exposing them as 3 ints is also how I would do it. Also instead of making 3 new ints that you initialize, you can directly bind to the UUID addresses. Something like this:
Endpoint::make_property("UUID_0", (const uint32_t*)(ID_UNIQUE_ADDRESS + 0*4));
Endpoint::make_property("UUID_1", (const uint32_t*)(ID_UNIQUE_ADDRESS + 1*4));
Endpoint::make_property("UUID_2", (const uint32_t*)(ID_UNIQUE_ADDRESS + 2*4));
Let me know if you can get something like that to work? If so, can you please make a PR with that improvement? Thanks!
Awesome! Thanks for your contribution! I assume you tested it and it works? ;D
yes, of course…I got an answer from it but have no idea how to check if it’s accurate
Just check that it’s the same every time I think should be sufficient
Yes, it is, that’s how I’m telling them appart
1 Like