Time to put @blackspherefollower's toy collection and protocol knowledge to the test.
The device-attributes branch has a device config with schema for externalized attributes (buttplugio/buttplug#93). Right now, only Lovense, Kiiroo v2, and XInput have been ported. Hopefully the layout for those 3 should make sense. Now we need to fill in all of the other devices supported.
How you do this is up to you. If you want to hand enter everything in the yaml, that works. If you want to make spreadsheets or a DB for easier update and export, that works too.
The rules so far (that I've completely made up while developing this):
Fill out defaults first, only add configurations if specific devices require it (for naming, etc). For instance, XInput only has defaults because it only really identifies as one device.
For configurations, if you have identifiers that need to be extracted from manufacturer strings or other GATT/USB Descriptors, go ahead and add those. I'll try to get those implemented ASAP in C#. JS may take a bit more. None of this is going to ship until all of the pieces are ready.
Don't worry about adding that messages support Raw*. That's a special message we'll handle in code.
If something doesn't have any attributes (i.e. BatteryLevelCmd), just use an empty object ({}). Using null will cause the schema to error out.
Running yarn build or npm run build will both compile the YAML to JSON and run the schema check now.
Oh, and literally all of this is up for review/comment/complaint. So far everything seems to work smoothly but I've been in the middle of this all weekend so outside perspective is welcome and probably very much needed.
Time to put @blackspherefollower's toy collection and protocol knowledge to the test.
The
device-attributes
branch has a device config with schema for externalized attributes (buttplugio/buttplug#93). Right now, only Lovense, Kiiroo v2, and XInput have been ported. Hopefully the layout for those 3 should make sense. Now we need to fill in all of the other devices supported.How you do this is up to you. If you want to hand enter everything in the yaml, that works. If you want to make spreadsheets or a DB for easier update and export, that works too.
The rules so far (that I've completely made up while developing this):
{}
). Using null will cause the schema to error out.yarn build
ornpm run build
will both compile the YAML to JSON and run the schema check now.I think that's it. Good luck. :D