package infinitime import "tinygo.org/x/bluetooth" type btChar struct { Name string ID bluetooth.UUID ServiceID bluetooth.UUID } var ( musicServiceUUID = mustParse("00000000-78fc-48fe-8e23-433b3a1942d0") navigationServiceUUID = mustParse("00010000-78fc-48fe-8e23-433b3a1942d0") motionServiceUUID = mustParse("00030000-78fc-48fe-8e23-433b3a1942d0") weatherServiceUUID = mustParse("00050000-78fc-48fe-8e23-433b3a1942d0") ) var ( newAlertChar = btChar{ "New Alert", bluetooth.CharacteristicUUIDNewAlert, bluetooth.ServiceUUIDAlertNotification, } notifEventChar = btChar{ "Notification Event", mustParse("00020001-78fc-48fe-8e23-433b3a1942d0"), bluetooth.ServiceUUIDAlertNotification, } stepCountChar = btChar{ "Step Count", mustParse("00030001-78fc-48fe-8e23-433b3a1942d0"), motionServiceUUID, } rawMotionChar = btChar{ "Raw Motion", mustParse("00030002-78fc-48fe-8e23-433b3a1942d0"), motionServiceUUID, } firmwareVerChar = btChar{ "Firmware Version", bluetooth.CharacteristicUUIDFirmwareRevisionString, bluetooth.ServiceUUIDDeviceInformation, } currentTimeChar = btChar{ "Current Time", bluetooth.CharacteristicUUIDCurrentTime, bluetooth.ServiceUUIDCurrentTime, } localTimeChar = btChar{ "Local Time", bluetooth.CharacteristicUUIDLocalTimeInformation, bluetooth.ServiceUUIDCurrentTime, } batteryLevelChar = btChar{ "Battery Level", bluetooth.CharacteristicUUIDBatteryLevel, bluetooth.ServiceUUIDBattery, } heartRateChar = btChar{ "Heart Rate", bluetooth.CharacteristicUUIDHeartRateMeasurement, bluetooth.ServiceUUIDHeartRate, } fsVersionChar = btChar{ "Filesystem Version", mustParse("adaf0200-4669-6c65-5472-616e73666572"), bluetooth.ServiceUUIDFileTransferByAdafruit, } fsTransferChar = btChar{ "Filesystem Transfer", mustParse("adaf0200-4669-6c65-5472-616e73666572"), bluetooth.ServiceUUIDFileTransferByAdafruit, } dfuCtrlPointChar = btChar{ "DFU Control Point", bluetooth.CharacteristicUUIDLegacyDFUControlPoint, bluetooth.ServiceUUIDLegacyDFU, } dfuPacketChar = btChar{ "DFU Packet", bluetooth.CharacteristicUUIDLegacyDFUPacket, bluetooth.ServiceUUIDLegacyDFU, } navigationFlagsChar = btChar{ "Navigation Flags", mustParse("00010001-78fc-48fe-8e23-433b3a1942d0"), navigationServiceUUID, } navigationNarrativeChar = btChar{ "Navigation Narrative", mustParse("00010002-78fc-48fe-8e23-433b3a1942d0"), navigationServiceUUID, } navigationManDist = btChar{ "Navigation Man Dist", mustParse("00010003-78fc-48fe-8e23-433b3a1942d0"), navigationServiceUUID, } navigationProgress = btChar{ "Navigation Progress", mustParse("00010004-78fc-48fe-8e23-433b3a1942d0"), navigationServiceUUID, } weatherDataChar = btChar{ "Weather Data", mustParse("00050001-78fc-48fe-8e23-433b3a1942d0"), weatherServiceUUID, } musicEventChar = btChar{ "Music Event", mustParse("00000001-78fc-48fe-8e23-433b3a1942d0"), musicServiceUUID, } musicStatusChar = btChar{ "Music Status", mustParse("00000002-78fc-48fe-8e23-433b3a1942d0"), musicServiceUUID, } musicArtistChar = btChar{ "Music Artist", mustParse("00000003-78fc-48fe-8e23-433b3a1942d0"), musicServiceUUID, } musicTrackChar = btChar{ "Music Track", mustParse("00000004-78fc-48fe-8e23-433b3a1942d0"), musicServiceUUID, } musicAlbumChar = btChar{ "Music Album", mustParse("00000005-78fc-48fe-8e23-433b3a1942d0"), musicServiceUUID, } ) func mustParse(s string) bluetooth.UUID { uuid, err := bluetooth.ParseUUID(s) if err != nil { panic(err) } return uuid }