Skip to content

Commit

Permalink
feat: compass v2 protocol
Browse files Browse the repository at this point in the history
  • Loading branch information
ex3ndr committed May 9, 2024
1 parent 760ce60 commit 942c4b2
Showing 1 changed file with 20 additions and 2 deletions.
22 changes: 20 additions & 2 deletions sources/modules/protocol.ts
Original file line number Diff line number Diff line change
Expand Up @@ -58,21 +58,39 @@ async function resolveSuperProtocol(device: BTDevice): Promise<ProtocolDefinitio

async function resolveCompasProtocol(device: BTDevice): Promise<ProtocolDefinition | null> {

/**
* Firmware V1 reports:
*
* Service:4fafc201-1fb5-459e-8fcc-c5c9c331914b
* - Characteristic:00002bed-0000-1000-8000-00805f9b34fb
* - canRead:true
* - canWrite:false
* - canNotify:true
* - Characteristic:9f83442c-7da2-49ca-94e3-b06201a58508
* - canRead:true
* - canWrite:false
* - canNotify:true
* - Characteristic:beb5483e-36e1-4688-b7f5-ea07361b26a8
* - canRead:false
* - canWrite:false
* - canNotify:true
*/

// Search for service
let service = device.services.find((v) => v.id === '4fafc201-1fb5-459e-8fcc-c5c9c331914b')
if (!service) {
return null;
}

// Search for characteristic
let audioCharacteristic = service.characteristics.find((v) => v.id === 'beb5483e-36e1-4688-b7f5-ea07361b26a8');
const audioCharacteristic = service.characteristics.find((v) => v.id === 'beb5483e-36e1-4688-b7f5-ea07361b26a8' || v.id === 'aeab4b05-a5fd-4c89-89de-17f1509e2734');
if (!audioCharacteristic) {
return null;
}

return {
kind: 'compass',
codec: 'pcm-8' as const,
codec: (audioCharacteristic.id === 'beb5483e-36e1-4688-b7f5-ea07361b26a8' ? 'pcm-8' as const : 'mu-law-16' as const),
source: audioCharacteristic
};
}
Expand Down

0 comments on commit 942c4b2

Please sign in to comment.