Skip to content

Instantly share code, notes, and snippets.

@hui1601
Last active October 23, 2023 09:57
Show Gist options
  • Select an option

  • Save hui1601/2601731d65adcee70dd32f213b7148d5 to your computer and use it in GitHub Desktop.

Select an option

Save hui1601/2601731d65adcee70dd32f213b7148d5 to your computer and use it in GitHub Desktop.

use gatt

func (d *Device) IsQcyDevice() (bool, error) {
	// get manufacturer
	var manufacturer map[uint16]dbus.Variant
	busObj := d.client.conn.Object("org.bluez", dbus.ObjectPath(d.client.path+"/dev_"+utils.MacToPath(d.address)))
	err := busObj.Call("org.freedesktop.DBus.Properties.Get", 0, "org.bluez.Device1", "ManufacturerData").Store(&manufacturer)
	if err != nil {
		//println(err.Error())
		return false, nil
	}
	// check if manufacturer is QCY
	// Manufacturer specific advertisement data. Keys are 16 bits Manufacturer ID followed by its byte array value
	// 0x521c is QCY, how parse it?
	if _, ok := manufacturer[0x521c]; ok {
		return true, nil
	}
	return false, nil
}

Noise Canceling Settings

character: 00001001-0000-1000-8000-00805f9b34fb

Prefix(2byte): FF 03

CMD(1byte): 0C(Noise canceling option), 16(Balance), 09(Game mode), FE(Firmware???)

Arg size(1byte): always 1?

FF 03 0C 01 63: ANC ON(noise lv 3)

FF 03 0C 01 62: ANC ON(noise lv 2)

FF 03 0C 01 61: ANC ON(noise lv 1)

FF 03 0C 01 53: ANC ON(work lv 3)

FF 03 0C 01 52: ANC ON(work lv 2)

FF 03 0C 01 51: ANC ON(work lv 1)

FF 03 0C 01 43: ANC ON(slient lv 3)

FF 03 0C 01 42: ANC ON(slient lv 2)

FF 03 0C 01 41: ANC ON(slient lv 1)

FF 03 0C 01 A6: PASSTHROUGH(lv 6)

FF 03 0C 01 A0: PASSTHROUGH(voice increase)

FF 03 0C 01 02: ANC OFF

Balance Settings

FF 03 16 01 00: left 100%, right 0%

FF 03 16 01 32: middle(left 50%, right 50%)

FF 03 16 01 64: left 0%, right 100%

Game Mode Settings

FF 03 09 01 01: Game mode on

FF 03 09 01 02: Game mode off

FF 03 FE 01 16: Firmware version?

Battery Info

character: 00000008-0000-1000-8000-00805f9b34fb

Left (1byte): Percent

Right (1byte): Percent

Case (1byte): Percent

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment