simplersble 0.10.4-dev48

The all-in-one Bluetooth library that makes it easy to add wireless connectivity to your projects.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.9.1 */

#ifndef PB_SD_SOFTDEVICE_GATTS_PB_H_INCLUDED
#define PB_SD_SOFTDEVICE_GATTS_PB_H_INCLUDED
#include "nanopb/pb.h"
#include "protocol/softdevice_types.pb.h"

#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif

/* Struct definitions */
/* SoftDevice GATTS command messages */
typedef struct _sd_GattsServiceAddCmd {
    uint8_t type;
    bool has_uuid;
    sd_types_BleUuid uuid; /* Optional */
    uint16_t handle; /* Output */
} sd_GattsServiceAddCmd;

typedef struct _sd_GattsIncludeAddCmd {
    uint16_t service_handle;
    uint16_t inc_srvc_handle;
    uint16_t include_handle; /* Output */
} sd_GattsIncludeAddCmd;

typedef struct _sd_GattsCharacteristicAddCmd {
    uint16_t service_handle;
    bool has_char_md;
    sd_types_BleGattsCharMd char_md;
    bool has_attr_char_value;
    sd_types_BleGattsAttr attr_char_value; /* Optional */
    bool has_handles;
    sd_types_BleGattsCharHandles handles; /* Output */
} sd_GattsCharacteristicAddCmd;

typedef struct _sd_GattsDescriptorAddCmd {
    uint16_t char_handle;
    bool has_attr;
    sd_types_BleGattsAttr attr;
    uint16_t handle; /* Output */
} sd_GattsDescriptorAddCmd;

typedef struct _sd_GattsValueSetCmd {
    uint16_t conn_handle;
    uint16_t handle;
    bool has_value;
    sd_types_BleGattsValue value;
} sd_GattsValueSetCmd;

typedef struct _sd_GattsValueGetCmd {
    uint16_t conn_handle;
    uint16_t handle;
    bool has_value;
    sd_types_BleGattsValue value; /* Output */
} sd_GattsValueGetCmd;

typedef struct _sd_GattsHvxCmd {
    uint16_t conn_handle;
    bool has_hvx_params;
    sd_types_BleGattsHvxParams hvx_params;
} sd_GattsHvxCmd;

typedef struct _sd_GattsServiceChangedCmd {
    uint16_t conn_handle;
    uint16_t start_handle;
    uint16_t end_handle;
} sd_GattsServiceChangedCmd;

typedef struct _sd_GattsRwAuthorizeReplyCmd {
    uint16_t conn_handle;
    bool has_rw_authorize_reply_params;
    sd_types_BleGattsRwAuthorizeReplyParams rw_authorize_reply_params;
} sd_GattsRwAuthorizeReplyCmd;

typedef PB_BYTES_ARRAY_T(248) sd_GattsSysAttrSetCmd_sys_attr_data_t;
typedef struct _sd_GattsSysAttrSetCmd {
    uint16_t conn_handle;
    sd_GattsSysAttrSetCmd_sys_attr_data_t sys_attr_data; /* BLE_GATTS_VAR_ATTR_LEN_MAX = 248 */
    uint16_t len;
    uint32_t flags;
} sd_GattsSysAttrSetCmd;

typedef PB_BYTES_ARRAY_T(248) sd_GattsSysAttrGetCmd_sys_attr_data_t;
typedef struct _sd_GattsSysAttrGetCmd {
    uint16_t conn_handle;
    sd_GattsSysAttrGetCmd_sys_attr_data_t sys_attr_data; /* Output */
    uint16_t len; /* Output */
    uint32_t flags;
} sd_GattsSysAttrGetCmd;

typedef struct _sd_GattsInitialUserHandleGetCmd {
    uint16_t handle; /* Output */
} sd_GattsInitialUserHandleGetCmd;

typedef struct _sd_GattsAttrGetCmd {
    uint16_t handle;
    bool has_uuid;
    sd_types_BleUuid uuid; /* Output, optional */
    bool has_attr_md;
    sd_types_BleGattsAttrMd attr_md; /* Output, optional */
} sd_GattsAttrGetCmd;

typedef struct _sd_GattsExchangeMtuReplyCmd {
    uint16_t conn_handle;
    uint16_t server_rx_mtu;
} sd_GattsExchangeMtuReplyCmd;

/* SoftDevice GATTS response messages */
typedef struct _sd_GattsServiceAddRsp {
    uint32_t ret_code;
    uint16_t handle;
} sd_GattsServiceAddRsp;

typedef struct _sd_GattsIncludeAddRsp {
    uint32_t ret_code;
    uint16_t include_handle;
} sd_GattsIncludeAddRsp;

typedef struct _sd_GattsCharacteristicAddRsp {
    uint32_t ret_code;
    bool has_handles;
    sd_types_BleGattsCharHandles handles;
} sd_GattsCharacteristicAddRsp;

typedef struct _sd_GattsDescriptorAddRsp {
    uint32_t ret_code;
    uint16_t handle;
} sd_GattsDescriptorAddRsp;

typedef struct _sd_GattsValueSetRsp {
    uint32_t ret_code;
} sd_GattsValueSetRsp;

typedef struct _sd_GattsValueGetRsp {
    uint32_t ret_code;
    bool has_value;
    sd_types_BleGattsValue value;
} sd_GattsValueGetRsp;

typedef struct _sd_GattsHvxRsp {
    uint32_t ret_code;
    bool has_hvx_params;
    sd_types_BleGattsHvxParams hvx_params; /* Optional */
} sd_GattsHvxRsp;

typedef struct _sd_GattsServiceChangedRsp {
    uint32_t ret_code;
} sd_GattsServiceChangedRsp;

typedef struct _sd_GattsRwAuthorizeReplyRsp {
    uint32_t ret_code;
} sd_GattsRwAuthorizeReplyRsp;

typedef struct _sd_GattsSysAttrSetRsp {
    uint32_t ret_code;
} sd_GattsSysAttrSetRsp;

typedef PB_BYTES_ARRAY_T(248) sd_GattsSysAttrGetRsp_sys_attr_data_t;
typedef struct _sd_GattsSysAttrGetRsp {
    uint32_t ret_code;
    sd_GattsSysAttrGetRsp_sys_attr_data_t sys_attr_data;
    uint16_t len;
    uint32_t flags;
} sd_GattsSysAttrGetRsp;

typedef struct _sd_GattsInitialUserHandleGetRsp {
    uint32_t ret_code;
    uint16_t handle;
} sd_GattsInitialUserHandleGetRsp;

typedef struct _sd_GattsAttrGetRsp {
    uint32_t ret_code;
    bool has_uuid;
    sd_types_BleUuid uuid; /* Optional */
    bool has_attr_md;
    sd_types_BleGattsAttrMd attr_md; /* Optional */
} sd_GattsAttrGetRsp;

typedef struct _sd_GattsExchangeMtuReplyRsp {
    uint32_t ret_code;
} sd_GattsExchangeMtuReplyRsp;

typedef PB_BYTES_ARRAY_T(512) sd_GattsEvtWrite_data_t;
/* SoftDevice GATTS event messages */
typedef struct _sd_GattsEvtWrite {
    uint16_t handle;
    bool has_uuid;
    sd_types_BleUuid uuid;
    sd_types_BleGattsOp op;
    bool auth_required;
    uint16_t offset;
    uint16_t len;
    sd_GattsEvtWrite_data_t data; /* Variable length */
} sd_GattsEvtWrite;

typedef struct _sd_GattsEvtRead {
    uint16_t handle;
    bool has_uuid;
    sd_types_BleUuid uuid;
    uint16_t offset;
} sd_GattsEvtRead;

typedef struct _sd_GattsEvtRwAuthorizeRequest {
    sd_types_BleGattsAuthorizeType type;
    pb_size_t which_request;
    union {
        sd_GattsEvtRead read;
        sd_GattsEvtWrite write;
    } request;
} sd_GattsEvtRwAuthorizeRequest;

typedef struct _sd_GattsEvtSysAttrMissing {
    uint8_t hint;
} sd_GattsEvtSysAttrMissing;

typedef struct _sd_GattsEvtHvc {
    uint16_t handle;
} sd_GattsEvtHvc;

typedef struct _sd_GattsEvtExchangeMtuRequest {
    uint16_t client_rx_mtu;
} sd_GattsEvtExchangeMtuRequest;

typedef struct _sd_GattsEvtTimeout {
    sd_types_BleGattTimeoutSrc src;
} sd_GattsEvtTimeout;

typedef struct _sd_GattsEvtHvnTxComplete {
    uint8_t count;
} sd_GattsEvtHvnTxComplete;


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define sd_GattsServiceAddCmd_init_default       {0, false, sd_types_BleUuid_init_default, 0}
#define sd_GattsIncludeAddCmd_init_default       {0, 0, 0}
#define sd_GattsCharacteristicAddCmd_init_default {0, false, sd_types_BleGattsCharMd_init_default, false, sd_types_BleGattsAttr_init_default, false, sd_types_BleGattsCharHandles_init_default}
#define sd_GattsDescriptorAddCmd_init_default    {0, false, sd_types_BleGattsAttr_init_default, 0}
#define sd_GattsValueSetCmd_init_default         {0, 0, false, sd_types_BleGattsValue_init_default}
#define sd_GattsValueGetCmd_init_default         {0, 0, false, sd_types_BleGattsValue_init_default}
#define sd_GattsHvxCmd_init_default              {0, false, sd_types_BleGattsHvxParams_init_default}
#define sd_GattsServiceChangedCmd_init_default   {0, 0, 0}
#define sd_GattsRwAuthorizeReplyCmd_init_default {0, false, sd_types_BleGattsRwAuthorizeReplyParams_init_default}
#define sd_GattsSysAttrSetCmd_init_default       {0, {0, {0}}, 0, 0}
#define sd_GattsSysAttrGetCmd_init_default       {0, {0, {0}}, 0, 0}
#define sd_GattsInitialUserHandleGetCmd_init_default {0}
#define sd_GattsAttrGetCmd_init_default          {0, false, sd_types_BleUuid_init_default, false, sd_types_BleGattsAttrMd_init_default}
#define sd_GattsExchangeMtuReplyCmd_init_default {0, 0}
#define sd_GattsServiceAddRsp_init_default       {0, 0}
#define sd_GattsIncludeAddRsp_init_default       {0, 0}
#define sd_GattsCharacteristicAddRsp_init_default {0, false, sd_types_BleGattsCharHandles_init_default}
#define sd_GattsDescriptorAddRsp_init_default    {0, 0}
#define sd_GattsValueSetRsp_init_default         {0}
#define sd_GattsValueGetRsp_init_default         {0, false, sd_types_BleGattsValue_init_default}
#define sd_GattsHvxRsp_init_default              {0, false, sd_types_BleGattsHvxParams_init_default}
#define sd_GattsServiceChangedRsp_init_default   {0}
#define sd_GattsRwAuthorizeReplyRsp_init_default {0}
#define sd_GattsSysAttrSetRsp_init_default       {0}
#define sd_GattsSysAttrGetRsp_init_default       {0, {0, {0}}, 0, 0}
#define sd_GattsInitialUserHandleGetRsp_init_default {0, 0}
#define sd_GattsAttrGetRsp_init_default          {0, false, sd_types_BleUuid_init_default, false, sd_types_BleGattsAttrMd_init_default}
#define sd_GattsExchangeMtuReplyRsp_init_default {0}
#define sd_GattsEvtWrite_init_default            {0, false, sd_types_BleUuid_init_default, _sd_types_BleGattsOp_MIN, 0, 0, 0, {0, {0}}}
#define sd_GattsEvtRead_init_default             {0, false, sd_types_BleUuid_init_default, 0}
#define sd_GattsEvtRwAuthorizeRequest_init_default {_sd_types_BleGattsAuthorizeType_MIN, 0, {sd_GattsEvtRead_init_default}}
#define sd_GattsEvtSysAttrMissing_init_default   {0}
#define sd_GattsEvtHvc_init_default              {0}
#define sd_GattsEvtExchangeMtuRequest_init_default {0}
#define sd_GattsEvtTimeout_init_default          {_sd_types_BleGattTimeoutSrc_MIN}
#define sd_GattsEvtHvnTxComplete_init_default    {0}
#define sd_GattsServiceAddCmd_init_zero          {0, false, sd_types_BleUuid_init_zero, 0}
#define sd_GattsIncludeAddCmd_init_zero          {0, 0, 0}
#define sd_GattsCharacteristicAddCmd_init_zero   {0, false, sd_types_BleGattsCharMd_init_zero, false, sd_types_BleGattsAttr_init_zero, false, sd_types_BleGattsCharHandles_init_zero}
#define sd_GattsDescriptorAddCmd_init_zero       {0, false, sd_types_BleGattsAttr_init_zero, 0}
#define sd_GattsValueSetCmd_init_zero            {0, 0, false, sd_types_BleGattsValue_init_zero}
#define sd_GattsValueGetCmd_init_zero            {0, 0, false, sd_types_BleGattsValue_init_zero}
#define sd_GattsHvxCmd_init_zero                 {0, false, sd_types_BleGattsHvxParams_init_zero}
#define sd_GattsServiceChangedCmd_init_zero      {0, 0, 0}
#define sd_GattsRwAuthorizeReplyCmd_init_zero    {0, false, sd_types_BleGattsRwAuthorizeReplyParams_init_zero}
#define sd_GattsSysAttrSetCmd_init_zero          {0, {0, {0}}, 0, 0}
#define sd_GattsSysAttrGetCmd_init_zero          {0, {0, {0}}, 0, 0}
#define sd_GattsInitialUserHandleGetCmd_init_zero {0}
#define sd_GattsAttrGetCmd_init_zero             {0, false, sd_types_BleUuid_init_zero, false, sd_types_BleGattsAttrMd_init_zero}
#define sd_GattsExchangeMtuReplyCmd_init_zero    {0, 0}
#define sd_GattsServiceAddRsp_init_zero          {0, 0}
#define sd_GattsIncludeAddRsp_init_zero          {0, 0}
#define sd_GattsCharacteristicAddRsp_init_zero   {0, false, sd_types_BleGattsCharHandles_init_zero}
#define sd_GattsDescriptorAddRsp_init_zero       {0, 0}
#define sd_GattsValueSetRsp_init_zero            {0}
#define sd_GattsValueGetRsp_init_zero            {0, false, sd_types_BleGattsValue_init_zero}
#define sd_GattsHvxRsp_init_zero                 {0, false, sd_types_BleGattsHvxParams_init_zero}
#define sd_GattsServiceChangedRsp_init_zero      {0}
#define sd_GattsRwAuthorizeReplyRsp_init_zero    {0}
#define sd_GattsSysAttrSetRsp_init_zero          {0}
#define sd_GattsSysAttrGetRsp_init_zero          {0, {0, {0}}, 0, 0}
#define sd_GattsInitialUserHandleGetRsp_init_zero {0, 0}
#define sd_GattsAttrGetRsp_init_zero             {0, false, sd_types_BleUuid_init_zero, false, sd_types_BleGattsAttrMd_init_zero}
#define sd_GattsExchangeMtuReplyRsp_init_zero    {0}
#define sd_GattsEvtWrite_init_zero               {0, false, sd_types_BleUuid_init_zero, _sd_types_BleGattsOp_MIN, 0, 0, 0, {0, {0}}}
#define sd_GattsEvtRead_init_zero                {0, false, sd_types_BleUuid_init_zero, 0}
#define sd_GattsEvtRwAuthorizeRequest_init_zero  {_sd_types_BleGattsAuthorizeType_MIN, 0, {sd_GattsEvtRead_init_zero}}
#define sd_GattsEvtSysAttrMissing_init_zero      {0}
#define sd_GattsEvtHvc_init_zero                 {0}
#define sd_GattsEvtExchangeMtuRequest_init_zero  {0}
#define sd_GattsEvtTimeout_init_zero             {_sd_types_BleGattTimeoutSrc_MIN}
#define sd_GattsEvtHvnTxComplete_init_zero       {0}

/* Field tags (for use in manual encoding/decoding) */
#define sd_GattsServiceAddCmd_type_tag           1
#define sd_GattsServiceAddCmd_uuid_tag           2
#define sd_GattsServiceAddCmd_handle_tag         3
#define sd_GattsIncludeAddCmd_service_handle_tag 1
#define sd_GattsIncludeAddCmd_inc_srvc_handle_tag 2
#define sd_GattsIncludeAddCmd_include_handle_tag 3
#define sd_GattsCharacteristicAddCmd_service_handle_tag 1
#define sd_GattsCharacteristicAddCmd_char_md_tag 2
#define sd_GattsCharacteristicAddCmd_attr_char_value_tag 3
#define sd_GattsCharacteristicAddCmd_handles_tag 4
#define sd_GattsDescriptorAddCmd_char_handle_tag 1
#define sd_GattsDescriptorAddCmd_attr_tag        2
#define sd_GattsDescriptorAddCmd_handle_tag      3
#define sd_GattsValueSetCmd_conn_handle_tag      1
#define sd_GattsValueSetCmd_handle_tag           2
#define sd_GattsValueSetCmd_value_tag            3
#define sd_GattsValueGetCmd_conn_handle_tag      1
#define sd_GattsValueGetCmd_handle_tag           2
#define sd_GattsValueGetCmd_value_tag            3
#define sd_GattsHvxCmd_conn_handle_tag           1
#define sd_GattsHvxCmd_hvx_params_tag            2
#define sd_GattsServiceChangedCmd_conn_handle_tag 1
#define sd_GattsServiceChangedCmd_start_handle_tag 2
#define sd_GattsServiceChangedCmd_end_handle_tag 3
#define sd_GattsRwAuthorizeReplyCmd_conn_handle_tag 1
#define sd_GattsRwAuthorizeReplyCmd_rw_authorize_reply_params_tag 2
#define sd_GattsSysAttrSetCmd_conn_handle_tag    1
#define sd_GattsSysAttrSetCmd_sys_attr_data_tag  2
#define sd_GattsSysAttrSetCmd_len_tag            3
#define sd_GattsSysAttrSetCmd_flags_tag          4
#define sd_GattsSysAttrGetCmd_conn_handle_tag    1
#define sd_GattsSysAttrGetCmd_sys_attr_data_tag  2
#define sd_GattsSysAttrGetCmd_len_tag            3
#define sd_GattsSysAttrGetCmd_flags_tag          4
#define sd_GattsInitialUserHandleGetCmd_handle_tag 1
#define sd_GattsAttrGetCmd_handle_tag            1
#define sd_GattsAttrGetCmd_uuid_tag              2
#define sd_GattsAttrGetCmd_attr_md_tag           3
#define sd_GattsExchangeMtuReplyCmd_conn_handle_tag 1
#define sd_GattsExchangeMtuReplyCmd_server_rx_mtu_tag 2
#define sd_GattsServiceAddRsp_ret_code_tag       1
#define sd_GattsServiceAddRsp_handle_tag         2
#define sd_GattsIncludeAddRsp_ret_code_tag       1
#define sd_GattsIncludeAddRsp_include_handle_tag 2
#define sd_GattsCharacteristicAddRsp_ret_code_tag 1
#define sd_GattsCharacteristicAddRsp_handles_tag 2
#define sd_GattsDescriptorAddRsp_ret_code_tag    1
#define sd_GattsDescriptorAddRsp_handle_tag      2
#define sd_GattsValueSetRsp_ret_code_tag         1
#define sd_GattsValueGetRsp_ret_code_tag         1
#define sd_GattsValueGetRsp_value_tag            2
#define sd_GattsHvxRsp_ret_code_tag              1
#define sd_GattsHvxRsp_hvx_params_tag            2
#define sd_GattsServiceChangedRsp_ret_code_tag   1
#define sd_GattsRwAuthorizeReplyRsp_ret_code_tag 1
#define sd_GattsSysAttrSetRsp_ret_code_tag       1
#define sd_GattsSysAttrGetRsp_ret_code_tag       1
#define sd_GattsSysAttrGetRsp_sys_attr_data_tag  2
#define sd_GattsSysAttrGetRsp_len_tag            3
#define sd_GattsSysAttrGetRsp_flags_tag          4
#define sd_GattsInitialUserHandleGetRsp_ret_code_tag 1
#define sd_GattsInitialUserHandleGetRsp_handle_tag 2
#define sd_GattsAttrGetRsp_ret_code_tag          1
#define sd_GattsAttrGetRsp_uuid_tag              2
#define sd_GattsAttrGetRsp_attr_md_tag           3
#define sd_GattsExchangeMtuReplyRsp_ret_code_tag 1
#define sd_GattsEvtWrite_handle_tag              1
#define sd_GattsEvtWrite_uuid_tag                2
#define sd_GattsEvtWrite_op_tag                  3
#define sd_GattsEvtWrite_auth_required_tag       4
#define sd_GattsEvtWrite_offset_tag              5
#define sd_GattsEvtWrite_len_tag                 6
#define sd_GattsEvtWrite_data_tag                7
#define sd_GattsEvtRead_handle_tag               1
#define sd_GattsEvtRead_uuid_tag                 2
#define sd_GattsEvtRead_offset_tag               3
#define sd_GattsEvtRwAuthorizeRequest_type_tag   1
#define sd_GattsEvtRwAuthorizeRequest_read_tag   2
#define sd_GattsEvtRwAuthorizeRequest_write_tag  3
#define sd_GattsEvtSysAttrMissing_hint_tag       1
#define sd_GattsEvtHvc_handle_tag                1
#define sd_GattsEvtExchangeMtuRequest_client_rx_mtu_tag 1
#define sd_GattsEvtTimeout_src_tag               1
#define sd_GattsEvtHvnTxComplete_count_tag       1

/* Struct field encoding specification for nanopb */
#define sd_GattsServiceAddCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   type,              1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  uuid,              2) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            3)
#define sd_GattsServiceAddCmd_CALLBACK NULL
#define sd_GattsServiceAddCmd_DEFAULT NULL
#define sd_GattsServiceAddCmd_uuid_MSGTYPE sd_types_BleUuid

#define sd_GattsIncludeAddCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   service_handle,    1) \
X(a, STATIC,   SINGULAR, UINT32,   inc_srvc_handle,   2) \
X(a, STATIC,   SINGULAR, UINT32,   include_handle,    3)
#define sd_GattsIncludeAddCmd_CALLBACK NULL
#define sd_GattsIncludeAddCmd_DEFAULT NULL

#define sd_GattsCharacteristicAddCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   service_handle,    1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  char_md,           2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  attr_char_value,   3) \
X(a, STATIC,   OPTIONAL, MESSAGE,  handles,           4)
#define sd_GattsCharacteristicAddCmd_CALLBACK NULL
#define sd_GattsCharacteristicAddCmd_DEFAULT NULL
#define sd_GattsCharacteristicAddCmd_char_md_MSGTYPE sd_types_BleGattsCharMd
#define sd_GattsCharacteristicAddCmd_attr_char_value_MSGTYPE sd_types_BleGattsAttr
#define sd_GattsCharacteristicAddCmd_handles_MSGTYPE sd_types_BleGattsCharHandles

#define sd_GattsDescriptorAddCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   char_handle,       1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  attr,              2) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            3)
#define sd_GattsDescriptorAddCmd_CALLBACK NULL
#define sd_GattsDescriptorAddCmd_DEFAULT NULL
#define sd_GattsDescriptorAddCmd_attr_MSGTYPE sd_types_BleGattsAttr

#define sd_GattsValueSetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  value,             3)
#define sd_GattsValueSetCmd_CALLBACK NULL
#define sd_GattsValueSetCmd_DEFAULT NULL
#define sd_GattsValueSetCmd_value_MSGTYPE sd_types_BleGattsValue

#define sd_GattsValueGetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  value,             3)
#define sd_GattsValueGetCmd_CALLBACK NULL
#define sd_GattsValueGetCmd_DEFAULT NULL
#define sd_GattsValueGetCmd_value_MSGTYPE sd_types_BleGattsValue

#define sd_GattsHvxCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  hvx_params,        2)
#define sd_GattsHvxCmd_CALLBACK NULL
#define sd_GattsHvxCmd_DEFAULT NULL
#define sd_GattsHvxCmd_hvx_params_MSGTYPE sd_types_BleGattsHvxParams

#define sd_GattsServiceChangedCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, UINT32,   start_handle,      2) \
X(a, STATIC,   SINGULAR, UINT32,   end_handle,        3)
#define sd_GattsServiceChangedCmd_CALLBACK NULL
#define sd_GattsServiceChangedCmd_DEFAULT NULL

#define sd_GattsRwAuthorizeReplyCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  rw_authorize_reply_params,   2)
#define sd_GattsRwAuthorizeReplyCmd_CALLBACK NULL
#define sd_GattsRwAuthorizeReplyCmd_DEFAULT NULL
#define sd_GattsRwAuthorizeReplyCmd_rw_authorize_reply_params_MSGTYPE sd_types_BleGattsRwAuthorizeReplyParams

#define sd_GattsSysAttrSetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, BYTES,    sys_attr_data,     2) \
X(a, STATIC,   SINGULAR, UINT32,   len,               3) \
X(a, STATIC,   SINGULAR, UINT32,   flags,             4)
#define sd_GattsSysAttrSetCmd_CALLBACK NULL
#define sd_GattsSysAttrSetCmd_DEFAULT NULL

#define sd_GattsSysAttrGetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, BYTES,    sys_attr_data,     2) \
X(a, STATIC,   SINGULAR, UINT32,   len,               3) \
X(a, STATIC,   SINGULAR, UINT32,   flags,             4)
#define sd_GattsSysAttrGetCmd_CALLBACK NULL
#define sd_GattsSysAttrGetCmd_DEFAULT NULL

#define sd_GattsInitialUserHandleGetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            1)
#define sd_GattsInitialUserHandleGetCmd_CALLBACK NULL
#define sd_GattsInitialUserHandleGetCmd_DEFAULT NULL

#define sd_GattsAttrGetCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  uuid,              2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  attr_md,           3)
#define sd_GattsAttrGetCmd_CALLBACK NULL
#define sd_GattsAttrGetCmd_DEFAULT NULL
#define sd_GattsAttrGetCmd_uuid_MSGTYPE sd_types_BleUuid
#define sd_GattsAttrGetCmd_attr_md_MSGTYPE sd_types_BleGattsAttrMd

#define sd_GattsExchangeMtuReplyCmd_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   SINGULAR, UINT32,   server_rx_mtu,     2)
#define sd_GattsExchangeMtuReplyCmd_CALLBACK NULL
#define sd_GattsExchangeMtuReplyCmd_DEFAULT NULL

#define sd_GattsServiceAddRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            2)
#define sd_GattsServiceAddRsp_CALLBACK NULL
#define sd_GattsServiceAddRsp_DEFAULT NULL

#define sd_GattsIncludeAddRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   SINGULAR, UINT32,   include_handle,    2)
#define sd_GattsIncludeAddRsp_CALLBACK NULL
#define sd_GattsIncludeAddRsp_DEFAULT NULL

#define sd_GattsCharacteristicAddRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  handles,           2)
#define sd_GattsCharacteristicAddRsp_CALLBACK NULL
#define sd_GattsCharacteristicAddRsp_DEFAULT NULL
#define sd_GattsCharacteristicAddRsp_handles_MSGTYPE sd_types_BleGattsCharHandles

#define sd_GattsDescriptorAddRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            2)
#define sd_GattsDescriptorAddRsp_CALLBACK NULL
#define sd_GattsDescriptorAddRsp_DEFAULT NULL

#define sd_GattsValueSetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1)
#define sd_GattsValueSetRsp_CALLBACK NULL
#define sd_GattsValueSetRsp_DEFAULT NULL

#define sd_GattsValueGetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  value,             2)
#define sd_GattsValueGetRsp_CALLBACK NULL
#define sd_GattsValueGetRsp_DEFAULT NULL
#define sd_GattsValueGetRsp_value_MSGTYPE sd_types_BleGattsValue

#define sd_GattsHvxRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  hvx_params,        2)
#define sd_GattsHvxRsp_CALLBACK NULL
#define sd_GattsHvxRsp_DEFAULT NULL
#define sd_GattsHvxRsp_hvx_params_MSGTYPE sd_types_BleGattsHvxParams

#define sd_GattsServiceChangedRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1)
#define sd_GattsServiceChangedRsp_CALLBACK NULL
#define sd_GattsServiceChangedRsp_DEFAULT NULL

#define sd_GattsRwAuthorizeReplyRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1)
#define sd_GattsRwAuthorizeReplyRsp_CALLBACK NULL
#define sd_GattsRwAuthorizeReplyRsp_DEFAULT NULL

#define sd_GattsSysAttrSetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1)
#define sd_GattsSysAttrSetRsp_CALLBACK NULL
#define sd_GattsSysAttrSetRsp_DEFAULT NULL

#define sd_GattsSysAttrGetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   SINGULAR, BYTES,    sys_attr_data,     2) \
X(a, STATIC,   SINGULAR, UINT32,   len,               3) \
X(a, STATIC,   SINGULAR, UINT32,   flags,             4)
#define sd_GattsSysAttrGetRsp_CALLBACK NULL
#define sd_GattsSysAttrGetRsp_DEFAULT NULL

#define sd_GattsInitialUserHandleGetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            2)
#define sd_GattsInitialUserHandleGetRsp_CALLBACK NULL
#define sd_GattsInitialUserHandleGetRsp_DEFAULT NULL

#define sd_GattsAttrGetRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  uuid,              2) \
X(a, STATIC,   OPTIONAL, MESSAGE,  attr_md,           3)
#define sd_GattsAttrGetRsp_CALLBACK NULL
#define sd_GattsAttrGetRsp_DEFAULT NULL
#define sd_GattsAttrGetRsp_uuid_MSGTYPE sd_types_BleUuid
#define sd_GattsAttrGetRsp_attr_md_MSGTYPE sd_types_BleGattsAttrMd

#define sd_GattsExchangeMtuReplyRsp_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   ret_code,          1)
#define sd_GattsExchangeMtuReplyRsp_CALLBACK NULL
#define sd_GattsExchangeMtuReplyRsp_DEFAULT NULL

#define sd_GattsEvtWrite_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  uuid,              2) \
X(a, STATIC,   SINGULAR, UENUM,    op,                3) \
X(a, STATIC,   SINGULAR, BOOL,     auth_required,     4) \
X(a, STATIC,   SINGULAR, UINT32,   offset,            5) \
X(a, STATIC,   SINGULAR, UINT32,   len,               6) \
X(a, STATIC,   SINGULAR, BYTES,    data,              7)
#define sd_GattsEvtWrite_CALLBACK NULL
#define sd_GattsEvtWrite_DEFAULT NULL
#define sd_GattsEvtWrite_uuid_MSGTYPE sd_types_BleUuid

#define sd_GattsEvtRead_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            1) \
X(a, STATIC,   OPTIONAL, MESSAGE,  uuid,              2) \
X(a, STATIC,   SINGULAR, UINT32,   offset,            3)
#define sd_GattsEvtRead_CALLBACK NULL
#define sd_GattsEvtRead_DEFAULT NULL
#define sd_GattsEvtRead_uuid_MSGTYPE sd_types_BleUuid

#define sd_GattsEvtRwAuthorizeRequest_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UENUM,    type,              1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (request,read,request.read),   2) \
X(a, STATIC,   ONEOF,    MESSAGE,  (request,write,request.write),   3)
#define sd_GattsEvtRwAuthorizeRequest_CALLBACK NULL
#define sd_GattsEvtRwAuthorizeRequest_DEFAULT NULL
#define sd_GattsEvtRwAuthorizeRequest_request_read_MSGTYPE sd_GattsEvtRead
#define sd_GattsEvtRwAuthorizeRequest_request_write_MSGTYPE sd_GattsEvtWrite

#define sd_GattsEvtSysAttrMissing_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   hint,              1)
#define sd_GattsEvtSysAttrMissing_CALLBACK NULL
#define sd_GattsEvtSysAttrMissing_DEFAULT NULL

#define sd_GattsEvtHvc_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   handle,            1)
#define sd_GattsEvtHvc_CALLBACK NULL
#define sd_GattsEvtHvc_DEFAULT NULL

#define sd_GattsEvtExchangeMtuRequest_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   client_rx_mtu,     1)
#define sd_GattsEvtExchangeMtuRequest_CALLBACK NULL
#define sd_GattsEvtExchangeMtuRequest_DEFAULT NULL

#define sd_GattsEvtTimeout_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UENUM,    src,               1)
#define sd_GattsEvtTimeout_CALLBACK NULL
#define sd_GattsEvtTimeout_DEFAULT NULL

#define sd_GattsEvtHvnTxComplete_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   count,             1)
#define sd_GattsEvtHvnTxComplete_CALLBACK NULL
#define sd_GattsEvtHvnTxComplete_DEFAULT NULL

extern const pb_msgdesc_t sd_GattsServiceAddCmd_msg;
extern const pb_msgdesc_t sd_GattsIncludeAddCmd_msg;
extern const pb_msgdesc_t sd_GattsCharacteristicAddCmd_msg;
extern const pb_msgdesc_t sd_GattsDescriptorAddCmd_msg;
extern const pb_msgdesc_t sd_GattsValueSetCmd_msg;
extern const pb_msgdesc_t sd_GattsValueGetCmd_msg;
extern const pb_msgdesc_t sd_GattsHvxCmd_msg;
extern const pb_msgdesc_t sd_GattsServiceChangedCmd_msg;
extern const pb_msgdesc_t sd_GattsRwAuthorizeReplyCmd_msg;
extern const pb_msgdesc_t sd_GattsSysAttrSetCmd_msg;
extern const pb_msgdesc_t sd_GattsSysAttrGetCmd_msg;
extern const pb_msgdesc_t sd_GattsInitialUserHandleGetCmd_msg;
extern const pb_msgdesc_t sd_GattsAttrGetCmd_msg;
extern const pb_msgdesc_t sd_GattsExchangeMtuReplyCmd_msg;
extern const pb_msgdesc_t sd_GattsServiceAddRsp_msg;
extern const pb_msgdesc_t sd_GattsIncludeAddRsp_msg;
extern const pb_msgdesc_t sd_GattsCharacteristicAddRsp_msg;
extern const pb_msgdesc_t sd_GattsDescriptorAddRsp_msg;
extern const pb_msgdesc_t sd_GattsValueSetRsp_msg;
extern const pb_msgdesc_t sd_GattsValueGetRsp_msg;
extern const pb_msgdesc_t sd_GattsHvxRsp_msg;
extern const pb_msgdesc_t sd_GattsServiceChangedRsp_msg;
extern const pb_msgdesc_t sd_GattsRwAuthorizeReplyRsp_msg;
extern const pb_msgdesc_t sd_GattsSysAttrSetRsp_msg;
extern const pb_msgdesc_t sd_GattsSysAttrGetRsp_msg;
extern const pb_msgdesc_t sd_GattsInitialUserHandleGetRsp_msg;
extern const pb_msgdesc_t sd_GattsAttrGetRsp_msg;
extern const pb_msgdesc_t sd_GattsExchangeMtuReplyRsp_msg;
extern const pb_msgdesc_t sd_GattsEvtWrite_msg;
extern const pb_msgdesc_t sd_GattsEvtRead_msg;
extern const pb_msgdesc_t sd_GattsEvtRwAuthorizeRequest_msg;
extern const pb_msgdesc_t sd_GattsEvtSysAttrMissing_msg;
extern const pb_msgdesc_t sd_GattsEvtHvc_msg;
extern const pb_msgdesc_t sd_GattsEvtExchangeMtuRequest_msg;
extern const pb_msgdesc_t sd_GattsEvtTimeout_msg;
extern const pb_msgdesc_t sd_GattsEvtHvnTxComplete_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define sd_GattsServiceAddCmd_fields &sd_GattsServiceAddCmd_msg
#define sd_GattsIncludeAddCmd_fields &sd_GattsIncludeAddCmd_msg
#define sd_GattsCharacteristicAddCmd_fields &sd_GattsCharacteristicAddCmd_msg
#define sd_GattsDescriptorAddCmd_fields &sd_GattsDescriptorAddCmd_msg
#define sd_GattsValueSetCmd_fields &sd_GattsValueSetCmd_msg
#define sd_GattsValueGetCmd_fields &sd_GattsValueGetCmd_msg
#define sd_GattsHvxCmd_fields &sd_GattsHvxCmd_msg
#define sd_GattsServiceChangedCmd_fields &sd_GattsServiceChangedCmd_msg
#define sd_GattsRwAuthorizeReplyCmd_fields &sd_GattsRwAuthorizeReplyCmd_msg
#define sd_GattsSysAttrSetCmd_fields &sd_GattsSysAttrSetCmd_msg
#define sd_GattsSysAttrGetCmd_fields &sd_GattsSysAttrGetCmd_msg
#define sd_GattsInitialUserHandleGetCmd_fields &sd_GattsInitialUserHandleGetCmd_msg
#define sd_GattsAttrGetCmd_fields &sd_GattsAttrGetCmd_msg
#define sd_GattsExchangeMtuReplyCmd_fields &sd_GattsExchangeMtuReplyCmd_msg
#define sd_GattsServiceAddRsp_fields &sd_GattsServiceAddRsp_msg
#define sd_GattsIncludeAddRsp_fields &sd_GattsIncludeAddRsp_msg
#define sd_GattsCharacteristicAddRsp_fields &sd_GattsCharacteristicAddRsp_msg
#define sd_GattsDescriptorAddRsp_fields &sd_GattsDescriptorAddRsp_msg
#define sd_GattsValueSetRsp_fields &sd_GattsValueSetRsp_msg
#define sd_GattsValueGetRsp_fields &sd_GattsValueGetRsp_msg
#define sd_GattsHvxRsp_fields &sd_GattsHvxRsp_msg
#define sd_GattsServiceChangedRsp_fields &sd_GattsServiceChangedRsp_msg
#define sd_GattsRwAuthorizeReplyRsp_fields &sd_GattsRwAuthorizeReplyRsp_msg
#define sd_GattsSysAttrSetRsp_fields &sd_GattsSysAttrSetRsp_msg
#define sd_GattsSysAttrGetRsp_fields &sd_GattsSysAttrGetRsp_msg
#define sd_GattsInitialUserHandleGetRsp_fields &sd_GattsInitialUserHandleGetRsp_msg
#define sd_GattsAttrGetRsp_fields &sd_GattsAttrGetRsp_msg
#define sd_GattsExchangeMtuReplyRsp_fields &sd_GattsExchangeMtuReplyRsp_msg
#define sd_GattsEvtWrite_fields &sd_GattsEvtWrite_msg
#define sd_GattsEvtRead_fields &sd_GattsEvtRead_msg
#define sd_GattsEvtRwAuthorizeRequest_fields &sd_GattsEvtRwAuthorizeRequest_msg
#define sd_GattsEvtSysAttrMissing_fields &sd_GattsEvtSysAttrMissing_msg
#define sd_GattsEvtHvc_fields &sd_GattsEvtHvc_msg
#define sd_GattsEvtExchangeMtuRequest_fields &sd_GattsEvtExchangeMtuRequest_msg
#define sd_GattsEvtTimeout_fields &sd_GattsEvtTimeout_msg
#define sd_GattsEvtHvnTxComplete_fields &sd_GattsEvtHvnTxComplete_msg

/* Maximum encoded size of messages (where known) */
#define SD_SOFTDEVICE_GATTS_PB_H_MAX_SIZE        sd_GattsCharacteristicAddCmd_size
#define sd_GattsAttrGetCmd_size                  39
#define sd_GattsAttrGetRsp_size                  41
#define sd_GattsCharacteristicAddCmd_size        1232
#define sd_GattsCharacteristicAddRsp_size        24
#define sd_GattsDescriptorAddCmd_size            573
#define sd_GattsDescriptorAddRsp_size            10
#define sd_GattsEvtExchangeMtuRequest_size       4
#define sd_GattsEvtHvc_size                      4
#define sd_GattsEvtHvnTxComplete_size            3
#define sd_GattsEvtRead_size                     17
#define sd_GattsEvtRwAuthorizeRequest_size       545
#define sd_GattsEvtSysAttrMissing_size           3
#define sd_GattsEvtTimeout_size                  2
#define sd_GattsEvtWrite_size                    540
#define sd_GattsExchangeMtuReplyCmd_size         8
#define sd_GattsExchangeMtuReplyRsp_size         6
#define sd_GattsHvxCmd_size                      537
#define sd_GattsHvxRsp_size                      539
#define sd_GattsIncludeAddCmd_size               12
#define sd_GattsIncludeAddRsp_size               10
#define sd_GattsInitialUserHandleGetCmd_size     4
#define sd_GattsInitialUserHandleGetRsp_size     10
#define sd_GattsRwAuthorizeReplyCmd_size         1074
#define sd_GattsRwAuthorizeReplyRsp_size         6
#define sd_GattsServiceAddCmd_size               16
#define sd_GattsServiceAddRsp_size               10
#define sd_GattsServiceChangedCmd_size           12
#define sd_GattsServiceChangedRsp_size           6
#define sd_GattsSysAttrGetCmd_size               265
#define sd_GattsSysAttrGetRsp_size               267
#define sd_GattsSysAttrSetCmd_size               265
#define sd_GattsSysAttrSetRsp_size               6
#define sd_GattsValueGetCmd_size                 534
#define sd_GattsValueGetRsp_size                 532
#define sd_GattsValueSetCmd_size                 534
#define sd_GattsValueSetRsp_size                 6

#ifdef __cplusplus
} /* extern "C" */
#endif

#endif