1*f9739491SMatthias RingwaldPRIMARY_SERVICE, GAP_SERVICE 2*f9739491SMatthias RingwaldCHARACTERISTIC, GAP_DEVICE_NAME, READ | WRITE | DYNAMIC, 3*f9739491SMatthias RingwaldCHARACTERISTIC, GAP_APPEARANCE, READ | WRITE | DYNAMIC, 4*f9739491SMatthias Ringwald// GAP Peripheral Privacy Flag 5*f9739491SMatthias RingwaldCHARACTERISTIC, 2A02, READ | WRITE | DYNAMIC, 00 6*f9739491SMatthias Ringwald// GAP Reconnection Address - 6 bytes 7*f9739491SMatthias RingwaldCHARACTERISTIC, 2A03, READ | WRITE | DYNAMIC, 8*f9739491SMatthias Ringwald// GAP Peripheral Preferred Connection Parameters 9*f9739491SMatthias RingwaldCHARACTERISTIC, 2A04, READ | WRITE | DYNAMIC, 10*f9739491SMatthias Ringwald 11*f9739491SMatthias RingwaldPRIMARY_SERVICE, GATT_SERVICE 12*f9739491SMatthias RingwaldCHARACTERISTIC, GATT_SERVICE_CHANGED, READ, 13*f9739491SMatthias Ringwald 14*f9739491SMatthias RingwaldSECONDARY_SERVICE, 0000FF10-0000-1000-8000-00805F9B34FB 15*f9739491SMatthias RingwaldCHARACTERISTIC, FF10, READ | WRITE | DYNAMIC, 16*f9739491SMatthias Ringwald 17*f9739491SMatthias RingwaldSECONDARY_SERVICE, 0000FF11-0000-1000-8000-00805F9B34FB 18*f9739491SMatthias RingwaldCHARACTERISTIC, FF11, READ | WRITE | DYNAMIC, 19*f9739491SMatthias Ringwald 20*f9739491SMatthias Ringwald// 21*f9739491SMatthias RingwaldPRIMARY_SERVICE, FFFF 22*f9739491SMatthias RingwaldCHARACTERISTIC, FFFD, READ | WRITE | DYNAMIC, 23*f9739491SMatthias RingwaldCHARACTERISTIC, FFFE, READ | WRITE | DYNAMIC, 24*f9739491SMatthias Ringwald// 25*f9739491SMatthias RingwaldPRIMARY_SERVICE, FFFF 26*f9739491SMatthias RingwaldCHARACTERISTIC, FFFD, READ | WRITE | DYNAMIC, 27*f9739491SMatthias RingwaldCHARACTERISTIC, FFFE, READ | WRITE | DYNAMIC, 28*f9739491SMatthias Ringwald// 29*f9739491SMatthias Ringwald// SECONDARY_SERVICE, FFFA 30*f9739491SMatthias Ringwald// CHARACTERISTIC, FFFB, READ | WRITE | DYNAMIC, 31*f9739491SMatthias Ringwald// 32*f9739491SMatthias Ringwald// SECONDARY_SERVICE, FFF9 33*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFFA 34*f9739491SMatthias Ringwald// 35*f9739491SMatthias Ringwald// SECONDARY_SERVICE, FFF7 36*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFF9 37*f9739491SMatthias Ringwald// CHARACTERISTIC, FFF8, READ | WRITE | DYNAMIC, 38*f9739491SMatthias Ringwald// 39*f9739491SMatthias RingwaldSECONDARY_SERVICE, FFF4 40*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFF7 41*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFFC 42*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFFF 43*f9739491SMatthias RingwaldCHARACTERISTIC, FFF5, READ | WRITE | DYNAMIC, 44*f9739491SMatthias RingwaldCHARACTERISTIC, FFF6, READ | WRITE | DYNAMIC, 45*f9739491SMatthias Ringwald// 46*f9739491SMatthias Ringwald// PRIMARY_SERVICE, FFF0 47*f9739491SMatthias Ringwald// INCLUDE_SERVICE, FFF4 48*f9739491SMatthias Ringwald// CHARACTERISTIC, FFF1, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED | ENCRYPTION_KEY_SIZE_7 | AUTHENTICATION_REQUIRED, 49*f9739491SMatthias Ringwald// CHARACTERISTIC, FFF2, READ | WRITE | DYNAMIC, 50*f9739491SMatthias Ringwald// CHARACTERISTIC, FFF3, READ | INDICATE, 51*f9739491SMatthias Ringwald// CHARACTERISTIC, 00001234-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC, 52*f9739491SMatthias Ringwald 53*f9739491SMatthias Ringwald// Primary Service with 16-bit UUID, included service 54*f9739491SMatthias RingwaldPRIMARY_SERVICE, F000 55*f9739491SMatthias RingwaldINCLUDE_SERVICE, FFF4 56*f9739491SMatthias Ringwald// Characteristics 16 and 128 bit with different authoriztion/authentication/encryption requirements and read/write flags 57*f9739491SMatthias Ringwald// - no requirements 58*f9739491SMatthias RingwaldCHARACTERISTIC, F100, READ | WRITE | DYNAMIC | NOTIFY | INDICATE | RELIABLE_WRITE, 59*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC, 60*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F101-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | NOTIFY | INDICATE | RELIABLE_WRITE, 61*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC, 62*f9739491SMatthias Ringwald// - neither read nor writable 63*f9739491SMatthias RingwaldCHARACTERISTIC, F102, DYNAMIC, 64*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, DYNAMIC, 65*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F103-0000-1000-8000-00805F9B34FB, DYNAMIC, 66*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, DYNAMIC, 67*f9739491SMatthias Ringwald// - authorization required 68*f9739491SMatthias RingwaldCHARACTERISTIC, F104, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 69*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 70*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F105-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 71*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 72*f9739491SMatthias Ringwald// - authenthication required 73*f9739491SMatthias RingwaldCHARACTERISTIC, F106, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 74*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 75*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F107-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 76*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 77*f9739491SMatthias Ringwald// - encryptiont with 128 bit key required 78*f9739491SMatthias RingwaldCHARACTERISTIC, F108, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 79*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 80*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F109-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 81*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 82*f9739491SMatthias Ringwald// - write only 83*f9739491SMatthias RingwaldCHARACTERISTIC, F10A, WRITE | DYNAMIC, 84*f9739491SMatthias Ringwald 85*f9739491SMatthias Ringwald// - read/write, incl. server characteristic configuration, characteristic format (uint8_t, exponent = 0, unitless, Bluetooth SIG, and characteristic aggregate format 86*f9739491SMatthias RingwaldCHARACTERISTIC, F10B, READ | WRITE | DYNAMIC, 87*f9739491SMatthias RingwaldSERVER_CHARACTERISTIC_CONFIGURATION, READ | WRITE | DYNAMIC, 88*f9739491SMatthias RingwaldCHARACTERISTIC_FORMAT, 1, 04, 0, 2700, 1, 0000 89*f9739491SMatthias RingwaldCHARACTERISTIC_FORMAT, 2, 0c, 0, 2700, 1, 0000 90*f9739491SMatthias RingwaldCHARACTERISTIC_AGGREGATE_FORMAT, 1, 2 91*f9739491SMatthias Ringwald 92*f9739491SMatthias Ringwald// - read/write/write without response 93*f9739491SMatthias RingwaldCHARACTERISTIC, F10D, READ | WRITE | WRITE_WITHOUT_RESPONSE | DYNAMIC, 94*f9739491SMatthias Ringwald// - read/write without response 95*f9739491SMatthias RingwaldCHARACTERISTIC, F10C, READ | WRITE_WITHOUT_RESPONSE | DYNAMIC, 96*f9739491SMatthias Ringwald// - read/authenticated signed writes 97*f9739491SMatthias RingwaldCHARACTERISTIC, F10E, READ | WRITE | AUTHENTICATED_SIGNED_WRITE | DYNAMIC, 98*f9739491SMatthias Ringwald 99*f9739491SMatthias Ringwald// Primary Service with 128-bit UUID, included service 100*f9739491SMatthias RingwaldPRIMARY_SERVICE, 0000F001-0000-1000-8000-00805F9B34FB 101*f9739491SMatthias RingwaldINCLUDE_SERVICE, 0000FF10-0000-1000-8000-00805F9B34FB 102*f9739491SMatthias RingwaldINCLUDE_SERVICE, 0000FF11-0000-1000-8000-00805F9B34FB 103*f9739491SMatthias Ringwald// Characteristics 16 and 128 bit with different authoriztion/authentication/encryption requirements and read/write flags 104*f9739491SMatthias Ringwald// - no requirements 105*f9739491SMatthias RingwaldCHARACTERISTIC, F200, READ | WRITE | DYNAMIC | NOTIFY | INDICATE | RELIABLE_WRITE | WRITE_WITHOUT_RESPONSE, 106*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC, 107*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F201-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | NOTIFY | INDICATE | RELIABLE_WRITE, 108*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC, 109*f9739491SMatthias Ringwald// - neither read nor writable 110*f9739491SMatthias RingwaldCHARACTERISTIC, F202, DYNAMIC, 111*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, DYNAMIC, 112*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F203-0000-1000-8000-00805F9B34FB, DYNAMIC, 113*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, DYNAMIC, 114*f9739491SMatthias Ringwald// - authorization required 115*f9739491SMatthias RingwaldCHARACTERISTIC, F204, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 116*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 117*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F205-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 118*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHORIZATION_REQUIRED, 119*f9739491SMatthias Ringwald// - authenthication required 120*f9739491SMatthias RingwaldCHARACTERISTIC, F206, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 121*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 122*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F207-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 123*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | AUTHENTICATION_REQUIRED, 124*f9739491SMatthias Ringwald// - encryptiont with 128 bit key required 125*f9739491SMatthias RingwaldCHARACTERISTIC, F208, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 126*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 127*f9739491SMatthias RingwaldCHARACTERISTIC, 0000F209-0000-1000-8000-00805F9B34FB, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 128*f9739491SMatthias RingwaldCHARACTERISTIC_USER_DESCRIPTION, READ | WRITE | DYNAMIC | ENCRYPTION_KEY_SIZE_16, 129*f9739491SMatthias Ringwald 130*f9739491SMatthias Ringwald 131