simplersble 0.10.4-dev50

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
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.9.1 */

#ifndef PB_SD_SOFTDEVICE_PB_H_INCLUDED
#define PB_SD_SOFTDEVICE_PB_H_INCLUDED
#include "nanopb/pb.h"
#include "protocol/softdevice_gap.pb.h"
#include "protocol/softdevice_gattc.pb.h"
#include "protocol/softdevice_gatts.pb.h"

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

/* Struct definitions */
/* SoftDevice GAP commands */
typedef struct _sd_Command {
    pb_size_t which_cmd;
    union {
        sd_GapAddrSetCmd gap_addr_set;
        sd_GapAddrGetCmd gap_addr_get;
        sd_GapWhitelistSetCmd gap_whitelist_set;
        sd_GapDeviceIdentitiesSetCmd gap_device_identities_set;
        sd_GapPrivacySetCmd gap_privacy_set;
        sd_GapPrivacyGetCmd gap_privacy_get;
        sd_GapAdvSetConfigureCmd gap_adv_set_configure;
        sd_GapAdvStartCmd gap_adv_start;
        sd_GapAdvStopCmd gap_adv_stop;
        sd_GapConnParamUpdateCmd gap_conn_param_update;
        sd_GapDisconnectCmd gap_disconnect;
        sd_GapTxPowerSetCmd gap_tx_power_set;
        sd_GapAppearanceSetCmd gap_appearance_set;
        sd_GapAppearanceGetCmd gap_appearance_get;
        sd_GapPpcpSetCmd gap_ppcp_set;
        sd_GapPpcpGetCmd gap_ppcp_get;
        sd_GapDeviceNameSetCmd gap_device_name_set;
        sd_GapDeviceNameGetCmd gap_device_name_get;
        sd_GapAuthenticateCmd gap_authenticate;
        sd_GapSecParamsReplyCmd gap_sec_params_reply;
        sd_GapAuthKeyReplyCmd gap_auth_key_reply;
        sd_GapLescDhkeyReplyCmd gap_lesc_dhkey_reply;
        sd_GapKeypressNotifyCmd gap_keypress_notify;
        sd_GapLescOobDataGetCmd gap_lesc_oob_data_get;
        sd_GapLescOobDataSetCmd gap_lesc_oob_data_set;
        sd_GapEncryptCmd gap_encrypt;
        sd_GapSecInfoReplyCmd gap_sec_info_reply;
        sd_GapConnSecGetCmd gap_conn_sec_get;
        sd_GapRssiStartCmd gap_rssi_start;
        sd_GapRssiStopCmd gap_rssi_stop;
        sd_GapScanStartCmd gap_scan_start;
        sd_GapScanStopCmd gap_scan_stop;
        sd_GapConnectCmd gap_connect;
        sd_GapConnectCancelCmd gap_connect_cancel;
        sd_GapRssiGetCmd gap_rssi_get;
        sd_GapPhyUpdateCmd gap_phy_update;
        sd_GapDataLengthUpdateCmd gap_data_length_update;
        sd_GapQosChannelSurveyStartCmd gap_qos_channel_survey_start;
        sd_GapQosChannelSurveyStopCmd gap_qos_channel_survey_stop;
        sd_GapAdvAddrGetCmd gap_adv_addr_get;
        sd_GapNextConnEvtCounterGetCmd gap_next_conn_evt_counter_get;
        sd_GapConnEvtTriggerStartCmd gap_conn_evt_trigger_start;
        sd_GapConnEvtTriggerStopCmd gap_conn_evt_trigger_stop;
        sd_GattcPrimaryServicesDiscoverCmd gattc_primary_services_discover;
        sd_GattcRelationshipsDiscoverCmd gattc_relationships_discover;
        sd_GattcCharacteristicsDiscoverCmd gattc_characteristics_discover;
        sd_GattcDescriptorsDiscoverCmd gattc_descriptors_discover;
        sd_GattcAttrInfoDiscoverCmd gattc_attr_info_discover;
        sd_GattcCharValueByUuidReadCmd gattc_char_value_by_uuid_read;
        sd_GattcReadCmd gattc_read;
        sd_GattcCharValuesReadCmd gattc_char_values_read;
        sd_GattcWriteCmd gattc_write;
        sd_GattcHvConfirmCmd gattc_hv_confirm;
        sd_GattcExchangeMtuRequestCmd gattc_exchange_mtu_request;
        sd_GattsServiceAddCmd gatts_service_add;
        sd_GattsIncludeAddCmd gatts_include_add;
        sd_GattsCharacteristicAddCmd gatts_characteristic_add;
        sd_GattsDescriptorAddCmd gatts_descriptor_add;
        sd_GattsValueSetCmd gatts_value_set;
        sd_GattsValueGetCmd gatts_value_get;
        sd_GattsHvxCmd gatts_hvx;
        sd_GattsServiceChangedCmd gatts_service_changed;
        sd_GattsRwAuthorizeReplyCmd gatts_rw_authorize_reply;
        sd_GattsSysAttrSetCmd gatts_sys_attr_set;
        sd_GattsSysAttrGetCmd gatts_sys_attr_get;
        sd_GattsInitialUserHandleGetCmd gatts_initial_user_handle_get;
        sd_GattsAttrGetCmd gatts_attr_get;
        sd_GattsExchangeMtuReplyCmd gatts_exchange_mtu_reply;
    } cmd;
} sd_Command;

typedef struct _sd_Response {
    pb_size_t which_rsp;
    union {
        sd_GapAddrSetRsp gap_addr_set;
        sd_GapAddrGetRsp gap_addr_get;
        sd_GapWhitelistSetRsp gap_whitelist_set;
        sd_GapDeviceIdentitiesSetRsp gap_device_identities_set;
        sd_GapPrivacySetRsp gap_privacy_set;
        sd_GapPrivacyGetRsp gap_privacy_get;
        sd_GapAdvSetConfigureRsp gap_adv_set_configure;
        sd_GapAdvStartRsp gap_adv_start;
        sd_GapAdvStopRsp gap_adv_stop;
        sd_GapConnParamUpdateRsp gap_conn_param_update;
        sd_GapDisconnectRsp gap_disconnect;
        sd_GapTxPowerSetRsp gap_tx_power_set;
        sd_GapAppearanceSetRsp gap_appearance_set;
        sd_GapAppearanceGetRsp gap_appearance_get;
        sd_GapPpcpSetRsp gap_ppcp_set;
        sd_GapPpcpGetRsp gap_ppcp_get;
        sd_GapDeviceNameSetRsp gap_device_name_set;
        sd_GapDeviceNameGetRsp gap_device_name_get;
        sd_GapAuthenticateRsp gap_authenticate;
        sd_GapSecParamsReplyRsp gap_sec_params_reply;
        sd_GapAuthKeyReplyRsp gap_auth_key_reply;
        sd_GapLescDhkeyReplyRsp gap_lesc_dhkey_reply;
        sd_GapKeypressNotifyRsp gap_keypress_notify;
        sd_GapLescOobDataGetRsp gap_lesc_oob_data_get;
        sd_GapLescOobDataSetRsp gap_lesc_oob_data_set;
        sd_GapEncryptRsp gap_encrypt;
        sd_GapSecInfoReplyRsp gap_sec_info_reply;
        sd_GapConnSecGetRsp gap_conn_sec_get;
        sd_GapRssiStartRsp gap_rssi_start;
        sd_GapRssiStopRsp gap_rssi_stop;
        sd_GapScanStartRsp gap_scan_start;
        sd_GapScanStopRsp gap_scan_stop;
        sd_GapConnectRsp gap_connect;
        sd_GapConnectCancelRsp gap_connect_cancel;
        sd_GapRssiGetRsp gap_rssi_get;
        sd_GapPhyUpdateRsp gap_phy_update;
        sd_GapDataLengthUpdateRsp gap_data_length_update;
        sd_GapQosChannelSurveyStartRsp gap_qos_channel_survey_start;
        sd_GapQosChannelSurveyStopRsp gap_qos_channel_survey_stop;
        sd_GapAdvAddrGetRsp gap_adv_addr_get;
        sd_GapNextConnEvtCounterGetRsp gap_next_conn_evt_counter_get;
        sd_GapConnEvtTriggerStartRsp gap_conn_evt_trigger_start;
        sd_GapConnEvtTriggerStopRsp gap_conn_evt_trigger_stop;
        sd_GattcPrimaryServicesDiscoverRsp gattc_primary_services_discover;
        sd_GattcRelationshipsDiscoverRsp gattc_relationships_discover;
        sd_GattcCharacteristicsDiscoverRsp gattc_characteristics_discover;
        sd_GattcDescriptorsDiscoverRsp gattc_descriptors_discover;
        sd_GattcAttrInfoDiscoverRsp gattc_attr_info_discover;
        sd_GattcCharValueByUuidReadRsp gattc_char_value_by_uuid_read;
        sd_GattcReadRsp gattc_read;
        sd_GattcCharValuesReadRsp gattc_char_values_read;
        sd_GattcWriteRsp gattc_write;
        sd_GattcHvConfirmRsp gattc_hv_confirm;
        sd_GattcExchangeMtuRequestRsp gattc_exchange_mtu_request;
        sd_GattsServiceAddRsp gatts_service_add;
        sd_GattsIncludeAddRsp gatts_include_add;
        sd_GattsCharacteristicAddRsp gatts_characteristic_add;
        sd_GattsDescriptorAddRsp gatts_descriptor_add;
        sd_GattsValueSetRsp gatts_value_set;
        sd_GattsValueGetRsp gatts_value_get;
        sd_GattsHvxRsp gatts_hvx;
        sd_GattsServiceChangedRsp gatts_service_changed;
        sd_GattsRwAuthorizeReplyRsp gatts_rw_authorize_reply;
        sd_GattsSysAttrSetRsp gatts_sys_attr_set;
        sd_GattsSysAttrGetRsp gatts_sys_attr_get;
        sd_GattsInitialUserHandleGetRsp gatts_initial_user_handle_get;
        sd_GattsAttrGetRsp gatts_attr_get;
        sd_GattsExchangeMtuReplyRsp gatts_exchange_mtu_reply;
    } rsp;
} sd_Response;

/* Union of all BLE events */
typedef struct _sd_Event {
    uint16_t conn_handle;
    pb_size_t which_evt;
    union {
        /* GAP events */
        sd_GapEvtConnected gap_connected;
        sd_GapEvtDisconnected gap_disconnected;
        sd_GapEvtConnParamUpdate gap_conn_param_update;
        sd_GapEvtSecParamsRequest gap_sec_params_request;
        sd_GapEvtSecInfoRequest gap_sec_info_request;
        sd_GapEvtPasskeyDisplay gap_passkey_display;
        sd_GapEvtKeyPressed gap_key_pressed;
        sd_GapEvtAuthKeyRequest gap_auth_key_request;
        sd_GapEvtLescDhkeyRequest gap_lesc_dhkey_request;
        sd_GapEvtAuthStatus gap_auth_status;
        sd_GapEvtConnSecUpdate gap_conn_sec_update;
        sd_GapEvtTimeout gap_timeout;
        sd_GapEvtRssiChanged gap_rssi_changed;
        sd_GapEvtAdvReport gap_adv_report;
        sd_GapEvtAdvSetTerminated gap_adv_set_terminated;
        sd_GapEvtSecRequest gap_sec_request;
        sd_GapEvtConnParamUpdateRequest gap_conn_param_update_request;
        sd_GapEvtScanReqReport gap_scan_req_report;
        sd_GapEvtPhyUpdateRequest gap_phy_update_request;
        sd_GapEvtPhyUpdate gap_phy_update;
        sd_GapEvtDataLengthUpdateRequest gap_data_length_update_request;
        sd_GapEvtDataLengthUpdate gap_data_length_update;
        sd_GapEvtQosChannelSurveyReport gap_qos_channel_survey_report;
        /* GATTC events */
        sd_GattcEvtPrimSrvcDiscRsp gattc_prim_srvc_disc_rsp;
        sd_GattcEvtRelDiscRsp gattc_rel_disc_rsp;
        sd_GattcEvtCharDiscRsp gattc_char_disc_rsp;
        sd_GattcEvtDescDiscRsp gattc_desc_disc_rsp;
        sd_GattcEvtCharValByUuidReadRsp gattc_char_val_by_uuid_read_rsp;
        sd_GattcEvtReadRsp gattc_read_rsp;
        sd_GattcEvtCharValsReadRsp gattc_char_vals_read_rsp;
        sd_GattcEvtWriteRsp gattc_write_rsp;
        sd_GattcEvtHvx gattc_hvx;
        sd_GattcEvtExchangeMtuRsp gattc_exchange_mtu_rsp;
        sd_GattcEvtTimeout gattc_timeout_gattc;
        sd_GattcEvtAttrInfoDiscRsp gattc_attr_info_disc_rsp;
        sd_GattcEvtWriteCmdTxComplete gattc_write_cmd_tx_complete;
        /* GATTS events */
        sd_GattsEvtWrite gatts_write_gatts;
        sd_GattsEvtRwAuthorizeRequest gatts_authorize_request;
        sd_GattsEvtSysAttrMissing gatts_sys_attr_missing;
        sd_GattsEvtHvc gatts_hvc;
        sd_GattsEvtExchangeMtuRequest gatts_exchange_mtu_request;
        sd_GattsEvtTimeout gatts_timeout_gatts;
        sd_GattsEvtHvnTxComplete gatts_hvn_tx_complete;
    } evt;
} sd_Event;


#ifdef __cplusplus
extern "C" {
#endif

/* Initializer values for message structs */
#define sd_Command_init_default                  {0, {sd_GapAddrSetCmd_init_default}}
#define sd_Response_init_default                 {0, {sd_GapAddrSetRsp_init_default}}
#define sd_Event_init_default                    {0, 0, {sd_GapEvtConnected_init_default}}
#define sd_Command_init_zero                     {0, {sd_GapAddrSetCmd_init_zero}}
#define sd_Response_init_zero                    {0, {sd_GapAddrSetRsp_init_zero}}
#define sd_Event_init_zero                       {0, 0, {sd_GapEvtConnected_init_zero}}

/* Field tags (for use in manual encoding/decoding) */
#define sd_Command_gap_addr_set_tag              1
#define sd_Command_gap_addr_get_tag              2
#define sd_Command_gap_whitelist_set_tag         3
#define sd_Command_gap_device_identities_set_tag 4
#define sd_Command_gap_privacy_set_tag           5
#define sd_Command_gap_privacy_get_tag           6
#define sd_Command_gap_adv_set_configure_tag     7
#define sd_Command_gap_adv_start_tag             8
#define sd_Command_gap_adv_stop_tag              9
#define sd_Command_gap_conn_param_update_tag     10
#define sd_Command_gap_disconnect_tag            11
#define sd_Command_gap_tx_power_set_tag          12
#define sd_Command_gap_appearance_set_tag        13
#define sd_Command_gap_appearance_get_tag        14
#define sd_Command_gap_ppcp_set_tag              15
#define sd_Command_gap_ppcp_get_tag              16
#define sd_Command_gap_device_name_set_tag       17
#define sd_Command_gap_device_name_get_tag       18
#define sd_Command_gap_authenticate_tag          19
#define sd_Command_gap_sec_params_reply_tag      20
#define sd_Command_gap_auth_key_reply_tag        21
#define sd_Command_gap_lesc_dhkey_reply_tag      22
#define sd_Command_gap_keypress_notify_tag       23
#define sd_Command_gap_lesc_oob_data_get_tag     24
#define sd_Command_gap_lesc_oob_data_set_tag     25
#define sd_Command_gap_encrypt_tag               26
#define sd_Command_gap_sec_info_reply_tag        27
#define sd_Command_gap_conn_sec_get_tag          28
#define sd_Command_gap_rssi_start_tag            29
#define sd_Command_gap_rssi_stop_tag             30
#define sd_Command_gap_scan_start_tag            31
#define sd_Command_gap_scan_stop_tag             32
#define sd_Command_gap_connect_tag               33
#define sd_Command_gap_connect_cancel_tag        34
#define sd_Command_gap_rssi_get_tag              35
#define sd_Command_gap_phy_update_tag            36
#define sd_Command_gap_data_length_update_tag    37
#define sd_Command_gap_qos_channel_survey_start_tag 38
#define sd_Command_gap_qos_channel_survey_stop_tag 39
#define sd_Command_gap_adv_addr_get_tag          40
#define sd_Command_gap_next_conn_evt_counter_get_tag 41
#define sd_Command_gap_conn_evt_trigger_start_tag 42
#define sd_Command_gap_conn_evt_trigger_stop_tag 43
#define sd_Command_gattc_primary_services_discover_tag 44
#define sd_Command_gattc_relationships_discover_tag 45
#define sd_Command_gattc_characteristics_discover_tag 46
#define sd_Command_gattc_descriptors_discover_tag 47
#define sd_Command_gattc_attr_info_discover_tag  48
#define sd_Command_gattc_char_value_by_uuid_read_tag 49
#define sd_Command_gattc_read_tag                50
#define sd_Command_gattc_char_values_read_tag    51
#define sd_Command_gattc_write_tag               52
#define sd_Command_gattc_hv_confirm_tag          53
#define sd_Command_gattc_exchange_mtu_request_tag 54
#define sd_Command_gatts_service_add_tag         55
#define sd_Command_gatts_include_add_tag         56
#define sd_Command_gatts_characteristic_add_tag  57
#define sd_Command_gatts_descriptor_add_tag      58
#define sd_Command_gatts_value_set_tag           59
#define sd_Command_gatts_value_get_tag           60
#define sd_Command_gatts_hvx_tag                 61
#define sd_Command_gatts_service_changed_tag     62
#define sd_Command_gatts_rw_authorize_reply_tag  63
#define sd_Command_gatts_sys_attr_set_tag        64
#define sd_Command_gatts_sys_attr_get_tag        65
#define sd_Command_gatts_initial_user_handle_get_tag 66
#define sd_Command_gatts_attr_get_tag            67
#define sd_Command_gatts_exchange_mtu_reply_tag  68
#define sd_Response_gap_addr_set_tag             1
#define sd_Response_gap_addr_get_tag             2
#define sd_Response_gap_whitelist_set_tag        3
#define sd_Response_gap_device_identities_set_tag 4
#define sd_Response_gap_privacy_set_tag          5
#define sd_Response_gap_privacy_get_tag          6
#define sd_Response_gap_adv_set_configure_tag    7
#define sd_Response_gap_adv_start_tag            8
#define sd_Response_gap_adv_stop_tag             9
#define sd_Response_gap_conn_param_update_tag    10
#define sd_Response_gap_disconnect_tag           11
#define sd_Response_gap_tx_power_set_tag         12
#define sd_Response_gap_appearance_set_tag       13
#define sd_Response_gap_appearance_get_tag       14
#define sd_Response_gap_ppcp_set_tag             15
#define sd_Response_gap_ppcp_get_tag             16
#define sd_Response_gap_device_name_set_tag      17
#define sd_Response_gap_device_name_get_tag      18
#define sd_Response_gap_authenticate_tag         19
#define sd_Response_gap_sec_params_reply_tag     20
#define sd_Response_gap_auth_key_reply_tag       21
#define sd_Response_gap_lesc_dhkey_reply_tag     22
#define sd_Response_gap_keypress_notify_tag      23
#define sd_Response_gap_lesc_oob_data_get_tag    24
#define sd_Response_gap_lesc_oob_data_set_tag    25
#define sd_Response_gap_encrypt_tag              26
#define sd_Response_gap_sec_info_reply_tag       27
#define sd_Response_gap_conn_sec_get_tag         28
#define sd_Response_gap_rssi_start_tag           29
#define sd_Response_gap_rssi_stop_tag            30
#define sd_Response_gap_scan_start_tag           31
#define sd_Response_gap_scan_stop_tag            32
#define sd_Response_gap_connect_tag              33
#define sd_Response_gap_connect_cancel_tag       34
#define sd_Response_gap_rssi_get_tag             35
#define sd_Response_gap_phy_update_tag           36
#define sd_Response_gap_data_length_update_tag   37
#define sd_Response_gap_qos_channel_survey_start_tag 38
#define sd_Response_gap_qos_channel_survey_stop_tag 39
#define sd_Response_gap_adv_addr_get_tag         40
#define sd_Response_gap_next_conn_evt_counter_get_tag 41
#define sd_Response_gap_conn_evt_trigger_start_tag 42
#define sd_Response_gap_conn_evt_trigger_stop_tag 43
#define sd_Response_gattc_primary_services_discover_tag 44
#define sd_Response_gattc_relationships_discover_tag 45
#define sd_Response_gattc_characteristics_discover_tag 46
#define sd_Response_gattc_descriptors_discover_tag 47
#define sd_Response_gattc_attr_info_discover_tag 48
#define sd_Response_gattc_char_value_by_uuid_read_tag 49
#define sd_Response_gattc_read_tag               50
#define sd_Response_gattc_char_values_read_tag   51
#define sd_Response_gattc_write_tag              52
#define sd_Response_gattc_hv_confirm_tag         53
#define sd_Response_gattc_exchange_mtu_request_tag 54
#define sd_Response_gatts_service_add_tag        55
#define sd_Response_gatts_include_add_tag        56
#define sd_Response_gatts_characteristic_add_tag 57
#define sd_Response_gatts_descriptor_add_tag     58
#define sd_Response_gatts_value_set_tag          59
#define sd_Response_gatts_value_get_tag          60
#define sd_Response_gatts_hvx_tag                61
#define sd_Response_gatts_service_changed_tag    62
#define sd_Response_gatts_rw_authorize_reply_tag 63
#define sd_Response_gatts_sys_attr_set_tag       64
#define sd_Response_gatts_sys_attr_get_tag       65
#define sd_Response_gatts_initial_user_handle_get_tag 66
#define sd_Response_gatts_attr_get_tag           67
#define sd_Response_gatts_exchange_mtu_reply_tag 68
#define sd_Event_conn_handle_tag                 1
#define sd_Event_gap_connected_tag               2
#define sd_Event_gap_disconnected_tag            3
#define sd_Event_gap_conn_param_update_tag       4
#define sd_Event_gap_sec_params_request_tag      5
#define sd_Event_gap_sec_info_request_tag        6
#define sd_Event_gap_passkey_display_tag         7
#define sd_Event_gap_key_pressed_tag             8
#define sd_Event_gap_auth_key_request_tag        9
#define sd_Event_gap_lesc_dhkey_request_tag      10
#define sd_Event_gap_auth_status_tag             11
#define sd_Event_gap_conn_sec_update_tag         12
#define sd_Event_gap_timeout_tag                 13
#define sd_Event_gap_rssi_changed_tag            14
#define sd_Event_gap_adv_report_tag              15
#define sd_Event_gap_adv_set_terminated_tag      16
#define sd_Event_gap_sec_request_tag             17
#define sd_Event_gap_conn_param_update_request_tag 18
#define sd_Event_gap_scan_req_report_tag         19
#define sd_Event_gap_phy_update_request_tag      20
#define sd_Event_gap_phy_update_tag              21
#define sd_Event_gap_data_length_update_request_tag 22
#define sd_Event_gap_data_length_update_tag      23
#define sd_Event_gap_qos_channel_survey_report_tag 24
#define sd_Event_gattc_prim_srvc_disc_rsp_tag    25
#define sd_Event_gattc_rel_disc_rsp_tag          26
#define sd_Event_gattc_char_disc_rsp_tag         27
#define sd_Event_gattc_desc_disc_rsp_tag         28
#define sd_Event_gattc_char_val_by_uuid_read_rsp_tag 29
#define sd_Event_gattc_read_rsp_tag              30
#define sd_Event_gattc_char_vals_read_rsp_tag    31
#define sd_Event_gattc_write_rsp_tag             32
#define sd_Event_gattc_hvx_tag                   33
#define sd_Event_gattc_exchange_mtu_rsp_tag      34
#define sd_Event_gattc_timeout_gattc_tag         35
#define sd_Event_gattc_attr_info_disc_rsp_tag    36
#define sd_Event_gattc_write_cmd_tx_complete_tag 37
#define sd_Event_gatts_write_gatts_tag           38
#define sd_Event_gatts_authorize_request_tag     39
#define sd_Event_gatts_sys_attr_missing_tag      40
#define sd_Event_gatts_hvc_tag                   41
#define sd_Event_gatts_exchange_mtu_request_tag  42
#define sd_Event_gatts_timeout_gatts_tag         43
#define sd_Event_gatts_hvn_tx_complete_tag       44

/* Struct field encoding specification for nanopb */
#define sd_Command_FIELDLIST(X, a) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_addr_set,cmd.gap_addr_set),   1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_addr_get,cmd.gap_addr_get),   2) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_whitelist_set,cmd.gap_whitelist_set),   3) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_device_identities_set,cmd.gap_device_identities_set),   4) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_privacy_set,cmd.gap_privacy_set),   5) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_privacy_get,cmd.gap_privacy_get),   6) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_adv_set_configure,cmd.gap_adv_set_configure),   7) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_adv_start,cmd.gap_adv_start),   8) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_adv_stop,cmd.gap_adv_stop),   9) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_conn_param_update,cmd.gap_conn_param_update),  10) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_disconnect,cmd.gap_disconnect),  11) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_tx_power_set,cmd.gap_tx_power_set),  12) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_appearance_set,cmd.gap_appearance_set),  13) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_appearance_get,cmd.gap_appearance_get),  14) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_ppcp_set,cmd.gap_ppcp_set),  15) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_ppcp_get,cmd.gap_ppcp_get),  16) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_device_name_set,cmd.gap_device_name_set),  17) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_device_name_get,cmd.gap_device_name_get),  18) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_authenticate,cmd.gap_authenticate),  19) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_sec_params_reply,cmd.gap_sec_params_reply),  20) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_auth_key_reply,cmd.gap_auth_key_reply),  21) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_lesc_dhkey_reply,cmd.gap_lesc_dhkey_reply),  22) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_keypress_notify,cmd.gap_keypress_notify),  23) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_lesc_oob_data_get,cmd.gap_lesc_oob_data_get),  24) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_lesc_oob_data_set,cmd.gap_lesc_oob_data_set),  25) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_encrypt,cmd.gap_encrypt),  26) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_sec_info_reply,cmd.gap_sec_info_reply),  27) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_conn_sec_get,cmd.gap_conn_sec_get),  28) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_rssi_start,cmd.gap_rssi_start),  29) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_rssi_stop,cmd.gap_rssi_stop),  30) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_scan_start,cmd.gap_scan_start),  31) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_scan_stop,cmd.gap_scan_stop),  32) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_connect,cmd.gap_connect),  33) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_connect_cancel,cmd.gap_connect_cancel),  34) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_rssi_get,cmd.gap_rssi_get),  35) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_phy_update,cmd.gap_phy_update),  36) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_data_length_update,cmd.gap_data_length_update),  37) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_qos_channel_survey_start,cmd.gap_qos_channel_survey_start),  38) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_qos_channel_survey_stop,cmd.gap_qos_channel_survey_stop),  39) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_adv_addr_get,cmd.gap_adv_addr_get),  40) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_next_conn_evt_counter_get,cmd.gap_next_conn_evt_counter_get),  41) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_conn_evt_trigger_start,cmd.gap_conn_evt_trigger_start),  42) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gap_conn_evt_trigger_stop,cmd.gap_conn_evt_trigger_stop),  43) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_primary_services_discover,cmd.gattc_primary_services_discover),  44) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_relationships_discover,cmd.gattc_relationships_discover),  45) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_characteristics_discover,cmd.gattc_characteristics_discover),  46) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_descriptors_discover,cmd.gattc_descriptors_discover),  47) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_attr_info_discover,cmd.gattc_attr_info_discover),  48) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_char_value_by_uuid_read,cmd.gattc_char_value_by_uuid_read),  49) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_read,cmd.gattc_read),  50) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_char_values_read,cmd.gattc_char_values_read),  51) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_write,cmd.gattc_write),  52) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_hv_confirm,cmd.gattc_hv_confirm),  53) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gattc_exchange_mtu_request,cmd.gattc_exchange_mtu_request),  54) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_service_add,cmd.gatts_service_add),  55) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_include_add,cmd.gatts_include_add),  56) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_characteristic_add,cmd.gatts_characteristic_add),  57) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_descriptor_add,cmd.gatts_descriptor_add),  58) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_value_set,cmd.gatts_value_set),  59) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_value_get,cmd.gatts_value_get),  60) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_hvx,cmd.gatts_hvx),  61) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_service_changed,cmd.gatts_service_changed),  62) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_rw_authorize_reply,cmd.gatts_rw_authorize_reply),  63) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_sys_attr_set,cmd.gatts_sys_attr_set),  64) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_sys_attr_get,cmd.gatts_sys_attr_get),  65) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_initial_user_handle_get,cmd.gatts_initial_user_handle_get),  66) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_attr_get,cmd.gatts_attr_get),  67) \
X(a, STATIC,   ONEOF,    MESSAGE,  (cmd,gatts_exchange_mtu_reply,cmd.gatts_exchange_mtu_reply),  68)
#define sd_Command_CALLBACK NULL
#define sd_Command_DEFAULT NULL
#define sd_Command_cmd_gap_addr_set_MSGTYPE sd_GapAddrSetCmd
#define sd_Command_cmd_gap_addr_get_MSGTYPE sd_GapAddrGetCmd
#define sd_Command_cmd_gap_whitelist_set_MSGTYPE sd_GapWhitelistSetCmd
#define sd_Command_cmd_gap_device_identities_set_MSGTYPE sd_GapDeviceIdentitiesSetCmd
#define sd_Command_cmd_gap_privacy_set_MSGTYPE sd_GapPrivacySetCmd
#define sd_Command_cmd_gap_privacy_get_MSGTYPE sd_GapPrivacyGetCmd
#define sd_Command_cmd_gap_adv_set_configure_MSGTYPE sd_GapAdvSetConfigureCmd
#define sd_Command_cmd_gap_adv_start_MSGTYPE sd_GapAdvStartCmd
#define sd_Command_cmd_gap_adv_stop_MSGTYPE sd_GapAdvStopCmd
#define sd_Command_cmd_gap_conn_param_update_MSGTYPE sd_GapConnParamUpdateCmd
#define sd_Command_cmd_gap_disconnect_MSGTYPE sd_GapDisconnectCmd
#define sd_Command_cmd_gap_tx_power_set_MSGTYPE sd_GapTxPowerSetCmd
#define sd_Command_cmd_gap_appearance_set_MSGTYPE sd_GapAppearanceSetCmd
#define sd_Command_cmd_gap_appearance_get_MSGTYPE sd_GapAppearanceGetCmd
#define sd_Command_cmd_gap_ppcp_set_MSGTYPE sd_GapPpcpSetCmd
#define sd_Command_cmd_gap_ppcp_get_MSGTYPE sd_GapPpcpGetCmd
#define sd_Command_cmd_gap_device_name_set_MSGTYPE sd_GapDeviceNameSetCmd
#define sd_Command_cmd_gap_device_name_get_MSGTYPE sd_GapDeviceNameGetCmd
#define sd_Command_cmd_gap_authenticate_MSGTYPE sd_GapAuthenticateCmd
#define sd_Command_cmd_gap_sec_params_reply_MSGTYPE sd_GapSecParamsReplyCmd
#define sd_Command_cmd_gap_auth_key_reply_MSGTYPE sd_GapAuthKeyReplyCmd
#define sd_Command_cmd_gap_lesc_dhkey_reply_MSGTYPE sd_GapLescDhkeyReplyCmd
#define sd_Command_cmd_gap_keypress_notify_MSGTYPE sd_GapKeypressNotifyCmd
#define sd_Command_cmd_gap_lesc_oob_data_get_MSGTYPE sd_GapLescOobDataGetCmd
#define sd_Command_cmd_gap_lesc_oob_data_set_MSGTYPE sd_GapLescOobDataSetCmd
#define sd_Command_cmd_gap_encrypt_MSGTYPE sd_GapEncryptCmd
#define sd_Command_cmd_gap_sec_info_reply_MSGTYPE sd_GapSecInfoReplyCmd
#define sd_Command_cmd_gap_conn_sec_get_MSGTYPE sd_GapConnSecGetCmd
#define sd_Command_cmd_gap_rssi_start_MSGTYPE sd_GapRssiStartCmd
#define sd_Command_cmd_gap_rssi_stop_MSGTYPE sd_GapRssiStopCmd
#define sd_Command_cmd_gap_scan_start_MSGTYPE sd_GapScanStartCmd
#define sd_Command_cmd_gap_scan_stop_MSGTYPE sd_GapScanStopCmd
#define sd_Command_cmd_gap_connect_MSGTYPE sd_GapConnectCmd
#define sd_Command_cmd_gap_connect_cancel_MSGTYPE sd_GapConnectCancelCmd
#define sd_Command_cmd_gap_rssi_get_MSGTYPE sd_GapRssiGetCmd
#define sd_Command_cmd_gap_phy_update_MSGTYPE sd_GapPhyUpdateCmd
#define sd_Command_cmd_gap_data_length_update_MSGTYPE sd_GapDataLengthUpdateCmd
#define sd_Command_cmd_gap_qos_channel_survey_start_MSGTYPE sd_GapQosChannelSurveyStartCmd
#define sd_Command_cmd_gap_qos_channel_survey_stop_MSGTYPE sd_GapQosChannelSurveyStopCmd
#define sd_Command_cmd_gap_adv_addr_get_MSGTYPE sd_GapAdvAddrGetCmd
#define sd_Command_cmd_gap_next_conn_evt_counter_get_MSGTYPE sd_GapNextConnEvtCounterGetCmd
#define sd_Command_cmd_gap_conn_evt_trigger_start_MSGTYPE sd_GapConnEvtTriggerStartCmd
#define sd_Command_cmd_gap_conn_evt_trigger_stop_MSGTYPE sd_GapConnEvtTriggerStopCmd
#define sd_Command_cmd_gattc_primary_services_discover_MSGTYPE sd_GattcPrimaryServicesDiscoverCmd
#define sd_Command_cmd_gattc_relationships_discover_MSGTYPE sd_GattcRelationshipsDiscoverCmd
#define sd_Command_cmd_gattc_characteristics_discover_MSGTYPE sd_GattcCharacteristicsDiscoverCmd
#define sd_Command_cmd_gattc_descriptors_discover_MSGTYPE sd_GattcDescriptorsDiscoverCmd
#define sd_Command_cmd_gattc_attr_info_discover_MSGTYPE sd_GattcAttrInfoDiscoverCmd
#define sd_Command_cmd_gattc_char_value_by_uuid_read_MSGTYPE sd_GattcCharValueByUuidReadCmd
#define sd_Command_cmd_gattc_read_MSGTYPE sd_GattcReadCmd
#define sd_Command_cmd_gattc_char_values_read_MSGTYPE sd_GattcCharValuesReadCmd
#define sd_Command_cmd_gattc_write_MSGTYPE sd_GattcWriteCmd
#define sd_Command_cmd_gattc_hv_confirm_MSGTYPE sd_GattcHvConfirmCmd
#define sd_Command_cmd_gattc_exchange_mtu_request_MSGTYPE sd_GattcExchangeMtuRequestCmd
#define sd_Command_cmd_gatts_service_add_MSGTYPE sd_GattsServiceAddCmd
#define sd_Command_cmd_gatts_include_add_MSGTYPE sd_GattsIncludeAddCmd
#define sd_Command_cmd_gatts_characteristic_add_MSGTYPE sd_GattsCharacteristicAddCmd
#define sd_Command_cmd_gatts_descriptor_add_MSGTYPE sd_GattsDescriptorAddCmd
#define sd_Command_cmd_gatts_value_set_MSGTYPE sd_GattsValueSetCmd
#define sd_Command_cmd_gatts_value_get_MSGTYPE sd_GattsValueGetCmd
#define sd_Command_cmd_gatts_hvx_MSGTYPE sd_GattsHvxCmd
#define sd_Command_cmd_gatts_service_changed_MSGTYPE sd_GattsServiceChangedCmd
#define sd_Command_cmd_gatts_rw_authorize_reply_MSGTYPE sd_GattsRwAuthorizeReplyCmd
#define sd_Command_cmd_gatts_sys_attr_set_MSGTYPE sd_GattsSysAttrSetCmd
#define sd_Command_cmd_gatts_sys_attr_get_MSGTYPE sd_GattsSysAttrGetCmd
#define sd_Command_cmd_gatts_initial_user_handle_get_MSGTYPE sd_GattsInitialUserHandleGetCmd
#define sd_Command_cmd_gatts_attr_get_MSGTYPE sd_GattsAttrGetCmd
#define sd_Command_cmd_gatts_exchange_mtu_reply_MSGTYPE sd_GattsExchangeMtuReplyCmd

#define sd_Response_FIELDLIST(X, a) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_addr_set,rsp.gap_addr_set),   1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_addr_get,rsp.gap_addr_get),   2) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_whitelist_set,rsp.gap_whitelist_set),   3) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_device_identities_set,rsp.gap_device_identities_set),   4) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_privacy_set,rsp.gap_privacy_set),   5) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_privacy_get,rsp.gap_privacy_get),   6) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_adv_set_configure,rsp.gap_adv_set_configure),   7) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_adv_start,rsp.gap_adv_start),   8) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_adv_stop,rsp.gap_adv_stop),   9) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_conn_param_update,rsp.gap_conn_param_update),  10) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_disconnect,rsp.gap_disconnect),  11) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_tx_power_set,rsp.gap_tx_power_set),  12) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_appearance_set,rsp.gap_appearance_set),  13) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_appearance_get,rsp.gap_appearance_get),  14) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_ppcp_set,rsp.gap_ppcp_set),  15) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_ppcp_get,rsp.gap_ppcp_get),  16) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_device_name_set,rsp.gap_device_name_set),  17) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_device_name_get,rsp.gap_device_name_get),  18) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_authenticate,rsp.gap_authenticate),  19) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_sec_params_reply,rsp.gap_sec_params_reply),  20) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_auth_key_reply,rsp.gap_auth_key_reply),  21) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_lesc_dhkey_reply,rsp.gap_lesc_dhkey_reply),  22) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_keypress_notify,rsp.gap_keypress_notify),  23) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_lesc_oob_data_get,rsp.gap_lesc_oob_data_get),  24) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_lesc_oob_data_set,rsp.gap_lesc_oob_data_set),  25) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_encrypt,rsp.gap_encrypt),  26) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_sec_info_reply,rsp.gap_sec_info_reply),  27) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_conn_sec_get,rsp.gap_conn_sec_get),  28) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_rssi_start,rsp.gap_rssi_start),  29) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_rssi_stop,rsp.gap_rssi_stop),  30) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_scan_start,rsp.gap_scan_start),  31) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_scan_stop,rsp.gap_scan_stop),  32) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_connect,rsp.gap_connect),  33) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_connect_cancel,rsp.gap_connect_cancel),  34) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_rssi_get,rsp.gap_rssi_get),  35) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_phy_update,rsp.gap_phy_update),  36) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_data_length_update,rsp.gap_data_length_update),  37) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_qos_channel_survey_start,rsp.gap_qos_channel_survey_start),  38) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_qos_channel_survey_stop,rsp.gap_qos_channel_survey_stop),  39) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_adv_addr_get,rsp.gap_adv_addr_get),  40) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_next_conn_evt_counter_get,rsp.gap_next_conn_evt_counter_get),  41) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_conn_evt_trigger_start,rsp.gap_conn_evt_trigger_start),  42) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gap_conn_evt_trigger_stop,rsp.gap_conn_evt_trigger_stop),  43) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_primary_services_discover,rsp.gattc_primary_services_discover),  44) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_relationships_discover,rsp.gattc_relationships_discover),  45) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_characteristics_discover,rsp.gattc_characteristics_discover),  46) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_descriptors_discover,rsp.gattc_descriptors_discover),  47) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_attr_info_discover,rsp.gattc_attr_info_discover),  48) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_char_value_by_uuid_read,rsp.gattc_char_value_by_uuid_read),  49) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_read,rsp.gattc_read),  50) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_char_values_read,rsp.gattc_char_values_read),  51) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_write,rsp.gattc_write),  52) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_hv_confirm,rsp.gattc_hv_confirm),  53) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gattc_exchange_mtu_request,rsp.gattc_exchange_mtu_request),  54) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_service_add,rsp.gatts_service_add),  55) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_include_add,rsp.gatts_include_add),  56) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_characteristic_add,rsp.gatts_characteristic_add),  57) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_descriptor_add,rsp.gatts_descriptor_add),  58) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_value_set,rsp.gatts_value_set),  59) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_value_get,rsp.gatts_value_get),  60) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_hvx,rsp.gatts_hvx),  61) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_service_changed,rsp.gatts_service_changed),  62) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_rw_authorize_reply,rsp.gatts_rw_authorize_reply),  63) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_sys_attr_set,rsp.gatts_sys_attr_set),  64) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_sys_attr_get,rsp.gatts_sys_attr_get),  65) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_initial_user_handle_get,rsp.gatts_initial_user_handle_get),  66) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_attr_get,rsp.gatts_attr_get),  67) \
X(a, STATIC,   ONEOF,    MESSAGE,  (rsp,gatts_exchange_mtu_reply,rsp.gatts_exchange_mtu_reply),  68)
#define sd_Response_CALLBACK NULL
#define sd_Response_DEFAULT NULL
#define sd_Response_rsp_gap_addr_set_MSGTYPE sd_GapAddrSetRsp
#define sd_Response_rsp_gap_addr_get_MSGTYPE sd_GapAddrGetRsp
#define sd_Response_rsp_gap_whitelist_set_MSGTYPE sd_GapWhitelistSetRsp
#define sd_Response_rsp_gap_device_identities_set_MSGTYPE sd_GapDeviceIdentitiesSetRsp
#define sd_Response_rsp_gap_privacy_set_MSGTYPE sd_GapPrivacySetRsp
#define sd_Response_rsp_gap_privacy_get_MSGTYPE sd_GapPrivacyGetRsp
#define sd_Response_rsp_gap_adv_set_configure_MSGTYPE sd_GapAdvSetConfigureRsp
#define sd_Response_rsp_gap_adv_start_MSGTYPE sd_GapAdvStartRsp
#define sd_Response_rsp_gap_adv_stop_MSGTYPE sd_GapAdvStopRsp
#define sd_Response_rsp_gap_conn_param_update_MSGTYPE sd_GapConnParamUpdateRsp
#define sd_Response_rsp_gap_disconnect_MSGTYPE sd_GapDisconnectRsp
#define sd_Response_rsp_gap_tx_power_set_MSGTYPE sd_GapTxPowerSetRsp
#define sd_Response_rsp_gap_appearance_set_MSGTYPE sd_GapAppearanceSetRsp
#define sd_Response_rsp_gap_appearance_get_MSGTYPE sd_GapAppearanceGetRsp
#define sd_Response_rsp_gap_ppcp_set_MSGTYPE sd_GapPpcpSetRsp
#define sd_Response_rsp_gap_ppcp_get_MSGTYPE sd_GapPpcpGetRsp
#define sd_Response_rsp_gap_device_name_set_MSGTYPE sd_GapDeviceNameSetRsp
#define sd_Response_rsp_gap_device_name_get_MSGTYPE sd_GapDeviceNameGetRsp
#define sd_Response_rsp_gap_authenticate_MSGTYPE sd_GapAuthenticateRsp
#define sd_Response_rsp_gap_sec_params_reply_MSGTYPE sd_GapSecParamsReplyRsp
#define sd_Response_rsp_gap_auth_key_reply_MSGTYPE sd_GapAuthKeyReplyRsp
#define sd_Response_rsp_gap_lesc_dhkey_reply_MSGTYPE sd_GapLescDhkeyReplyRsp
#define sd_Response_rsp_gap_keypress_notify_MSGTYPE sd_GapKeypressNotifyRsp
#define sd_Response_rsp_gap_lesc_oob_data_get_MSGTYPE sd_GapLescOobDataGetRsp
#define sd_Response_rsp_gap_lesc_oob_data_set_MSGTYPE sd_GapLescOobDataSetRsp
#define sd_Response_rsp_gap_encrypt_MSGTYPE sd_GapEncryptRsp
#define sd_Response_rsp_gap_sec_info_reply_MSGTYPE sd_GapSecInfoReplyRsp
#define sd_Response_rsp_gap_conn_sec_get_MSGTYPE sd_GapConnSecGetRsp
#define sd_Response_rsp_gap_rssi_start_MSGTYPE sd_GapRssiStartRsp
#define sd_Response_rsp_gap_rssi_stop_MSGTYPE sd_GapRssiStopRsp
#define sd_Response_rsp_gap_scan_start_MSGTYPE sd_GapScanStartRsp
#define sd_Response_rsp_gap_scan_stop_MSGTYPE sd_GapScanStopRsp
#define sd_Response_rsp_gap_connect_MSGTYPE sd_GapConnectRsp
#define sd_Response_rsp_gap_connect_cancel_MSGTYPE sd_GapConnectCancelRsp
#define sd_Response_rsp_gap_rssi_get_MSGTYPE sd_GapRssiGetRsp
#define sd_Response_rsp_gap_phy_update_MSGTYPE sd_GapPhyUpdateRsp
#define sd_Response_rsp_gap_data_length_update_MSGTYPE sd_GapDataLengthUpdateRsp
#define sd_Response_rsp_gap_qos_channel_survey_start_MSGTYPE sd_GapQosChannelSurveyStartRsp
#define sd_Response_rsp_gap_qos_channel_survey_stop_MSGTYPE sd_GapQosChannelSurveyStopRsp
#define sd_Response_rsp_gap_adv_addr_get_MSGTYPE sd_GapAdvAddrGetRsp
#define sd_Response_rsp_gap_next_conn_evt_counter_get_MSGTYPE sd_GapNextConnEvtCounterGetRsp
#define sd_Response_rsp_gap_conn_evt_trigger_start_MSGTYPE sd_GapConnEvtTriggerStartRsp
#define sd_Response_rsp_gap_conn_evt_trigger_stop_MSGTYPE sd_GapConnEvtTriggerStopRsp
#define sd_Response_rsp_gattc_primary_services_discover_MSGTYPE sd_GattcPrimaryServicesDiscoverRsp
#define sd_Response_rsp_gattc_relationships_discover_MSGTYPE sd_GattcRelationshipsDiscoverRsp
#define sd_Response_rsp_gattc_characteristics_discover_MSGTYPE sd_GattcCharacteristicsDiscoverRsp
#define sd_Response_rsp_gattc_descriptors_discover_MSGTYPE sd_GattcDescriptorsDiscoverRsp
#define sd_Response_rsp_gattc_attr_info_discover_MSGTYPE sd_GattcAttrInfoDiscoverRsp
#define sd_Response_rsp_gattc_char_value_by_uuid_read_MSGTYPE sd_GattcCharValueByUuidReadRsp
#define sd_Response_rsp_gattc_read_MSGTYPE sd_GattcReadRsp
#define sd_Response_rsp_gattc_char_values_read_MSGTYPE sd_GattcCharValuesReadRsp
#define sd_Response_rsp_gattc_write_MSGTYPE sd_GattcWriteRsp
#define sd_Response_rsp_gattc_hv_confirm_MSGTYPE sd_GattcHvConfirmRsp
#define sd_Response_rsp_gattc_exchange_mtu_request_MSGTYPE sd_GattcExchangeMtuRequestRsp
#define sd_Response_rsp_gatts_service_add_MSGTYPE sd_GattsServiceAddRsp
#define sd_Response_rsp_gatts_include_add_MSGTYPE sd_GattsIncludeAddRsp
#define sd_Response_rsp_gatts_characteristic_add_MSGTYPE sd_GattsCharacteristicAddRsp
#define sd_Response_rsp_gatts_descriptor_add_MSGTYPE sd_GattsDescriptorAddRsp
#define sd_Response_rsp_gatts_value_set_MSGTYPE sd_GattsValueSetRsp
#define sd_Response_rsp_gatts_value_get_MSGTYPE sd_GattsValueGetRsp
#define sd_Response_rsp_gatts_hvx_MSGTYPE sd_GattsHvxRsp
#define sd_Response_rsp_gatts_service_changed_MSGTYPE sd_GattsServiceChangedRsp
#define sd_Response_rsp_gatts_rw_authorize_reply_MSGTYPE sd_GattsRwAuthorizeReplyRsp
#define sd_Response_rsp_gatts_sys_attr_set_MSGTYPE sd_GattsSysAttrSetRsp
#define sd_Response_rsp_gatts_sys_attr_get_MSGTYPE sd_GattsSysAttrGetRsp
#define sd_Response_rsp_gatts_initial_user_handle_get_MSGTYPE sd_GattsInitialUserHandleGetRsp
#define sd_Response_rsp_gatts_attr_get_MSGTYPE sd_GattsAttrGetRsp
#define sd_Response_rsp_gatts_exchange_mtu_reply_MSGTYPE sd_GattsExchangeMtuReplyRsp

#define sd_Event_FIELDLIST(X, a) \
X(a, STATIC,   SINGULAR, UINT32,   conn_handle,       1) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_connected,evt.gap_connected),   2) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_disconnected,evt.gap_disconnected),   3) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_conn_param_update,evt.gap_conn_param_update),   4) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_sec_params_request,evt.gap_sec_params_request),   5) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_sec_info_request,evt.gap_sec_info_request),   6) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_passkey_display,evt.gap_passkey_display),   7) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_key_pressed,evt.gap_key_pressed),   8) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_auth_key_request,evt.gap_auth_key_request),   9) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_lesc_dhkey_request,evt.gap_lesc_dhkey_request),  10) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_auth_status,evt.gap_auth_status),  11) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_conn_sec_update,evt.gap_conn_sec_update),  12) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_timeout,evt.gap_timeout),  13) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_rssi_changed,evt.gap_rssi_changed),  14) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_adv_report,evt.gap_adv_report),  15) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_adv_set_terminated,evt.gap_adv_set_terminated),  16) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_sec_request,evt.gap_sec_request),  17) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_conn_param_update_request,evt.gap_conn_param_update_request),  18) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_scan_req_report,evt.gap_scan_req_report),  19) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_phy_update_request,evt.gap_phy_update_request),  20) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_phy_update,evt.gap_phy_update),  21) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_data_length_update_request,evt.gap_data_length_update_request),  22) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_data_length_update,evt.gap_data_length_update),  23) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gap_qos_channel_survey_report,evt.gap_qos_channel_survey_report),  24) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_prim_srvc_disc_rsp,evt.gattc_prim_srvc_disc_rsp),  25) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_rel_disc_rsp,evt.gattc_rel_disc_rsp),  26) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_char_disc_rsp,evt.gattc_char_disc_rsp),  27) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_desc_disc_rsp,evt.gattc_desc_disc_rsp),  28) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_char_val_by_uuid_read_rsp,evt.gattc_char_val_by_uuid_read_rsp),  29) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_read_rsp,evt.gattc_read_rsp),  30) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_char_vals_read_rsp,evt.gattc_char_vals_read_rsp),  31) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_write_rsp,evt.gattc_write_rsp),  32) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_hvx,evt.gattc_hvx),  33) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_exchange_mtu_rsp,evt.gattc_exchange_mtu_rsp),  34) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_timeout_gattc,evt.gattc_timeout_gattc),  35) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_attr_info_disc_rsp,evt.gattc_attr_info_disc_rsp),  36) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gattc_write_cmd_tx_complete,evt.gattc_write_cmd_tx_complete),  37) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_write_gatts,evt.gatts_write_gatts),  38) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_authorize_request,evt.gatts_authorize_request),  39) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_sys_attr_missing,evt.gatts_sys_attr_missing),  40) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_hvc,evt.gatts_hvc),  41) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_exchange_mtu_request,evt.gatts_exchange_mtu_request),  42) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_timeout_gatts,evt.gatts_timeout_gatts),  43) \
X(a, STATIC,   ONEOF,    MESSAGE,  (evt,gatts_hvn_tx_complete,evt.gatts_hvn_tx_complete),  44)
#define sd_Event_CALLBACK NULL
#define sd_Event_DEFAULT NULL
#define sd_Event_evt_gap_connected_MSGTYPE sd_GapEvtConnected
#define sd_Event_evt_gap_disconnected_MSGTYPE sd_GapEvtDisconnected
#define sd_Event_evt_gap_conn_param_update_MSGTYPE sd_GapEvtConnParamUpdate
#define sd_Event_evt_gap_sec_params_request_MSGTYPE sd_GapEvtSecParamsRequest
#define sd_Event_evt_gap_sec_info_request_MSGTYPE sd_GapEvtSecInfoRequest
#define sd_Event_evt_gap_passkey_display_MSGTYPE sd_GapEvtPasskeyDisplay
#define sd_Event_evt_gap_key_pressed_MSGTYPE sd_GapEvtKeyPressed
#define sd_Event_evt_gap_auth_key_request_MSGTYPE sd_GapEvtAuthKeyRequest
#define sd_Event_evt_gap_lesc_dhkey_request_MSGTYPE sd_GapEvtLescDhkeyRequest
#define sd_Event_evt_gap_auth_status_MSGTYPE sd_GapEvtAuthStatus
#define sd_Event_evt_gap_conn_sec_update_MSGTYPE sd_GapEvtConnSecUpdate
#define sd_Event_evt_gap_timeout_MSGTYPE sd_GapEvtTimeout
#define sd_Event_evt_gap_rssi_changed_MSGTYPE sd_GapEvtRssiChanged
#define sd_Event_evt_gap_adv_report_MSGTYPE sd_GapEvtAdvReport
#define sd_Event_evt_gap_adv_set_terminated_MSGTYPE sd_GapEvtAdvSetTerminated
#define sd_Event_evt_gap_sec_request_MSGTYPE sd_GapEvtSecRequest
#define sd_Event_evt_gap_conn_param_update_request_MSGTYPE sd_GapEvtConnParamUpdateRequest
#define sd_Event_evt_gap_scan_req_report_MSGTYPE sd_GapEvtScanReqReport
#define sd_Event_evt_gap_phy_update_request_MSGTYPE sd_GapEvtPhyUpdateRequest
#define sd_Event_evt_gap_phy_update_MSGTYPE sd_GapEvtPhyUpdate
#define sd_Event_evt_gap_data_length_update_request_MSGTYPE sd_GapEvtDataLengthUpdateRequest
#define sd_Event_evt_gap_data_length_update_MSGTYPE sd_GapEvtDataLengthUpdate
#define sd_Event_evt_gap_qos_channel_survey_report_MSGTYPE sd_GapEvtQosChannelSurveyReport
#define sd_Event_evt_gattc_prim_srvc_disc_rsp_MSGTYPE sd_GattcEvtPrimSrvcDiscRsp
#define sd_Event_evt_gattc_rel_disc_rsp_MSGTYPE sd_GattcEvtRelDiscRsp
#define sd_Event_evt_gattc_char_disc_rsp_MSGTYPE sd_GattcEvtCharDiscRsp
#define sd_Event_evt_gattc_desc_disc_rsp_MSGTYPE sd_GattcEvtDescDiscRsp
#define sd_Event_evt_gattc_char_val_by_uuid_read_rsp_MSGTYPE sd_GattcEvtCharValByUuidReadRsp
#define sd_Event_evt_gattc_read_rsp_MSGTYPE sd_GattcEvtReadRsp
#define sd_Event_evt_gattc_char_vals_read_rsp_MSGTYPE sd_GattcEvtCharValsReadRsp
#define sd_Event_evt_gattc_write_rsp_MSGTYPE sd_GattcEvtWriteRsp
#define sd_Event_evt_gattc_hvx_MSGTYPE sd_GattcEvtHvx
#define sd_Event_evt_gattc_exchange_mtu_rsp_MSGTYPE sd_GattcEvtExchangeMtuRsp
#define sd_Event_evt_gattc_timeout_gattc_MSGTYPE sd_GattcEvtTimeout
#define sd_Event_evt_gattc_attr_info_disc_rsp_MSGTYPE sd_GattcEvtAttrInfoDiscRsp
#define sd_Event_evt_gattc_write_cmd_tx_complete_MSGTYPE sd_GattcEvtWriteCmdTxComplete
#define sd_Event_evt_gatts_write_gatts_MSGTYPE sd_GattsEvtWrite
#define sd_Event_evt_gatts_authorize_request_MSGTYPE sd_GattsEvtRwAuthorizeRequest
#define sd_Event_evt_gatts_sys_attr_missing_MSGTYPE sd_GattsEvtSysAttrMissing
#define sd_Event_evt_gatts_hvc_MSGTYPE sd_GattsEvtHvc
#define sd_Event_evt_gatts_exchange_mtu_request_MSGTYPE sd_GattsEvtExchangeMtuRequest
#define sd_Event_evt_gatts_timeout_gatts_MSGTYPE sd_GattsEvtTimeout
#define sd_Event_evt_gatts_hvn_tx_complete_MSGTYPE sd_GattsEvtHvnTxComplete

extern const pb_msgdesc_t sd_Command_msg;
extern const pb_msgdesc_t sd_Response_msg;
extern const pb_msgdesc_t sd_Event_msg;

/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define sd_Command_fields &sd_Command_msg
#define sd_Response_fields &sd_Response_msg
#define sd_Event_fields &sd_Event_msg

/* Maximum encoded size of messages (where known) */
#if defined(sd_GattcCharValuesReadCmd_size)
union sd_Command_cmd_size_union {char f51[(7 + sd_GattcCharValuesReadCmd_size)]; char f0[1236];};
#endif
#if defined(sd_GattcEvtPrimSrvcDiscRsp_size) && defined(sd_GattcEvtRelDiscRsp_size) && defined(sd_GattcEvtCharDiscRsp_size) && defined(sd_GattcEvtDescDiscRsp_size) && defined(sd_GattcEvtAttrInfoDiscRsp_size)
union sd_Event_evt_size_union {char f25[(7 + sd_GattcEvtPrimSrvcDiscRsp_size)]; char f26[(7 + sd_GattcEvtRelDiscRsp_size)]; char f27[(7 + sd_GattcEvtCharDiscRsp_size)]; char f28[(7 + sd_GattcEvtDescDiscRsp_size)]; char f36[(7 + sd_GattcEvtAttrInfoDiscRsp_size)]; char f0[574];};
#endif
#if defined(sd_GattcCharValuesReadCmd_size)
#define sd_Command_size                          (0 + sizeof(union sd_Command_cmd_size_union))
#endif
#define SD_SOFTDEVICE_PB_H_MAX_SIZE              sd_Response_size
#define sd_Response_size                         543
#if defined(sd_GattcEvtPrimSrvcDiscRsp_size) && defined(sd_GattcEvtRelDiscRsp_size) && defined(sd_GattcEvtCharDiscRsp_size) && defined(sd_GattcEvtDescDiscRsp_size) && defined(sd_GattcEvtAttrInfoDiscRsp_size)
#define sd_Event_size                            (4 + sizeof(union sd_Event_evt_size_union))
#endif

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

#endif