buttplugio / buttplug

Rust Implementation of the Buttplug Sex Toy Control Protocol

Home Page:https://buttplug.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Early Satisfyer devices are not identified correctly

blackspherefollower opened this issue · comments

Describe the bug
The early Satisfyer devices don't return any useful information on the manufacturer characteristic, so whilst we match them based on the advertised information, we can't actually work out which device is connected.

Expected behavior/Actual behavior
The Satisfyer Curvy2 should appear as a dual vibe, but in fact it only appears as a single.

Additional context
The "hacky" solution here would probably be to fall back to the device name at this point, but ideally the advertised information would be passed into the intialialiser, so the matched manufacturer data could be used.

This issue can also be reproduced with the Satisfyer Mono Flex.

It has 2 motors, but control only allows for Vibrate/All Motors, which sometimes includes the second motor and sometimes won't when changing the value.

commented

@blackspherefollower was this fixed in v7.1.0?

No, not yet. My original idea for a fix was going to be to fall back to requesting the device name, but since we now know that that's a no go on CoreBluetooth that's going to cause more problems than it solves.

I think it could be solved by passing the whole advertisement struct into the identifier method, but that's quite a large change.