static LGATTServiceInfo g_my_gatt_service[] = { {TYPE_SERVICE, "6e400001-b5a3-f393-e0a9-e50e24dcca9e", TRUE, 0, 0, 0}, {TYPE_CHARACTERISTIC, "6e400002-b5a3-f393-e0a9-e50e24dcca9e", FALSE, VM_GATT_CHAR_PROP_WRITE, VM_GATT_PERM_WRITE, 0}, {TYPE_CHARACTERISTIC, "6e400003-b5a3-f393-e0a9-e50e24dcca9e", FALSE, VM_GATT_CHAR_PROP_NOTIFY | VM_GATT_CHAR_PROP_INDICATE, VM_GATT_PERM_READ, 0}, {TYPE_DESCRIPTOR, "00002902-0000-1000-8000-00805f9b34fb", FALSE, VM_GATT_CHAR_PROP_NOTIFY, VM_GATT_PERM_READ | VM_GATT_PERM_WRITE, 0}, {TYPE_END, 0, 0, 0, 0, 0} }; LGATTServiceInfo *LGATTUT::loadService(int32_t index) { return g_my_gatt_service; }
This defines a service of UUID 6e400001-b5a3-f393-e0a9-e50e24dcca9e with two characteristics and one descriptor.
This array must be valid until LGATTServerClass.end() is called, therefore you should avoid getting a return of an array declared in the local scope.
It is recommended to return a globally, statically defined array like the example above.