forked from jsphuebner/stm32-sine
-
Notifications
You must be signed in to change notification settings - Fork 0
/
inverter.pb.h
886 lines (806 loc) · 41.3 KB
/
inverter.pb.h
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
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
/* Automatically generated nanopb header */
/* Generated by nanopb-0.4.6-dev */
#ifndef PB_INVERTER_PB_H_INCLUDED
#define PB_INVERTER_PB_H_INCLUDED
#include <pb.h>
#if PB_PROTO_HEADER_VERSION != 40
#error Regenerate this file with the current version of nanopb generator.
#endif
/* Enum definitions */
typedef enum _InvOnOff {
InvOnOff_INV_OFF = 0,
InvOnOff_INV_ON = 1,
InvOnOff_INV_NA = 2
} InvOnOff;
typedef enum _InvHeader_MessageType {
InvHeader_MessageType_MSGTYPE_UNDEFINED = 0,
InvHeader_MessageType_MSGTYPE_COMMAND = 1,
InvHeader_MessageType_MSGTYPE_DATA = 2
} InvHeader_MessageType;
typedef enum _InvMotorParamCommon_InvEncModes {
InvMotorParamCommon_InvEncModes_ENCMODE_SINGLE = 0,
InvMotorParamCommon_InvEncModes_ENCMODE_AB = 1,
InvMotorParamCommon_InvEncModes_ENCMODE_ABZ = 2,
InvMotorParamCommon_InvEncModes_ENCMODE_SPI = 3,
InvMotorParamCommon_InvEncModes_ENCMODE_RESOLVER = 4,
InvMotorParamCommon_InvEncModes_ENCMODE_SINCOS = 5
} InvMotorParamCommon_InvEncModes;
typedef enum _InvMotorParamCommon_InvDirModes {
InvMotorParamCommon_InvDirModes_DIRMODE_BUTTON = 0,
InvMotorParamCommon_InvDirModes_DIRMODE_SWITCH = 1,
InvMotorParamCommon_InvDirModes_DIRMODE_BUTTON_REVERSED = 2,
InvMotorParamCommon_InvDirModes_DIRMODE_SWITCH_REVERSED = 3,
InvMotorParamCommon_InvDirModes_DIRMODE_DEFAULT_FORWARD = 4
} InvMotorParamCommon_InvDirModes;
typedef enum _InvMotorParamCommon_InvSnsM {
InvMotorParamCommon_InvSnsM_SNS_M_KTY83_110 = 12,
InvMotorParamCommon_InvSnsM_SNS_M_KTY84_130 = 13,
InvMotorParamCommon_InvSnsM_SNS_M_LEAF = 14,
InvMotorParamCommon_InvSnsM_SNS_M_KTY81_110 = 15,
InvMotorParamCommon_InvSnsM_SNS_M_TOYOTA = 16,
InvMotorParamCommon_InvSnsM_SNS_M_OUTLANDER_FRONT = 21
} InvMotorParamCommon_InvSnsM;
typedef enum _InvInverterParamCommon_InvPWMFreq {
InvInverterParamCommon_InvPWMFreq_PWM_FREQ_17_6KHZ = 0,
InvInverterParamCommon_InvPWMFreq_PWM_FREQ_8_8KHZ = 1,
InvInverterParamCommon_InvPWMFreq_PWM_FREQ_4_4KHZ = 2
} InvInverterParamCommon_InvPWMFreq;
typedef enum _InvInverterParamCommon_InvPWMPols {
InvInverterParamCommon_InvPWMPols_PWM_POLS_ACT_HIGH = 0,
InvInverterParamCommon_InvPWMPols_PWM_POLS_ACT_LOW = 1
} InvInverterParamCommon_InvPWMPols;
typedef enum _InvInverterParamCommon_InvSNS_HS {
InvInverterParamCommon_InvSNS_HS_SNS_HS_JCURVE = 0,
InvInverterParamCommon_InvSNS_HS_SNS_HS_SEMIKRON = 1,
InvInverterParamCommon_InvSNS_HS_SNS_HS_MBB600 = 2,
InvInverterParamCommon_InvSNS_HS_SNS_HS_KTY81 = 3,
InvInverterParamCommon_InvSNS_HS_SNS_HS_PT1000 = 4,
InvInverterParamCommon_InvSNS_HS_SNS_HS_NTCK45_2K2 = 5,
InvInverterParamCommon_InvSNS_HS_SNS_HS_LEAF = 6,
InvInverterParamCommon_InvSNS_HS_SNS_HS_BMW_I3 = 7
} InvInverterParamCommon_InvSNS_HS;
typedef enum _InvInverterParamFOC_InvPinSwap {
InvInverterParamFOC_InvPinSwap_PINSWAP_NONE = 0,
InvInverterParamFOC_InvPinSwap_PINSWAP_CURRENTS_1_2 = 1,
InvInverterParamFOC_InvPinSwap_PINSWAP_SINCOS = 2,
InvInverterParamFOC_InvPinSwap_PINSWAP_PWMOUTPUT_1_3 = 4,
InvInverterParamFOC_InvPinSwap_PINSWAP_PWMOUTPUT_2_3 = 8
} InvInverterParamFOC_InvPinSwap;
typedef enum _InvChargingParam_InvChargeMode {
InvChargingParam_InvChargeMode_CHARGEMODE_OFF = 0,
InvChargingParam_InvChargeMode_CHARGEMODE_BOOST = 3,
InvChargingParam_InvChargeMode_CHARGEMODE_BUCK = 4
} InvChargingParam_InvChargeMode;
typedef enum _InvThrottleParamCommon_InvPotMode {
InvThrottleParamCommon_InvPotMode_POTMODE_SINGLE_REGEN = 0,
InvThrottleParamCommon_InvPotMode_POTMODE_DUAL_CHAN = 1,
InvThrottleParamCommon_InvPotMode_POTMODE_CAN = 2,
InvThrottleParamCommon_InvPotMode_POTMODE_CAN_DUAL = 3
} InvThrottleParamCommon_InvPotMode;
typedef enum _InvAutConPwmParamCommon_InvIdleMode {
InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_ALWAYS = 0,
InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_NOBRAKE = 1,
InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_CRUISE = 2,
InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_OFF = 3
} InvAutConPwmParamCommon_InvIdleMode;
typedef enum _InvAutConPwmParamCommon_InvBtnSwitch {
InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_BUTTON = 0,
InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_SWITCH = 1,
InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_CAN = 2
} InvAutConPwmParamCommon_InvBtnSwitch;
typedef enum _InvAutConPwmParamCommon_InvTripMode {
InvAutConPwmParamCommon_InvTripMode_TRIPMODE_ALL_OFF = 0,
InvAutConPwmParamCommon_InvTripMode_TRIPMODE_DCSW_ON = 1,
InvAutConPwmParamCommon_InvTripMode_TRIPMODE_PRECHARGE_ONLY = 2,
InvAutConPwmParamCommon_InvTripMode_TRIPMODE_AUTO_RESUME = 3
} InvAutConPwmParamCommon_InvTripMode;
typedef enum _InvAutConPwmParamCommon_InvPWMFuncs {
InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_TMPM = 0,
InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_TMPHS = 1,
InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_SPEED = 2,
InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_SPEEDFRQ = 3
} InvAutConPwmParamCommon_InvPWMFuncs;
typedef enum _InvAutConPwmParamCommon_InvCANSpeeds {
InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_250K = 0,
InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_500K = 1,
InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_800K = 2,
InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_1M = 3
} InvAutConPwmParamCommon_InvCANSpeeds;
typedef enum _InvAutConPwmParamCommon_InvCANPeriod {
InvAutConPwmParamCommon_InvCANPeriod_CANPERIOD_100MS = 0,
InvAutConPwmParamCommon_InvCANPeriod_CANPERIOD_10MS = 1
} InvAutConPwmParamCommon_InvCANPeriod;
/* Struct definitions */
typedef struct _InvAutConPwmParamCommon {
bool has_idlespeed;
float idlespeed;
bool has_idlethrotlim;
float idlethrotlim;
bool has_idlemode;
InvAutConPwmParamCommon_InvIdleMode idlemode;
bool has_speedkp;
float speedkp;
bool has_speedflt;
float speedflt;
bool has_cruisemode;
InvAutConPwmParamCommon_InvBtnSwitch cruisemode;
bool has_udcsw;
float udcsw;
bool has_udcswbuck;
float udcswbuck;
bool has_tripmode;
InvAutConPwmParamCommon_InvTripMode tripmode;
bool has_bootprec;
InvOnOff bootprec;
bool has_pwmfunc;
InvAutConPwmParamCommon_InvPWMFuncs pwmfunc;
bool has_pwmgain;
float pwmgain;
bool has_pwmofs;
float pwmofs;
bool has_canspeed;
InvAutConPwmParamCommon_InvCANSpeeds canspeed;
bool has_canperiod;
InvAutConPwmParamCommon_InvCANPeriod canperiod;
bool has_nodeid;
float nodeid;
} InvAutConPwmParamCommon;
typedef struct _InvChargingParam {
bool has_chargemode;
InvChargingParam_InvChargeMode chargemode;
bool has_chargecur;
float chargecur;
bool has_chargekp;
float chargekp;
bool has_chargeki;
float chargeki;
bool has_chargeflt;
float chargeflt;
bool has_chargepwmin;
float chargepwmin;
bool has_chargepwmax;
float chargepwmax;
} InvChargingParam;
typedef struct _InvDerateParamCommon {
bool has_bmslimhigh;
float bmslimhigh;
bool has_bmslimlow;
float bmslimlow;
bool has_udcmin;
float udcmin;
bool has_udcmax;
float udcmax;
bool has_idcmax;
float idcmax;
bool has_idcmin;
float idcmin;
bool has_idckp;
float idckp;
bool has_idcflt;
float idcflt;
bool has_tmphsmax;
float tmphsmax;
bool has_tmpmmax;
float tmpmmax;
bool has_throtmax;
float throtmax;
bool has_throtmin;
float throtmin;
} InvDerateParamCommon;
typedef struct _InvDerateParamSine {
bool has_iacmax;
float iacmax;
bool has_ifltrise;
float ifltrise;
bool has_ifltfall;
float ifltfall;
} InvDerateParamSine;
typedef struct _InvHeader {
bool has_seqno;
uint32_t seqno; /* sequence number (to be able to find lost messages) */
bool has_tm;
uint32_t tm; /* controller send time stamp in ms */
bool has_mtype;
InvHeader_MessageType mtype;
} InvHeader;
typedef struct _InvInverterParamCommon {
bool has_pwmfrq;
InvInverterParamCommon_InvPWMFreq pwmfrq;
bool has_pwmpol;
InvInverterParamCommon_InvPWMPols pwmpol;
bool has_deadtime;
float deadtime;
bool has_ocurlim;
float ocurlim;
bool has_il1gain;
float il1gain;
bool has_il2gain;
float il2gain;
bool has_udcgain;
float udcgain;
bool has_udcofs;
float udcofs;
bool has_udclim;
float udclim;
bool has_snshs;
InvInverterParamCommon_InvSNS_HS snshs;
} InvInverterParamCommon;
typedef struct _InvInverterParamFOC {
bool has_pinswap;
InvInverterParamFOC_InvPinSwap pinswap;
} InvInverterParamFOC;
typedef struct _InvMotorParamCommon {
bool has_polepairs;
float polepairs;
bool has_respolepairs;
float respolepairs;
bool has_sincosofs;
float sincosofs;
bool has_encmode;
InvMotorParamCommon_InvEncModes encmode;
bool has_fmax;
float fmax;
bool has_numimp;
float numimp;
bool has_dirchrpm;
float dirchrpm;
bool has_dirmode;
InvMotorParamCommon_InvDirModes dirmode;
bool has_snsm;
float snsm;
} InvMotorParamCommon;
typedef struct _InvMotorParamFOC {
bool has_curkp;
float curkp;
bool has_curki;
float curki;
bool has_curkifrqgain;
float curkifrqgain;
bool has_fwkp;
float fwkp;
bool has_ffwstart;
float ffwstart;
bool has_syncofs;
float syncofs;
bool has_syncadv;
float syncadv;
} InvMotorParamFOC;
typedef struct _InvMotorParamSine {
bool has_boost;
float boost;
bool has_fweak;
float fweak;
bool has_fweakstrt;
float fweakstrt;
bool has_fconst;
float fconst;
bool has_udcnom;
float udcnom;
bool has_fslipmin;
float fslipmin;
bool has_fslipmax;
float fslipmax;
bool has_fslipconstmax;
float fslipconstmax;
} InvMotorParamSine;
typedef struct _InvRegenParam {
bool has_brknompedal;
float brknompedal;
bool has_regenramp;
float regenramp;
bool has_brknom;
float brknom;
bool has_brkmax;
float brkmax;
bool has_brkcruise;
float brkcruise;
bool has_brkrampstr;
float brkrampstr;
bool has_brkout;
float brkout;
} InvRegenParam;
typedef struct _InvThrottleParamCommon {
bool has_potmin;
float potmin;
bool has_potmax;
float potmax;
bool has_pot2min;
float pot2min;
bool has_pot2max;
float pot2max;
bool has_potmode;
InvThrottleParamCommon_InvPotMode potmode;
bool has_throtramp;
float throtramp;
bool has_throtramprpm;
float throtramprpm;
} InvThrottleParamCommon;
typedef struct _InvThrottleParamFOC {
bool has_throtcur;
float throtcur;
} InvThrottleParamFOC;
typedef struct _InvThrottleParamSine {
bool has_ampmin;
float ampmin;
bool has_slipstart;
float slipstart;
} InvThrottleParamSine;
typedef struct _InvConfigParams {
bool has_motorParamCommon;
InvMotorParamCommon motorParamCommon;
bool has_motorParamSine;
InvMotorParamSine motorParamSine;
bool has_motorParamFOC;
InvMotorParamFOC motorParamFOC;
bool has_inverterParamCommon;
InvInverterParamCommon inverterParamCommon;
bool has_inverterParamFOC;
InvInverterParamFOC inverterParamFOC;
bool has_derateParamCommon;
InvDerateParamCommon derateParamCommon;
bool has_derateParamSine;
InvDerateParamSine derateParamSine;
bool has_chargingParam;
InvChargingParam chargingParam;
bool has_throttleParamCommon;
InvThrottleParamCommon throttleParamCommon;
bool has_throttleParamSine;
InvThrottleParamSine throttleParamSine;
bool has_throttleParamFOC;
InvThrottleParamFOC throttleParamFOC;
bool has_regenParam;
InvRegenParam regenParam;
bool has_autConPwmParamCommon;
InvAutConPwmParamCommon autConPwmParamCommon;
} InvConfigParams;
/* Inverter controller outbound message, sent from inverter controller */
typedef struct _InvConfig {
bool has_Header;
InvHeader Header;
bool has_Config;
InvConfigParams Config;
} InvConfig;
/* Inverter controller inbound message, sent from the config tool */
typedef struct _InvStatus {
bool has_Header;
InvHeader Header;
bool has_Config;
InvConfigParams Config;
} InvStatus;
/* Helper constants for enums */
#define _InvOnOff_MIN InvOnOff_INV_OFF
#define _InvOnOff_MAX InvOnOff_INV_NA
#define _InvOnOff_ARRAYSIZE ((InvOnOff)(InvOnOff_INV_NA+1))
#define _InvHeader_MessageType_MIN InvHeader_MessageType_MSGTYPE_UNDEFINED
#define _InvHeader_MessageType_MAX InvHeader_MessageType_MSGTYPE_DATA
#define _InvHeader_MessageType_ARRAYSIZE ((InvHeader_MessageType)(InvHeader_MessageType_MSGTYPE_DATA+1))
#define _InvMotorParamCommon_InvEncModes_MIN InvMotorParamCommon_InvEncModes_ENCMODE_SINGLE
#define _InvMotorParamCommon_InvEncModes_MAX InvMotorParamCommon_InvEncModes_ENCMODE_SINCOS
#define _InvMotorParamCommon_InvEncModes_ARRAYSIZE ((InvMotorParamCommon_InvEncModes)(InvMotorParamCommon_InvEncModes_ENCMODE_SINCOS+1))
#define _InvMotorParamCommon_InvDirModes_MIN InvMotorParamCommon_InvDirModes_DIRMODE_BUTTON
#define _InvMotorParamCommon_InvDirModes_MAX InvMotorParamCommon_InvDirModes_DIRMODE_DEFAULT_FORWARD
#define _InvMotorParamCommon_InvDirModes_ARRAYSIZE ((InvMotorParamCommon_InvDirModes)(InvMotorParamCommon_InvDirModes_DIRMODE_DEFAULT_FORWARD+1))
#define _InvMotorParamCommon_InvSnsM_MIN InvMotorParamCommon_InvSnsM_SNS_M_KTY83_110
#define _InvMotorParamCommon_InvSnsM_MAX InvMotorParamCommon_InvSnsM_SNS_M_OUTLANDER_FRONT
#define _InvMotorParamCommon_InvSnsM_ARRAYSIZE ((InvMotorParamCommon_InvSnsM)(InvMotorParamCommon_InvSnsM_SNS_M_OUTLANDER_FRONT+1))
#define _InvInverterParamCommon_InvPWMFreq_MIN InvInverterParamCommon_InvPWMFreq_PWM_FREQ_17_6KHZ
#define _InvInverterParamCommon_InvPWMFreq_MAX InvInverterParamCommon_InvPWMFreq_PWM_FREQ_4_4KHZ
#define _InvInverterParamCommon_InvPWMFreq_ARRAYSIZE ((InvInverterParamCommon_InvPWMFreq)(InvInverterParamCommon_InvPWMFreq_PWM_FREQ_4_4KHZ+1))
#define _InvInverterParamCommon_InvPWMPols_MIN InvInverterParamCommon_InvPWMPols_PWM_POLS_ACT_HIGH
#define _InvInverterParamCommon_InvPWMPols_MAX InvInverterParamCommon_InvPWMPols_PWM_POLS_ACT_LOW
#define _InvInverterParamCommon_InvPWMPols_ARRAYSIZE ((InvInverterParamCommon_InvPWMPols)(InvInverterParamCommon_InvPWMPols_PWM_POLS_ACT_LOW+1))
#define _InvInverterParamCommon_InvSNS_HS_MIN InvInverterParamCommon_InvSNS_HS_SNS_HS_JCURVE
#define _InvInverterParamCommon_InvSNS_HS_MAX InvInverterParamCommon_InvSNS_HS_SNS_HS_BMW_I3
#define _InvInverterParamCommon_InvSNS_HS_ARRAYSIZE ((InvInverterParamCommon_InvSNS_HS)(InvInverterParamCommon_InvSNS_HS_SNS_HS_BMW_I3+1))
#define _InvInverterParamFOC_InvPinSwap_MIN InvInverterParamFOC_InvPinSwap_PINSWAP_NONE
#define _InvInverterParamFOC_InvPinSwap_MAX InvInverterParamFOC_InvPinSwap_PINSWAP_PWMOUTPUT_2_3
#define _InvInverterParamFOC_InvPinSwap_ARRAYSIZE ((InvInverterParamFOC_InvPinSwap)(InvInverterParamFOC_InvPinSwap_PINSWAP_PWMOUTPUT_2_3+1))
#define _InvChargingParam_InvChargeMode_MIN InvChargingParam_InvChargeMode_CHARGEMODE_OFF
#define _InvChargingParam_InvChargeMode_MAX InvChargingParam_InvChargeMode_CHARGEMODE_BUCK
#define _InvChargingParam_InvChargeMode_ARRAYSIZE ((InvChargingParam_InvChargeMode)(InvChargingParam_InvChargeMode_CHARGEMODE_BUCK+1))
#define _InvThrottleParamCommon_InvPotMode_MIN InvThrottleParamCommon_InvPotMode_POTMODE_SINGLE_REGEN
#define _InvThrottleParamCommon_InvPotMode_MAX InvThrottleParamCommon_InvPotMode_POTMODE_CAN_DUAL
#define _InvThrottleParamCommon_InvPotMode_ARRAYSIZE ((InvThrottleParamCommon_InvPotMode)(InvThrottleParamCommon_InvPotMode_POTMODE_CAN_DUAL+1))
#define _InvAutConPwmParamCommon_InvIdleMode_MIN InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_ALWAYS
#define _InvAutConPwmParamCommon_InvIdleMode_MAX InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_OFF
#define _InvAutConPwmParamCommon_InvIdleMode_ARRAYSIZE ((InvAutConPwmParamCommon_InvIdleMode)(InvAutConPwmParamCommon_InvIdleMode_IDLEMODE_OFF+1))
#define _InvAutConPwmParamCommon_InvBtnSwitch_MIN InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_BUTTON
#define _InvAutConPwmParamCommon_InvBtnSwitch_MAX InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_CAN
#define _InvAutConPwmParamCommon_InvBtnSwitch_ARRAYSIZE ((InvAutConPwmParamCommon_InvBtnSwitch)(InvAutConPwmParamCommon_InvBtnSwitch_BTNSWITCH_CAN+1))
#define _InvAutConPwmParamCommon_InvTripMode_MIN InvAutConPwmParamCommon_InvTripMode_TRIPMODE_ALL_OFF
#define _InvAutConPwmParamCommon_InvTripMode_MAX InvAutConPwmParamCommon_InvTripMode_TRIPMODE_AUTO_RESUME
#define _InvAutConPwmParamCommon_InvTripMode_ARRAYSIZE ((InvAutConPwmParamCommon_InvTripMode)(InvAutConPwmParamCommon_InvTripMode_TRIPMODE_AUTO_RESUME+1))
#define _InvAutConPwmParamCommon_InvPWMFuncs_MIN InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_TMPM
#define _InvAutConPwmParamCommon_InvPWMFuncs_MAX InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_SPEEDFRQ
#define _InvAutConPwmParamCommon_InvPWMFuncs_ARRAYSIZE ((InvAutConPwmParamCommon_InvPWMFuncs)(InvAutConPwmParamCommon_InvPWMFuncs_PWMFUNCS_SPEEDFRQ+1))
#define _InvAutConPwmParamCommon_InvCANSpeeds_MIN InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_250K
#define _InvAutConPwmParamCommon_InvCANSpeeds_MAX InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_1M
#define _InvAutConPwmParamCommon_InvCANSpeeds_ARRAYSIZE ((InvAutConPwmParamCommon_InvCANSpeeds)(InvAutConPwmParamCommon_InvCANSpeeds_CANSPEED_1M+1))
#define _InvAutConPwmParamCommon_InvCANPeriod_MIN InvAutConPwmParamCommon_InvCANPeriod_CANPERIOD_100MS
#define _InvAutConPwmParamCommon_InvCANPeriod_MAX InvAutConPwmParamCommon_InvCANPeriod_CANPERIOD_10MS
#define _InvAutConPwmParamCommon_InvCANPeriod_ARRAYSIZE ((InvAutConPwmParamCommon_InvCANPeriod)(InvAutConPwmParamCommon_InvCANPeriod_CANPERIOD_10MS+1))
#ifdef __cplusplus
extern "C" {
#endif
/* Initializer values for message structs */
#define InvHeader_init_default {false, 0, false, 0, false, InvHeader_MessageType_MSGTYPE_UNDEFINED}
#define InvMotorParamCommon_init_default {false, 0, false, 0, false, 0, false, _InvMotorParamCommon_InvEncModes_MIN, false, 0, false, 0, false, 0, false, _InvMotorParamCommon_InvDirModes_MIN, false, 0}
#define InvMotorParamSine_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvMotorParamFOC_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvInverterParamCommon_init_default {false, _InvInverterParamCommon_InvPWMFreq_MIN, false, _InvInverterParamCommon_InvPWMPols_MIN, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, _InvInverterParamCommon_InvSNS_HS_MIN}
#define InvInverterParamFOC_init_default {false, _InvInverterParamFOC_InvPinSwap_MIN}
#define InvDerateParamCommon_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvDerateParamSine_init_default {false, 0, false, 0, false, 0}
#define InvChargingParam_init_default {false, _InvChargingParam_InvChargeMode_MIN, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvThrottleParamCommon_init_default {false, 0, false, 0, false, 0, false, 0, false, _InvThrottleParamCommon_InvPotMode_MIN, false, 0, false, 0}
#define InvThrottleParamSine_init_default {false, 0, false, 0}
#define InvThrottleParamFOC_init_default {false, 0}
#define InvRegenParam_init_default {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvAutConPwmParamCommon_init_default {false, 0, false, 0, false, _InvAutConPwmParamCommon_InvIdleMode_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvBtnSwitch_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvTripMode_MIN, false, _InvOnOff_MIN, false, _InvAutConPwmParamCommon_InvPWMFuncs_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvCANSpeeds_MIN, false, _InvAutConPwmParamCommon_InvCANPeriod_MIN, false, 0}
#define InvConfigParams_init_default {false, InvMotorParamCommon_init_default, false, InvMotorParamSine_init_default, false, InvMotorParamFOC_init_default, false, InvInverterParamCommon_init_default, false, InvInverterParamFOC_init_default, false, InvDerateParamCommon_init_default, false, InvDerateParamSine_init_default, false, InvChargingParam_init_default, false, InvThrottleParamCommon_init_default, false, InvThrottleParamSine_init_default, false, InvThrottleParamFOC_init_default, false, InvRegenParam_init_default, false, InvAutConPwmParamCommon_init_default}
#define InvStatus_init_default {false, InvHeader_init_default, false, InvConfigParams_init_default}
#define InvConfig_init_default {false, InvHeader_init_default, false, InvConfigParams_init_default}
#define InvHeader_init_zero {false, 0, false, 0, false, _InvHeader_MessageType_MIN}
#define InvMotorParamCommon_init_zero {false, 0, false, 0, false, 0, false, _InvMotorParamCommon_InvEncModes_MIN, false, 0, false, 0, false, 0, false, _InvMotorParamCommon_InvDirModes_MIN, false, 0}
#define InvMotorParamSine_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvMotorParamFOC_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvInverterParamCommon_init_zero {false, _InvInverterParamCommon_InvPWMFreq_MIN, false, _InvInverterParamCommon_InvPWMPols_MIN, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, _InvInverterParamCommon_InvSNS_HS_MIN}
#define InvInverterParamFOC_init_zero {false, _InvInverterParamFOC_InvPinSwap_MIN}
#define InvDerateParamCommon_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvDerateParamSine_init_zero {false, 0, false, 0, false, 0}
#define InvChargingParam_init_zero {false, _InvChargingParam_InvChargeMode_MIN, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvThrottleParamCommon_init_zero {false, 0, false, 0, false, 0, false, 0, false, _InvThrottleParamCommon_InvPotMode_MIN, false, 0, false, 0}
#define InvThrottleParamSine_init_zero {false, 0, false, 0}
#define InvThrottleParamFOC_init_zero {false, 0}
#define InvRegenParam_init_zero {false, 0, false, 0, false, 0, false, 0, false, 0, false, 0, false, 0}
#define InvAutConPwmParamCommon_init_zero {false, 0, false, 0, false, _InvAutConPwmParamCommon_InvIdleMode_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvBtnSwitch_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvTripMode_MIN, false, _InvOnOff_MIN, false, _InvAutConPwmParamCommon_InvPWMFuncs_MIN, false, 0, false, 0, false, _InvAutConPwmParamCommon_InvCANSpeeds_MIN, false, _InvAutConPwmParamCommon_InvCANPeriod_MIN, false, 0}
#define InvConfigParams_init_zero {false, InvMotorParamCommon_init_zero, false, InvMotorParamSine_init_zero, false, InvMotorParamFOC_init_zero, false, InvInverterParamCommon_init_zero, false, InvInverterParamFOC_init_zero, false, InvDerateParamCommon_init_zero, false, InvDerateParamSine_init_zero, false, InvChargingParam_init_zero, false, InvThrottleParamCommon_init_zero, false, InvThrottleParamSine_init_zero, false, InvThrottleParamFOC_init_zero, false, InvRegenParam_init_zero, false, InvAutConPwmParamCommon_init_zero}
#define InvStatus_init_zero {false, InvHeader_init_zero, false, InvConfigParams_init_zero}
#define InvConfig_init_zero {false, InvHeader_init_zero, false, InvConfigParams_init_zero}
/* Field tags (for use in manual encoding/decoding) */
#define InvAutConPwmParamCommon_idlespeed_tag 1
#define InvAutConPwmParamCommon_idlethrotlim_tag 2
#define InvAutConPwmParamCommon_idlemode_tag 3
#define InvAutConPwmParamCommon_speedkp_tag 4
#define InvAutConPwmParamCommon_speedflt_tag 5
#define InvAutConPwmParamCommon_cruisemode_tag 6
#define InvAutConPwmParamCommon_udcsw_tag 7
#define InvAutConPwmParamCommon_udcswbuck_tag 8
#define InvAutConPwmParamCommon_tripmode_tag 9
#define InvAutConPwmParamCommon_bootprec_tag 10
#define InvAutConPwmParamCommon_pwmfunc_tag 11
#define InvAutConPwmParamCommon_pwmgain_tag 12
#define InvAutConPwmParamCommon_pwmofs_tag 13
#define InvAutConPwmParamCommon_canspeed_tag 14
#define InvAutConPwmParamCommon_canperiod_tag 15
#define InvAutConPwmParamCommon_nodeid_tag 16
#define InvChargingParam_chargemode_tag 1
#define InvChargingParam_chargecur_tag 2
#define InvChargingParam_chargekp_tag 3
#define InvChargingParam_chargeki_tag 4
#define InvChargingParam_chargeflt_tag 5
#define InvChargingParam_chargepwmin_tag 6
#define InvChargingParam_chargepwmax_tag 7
#define InvDerateParamCommon_bmslimhigh_tag 1
#define InvDerateParamCommon_bmslimlow_tag 2
#define InvDerateParamCommon_udcmin_tag 3
#define InvDerateParamCommon_udcmax_tag 4
#define InvDerateParamCommon_idcmax_tag 5
#define InvDerateParamCommon_idcmin_tag 6
#define InvDerateParamCommon_idckp_tag 7
#define InvDerateParamCommon_idcflt_tag 8
#define InvDerateParamCommon_tmphsmax_tag 9
#define InvDerateParamCommon_tmpmmax_tag 10
#define InvDerateParamCommon_throtmax_tag 11
#define InvDerateParamCommon_throtmin_tag 12
#define InvDerateParamSine_iacmax_tag 1
#define InvDerateParamSine_ifltrise_tag 2
#define InvDerateParamSine_ifltfall_tag 3
#define InvHeader_seqno_tag 1
#define InvHeader_tm_tag 2
#define InvHeader_mtype_tag 3
#define InvInverterParamCommon_pwmfrq_tag 1
#define InvInverterParamCommon_pwmpol_tag 2
#define InvInverterParamCommon_deadtime_tag 3
#define InvInverterParamCommon_ocurlim_tag 4
#define InvInverterParamCommon_il1gain_tag 5
#define InvInverterParamCommon_il2gain_tag 6
#define InvInverterParamCommon_udcgain_tag 7
#define InvInverterParamCommon_udcofs_tag 8
#define InvInverterParamCommon_udclim_tag 9
#define InvInverterParamCommon_snshs_tag 10
#define InvInverterParamFOC_pinswap_tag 1
#define InvMotorParamCommon_polepairs_tag 1
#define InvMotorParamCommon_respolepairs_tag 2
#define InvMotorParamCommon_sincosofs_tag 3
#define InvMotorParamCommon_encmode_tag 4
#define InvMotorParamCommon_fmax_tag 5
#define InvMotorParamCommon_numimp_tag 6
#define InvMotorParamCommon_dirchrpm_tag 7
#define InvMotorParamCommon_dirmode_tag 8
#define InvMotorParamCommon_snsm_tag 9
#define InvMotorParamFOC_curkp_tag 1
#define InvMotorParamFOC_curki_tag 2
#define InvMotorParamFOC_curkifrqgain_tag 3
#define InvMotorParamFOC_fwkp_tag 4
#define InvMotorParamFOC_ffwstart_tag 5
#define InvMotorParamFOC_syncofs_tag 6
#define InvMotorParamFOC_syncadv_tag 7
#define InvMotorParamSine_boost_tag 1
#define InvMotorParamSine_fweak_tag 2
#define InvMotorParamSine_fweakstrt_tag 3
#define InvMotorParamSine_fconst_tag 4
#define InvMotorParamSine_udcnom_tag 5
#define InvMotorParamSine_fslipmin_tag 6
#define InvMotorParamSine_fslipmax_tag 7
#define InvMotorParamSine_fslipconstmax_tag 8
#define InvRegenParam_brknompedal_tag 1
#define InvRegenParam_regenramp_tag 2
#define InvRegenParam_brknom_tag 3
#define InvRegenParam_brkmax_tag 4
#define InvRegenParam_brkcruise_tag 5
#define InvRegenParam_brkrampstr_tag 6
#define InvRegenParam_brkout_tag 7
#define InvThrottleParamCommon_potmin_tag 1
#define InvThrottleParamCommon_potmax_tag 2
#define InvThrottleParamCommon_pot2min_tag 3
#define InvThrottleParamCommon_pot2max_tag 4
#define InvThrottleParamCommon_potmode_tag 5
#define InvThrottleParamCommon_throtramp_tag 6
#define InvThrottleParamCommon_throtramprpm_tag 7
#define InvThrottleParamFOC_throtcur_tag 1
#define InvThrottleParamSine_ampmin_tag 1
#define InvThrottleParamSine_slipstart_tag 2
#define InvConfigParams_motorParamCommon_tag 2
#define InvConfigParams_motorParamSine_tag 3
#define InvConfigParams_motorParamFOC_tag 4
#define InvConfigParams_inverterParamCommon_tag 5
#define InvConfigParams_inverterParamFOC_tag 6
#define InvConfigParams_derateParamCommon_tag 7
#define InvConfigParams_derateParamSine_tag 8
#define InvConfigParams_chargingParam_tag 9
#define InvConfigParams_throttleParamCommon_tag 10
#define InvConfigParams_throttleParamSine_tag 11
#define InvConfigParams_throttleParamFOC_tag 12
#define InvConfigParams_regenParam_tag 13
#define InvConfigParams_autConPwmParamCommon_tag 14
#define InvConfig_Header_tag 1
#define InvConfig_Config_tag 2
#define InvStatus_Header_tag 1
#define InvStatus_Config_tag 2
/* Struct field encoding specification for nanopb */
#define InvHeader_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, UINT32, seqno, 1) \
X(a, STATIC, OPTIONAL, UINT32, tm, 2) \
X(a, STATIC, OPTIONAL, UENUM, mtype, 3)
#define InvHeader_CALLBACK NULL
#define InvHeader_DEFAULT NULL
#define InvMotorParamCommon_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, polepairs, 1) \
X(a, STATIC, OPTIONAL, FLOAT, respolepairs, 2) \
X(a, STATIC, OPTIONAL, FLOAT, sincosofs, 3) \
X(a, STATIC, OPTIONAL, UENUM, encmode, 4) \
X(a, STATIC, OPTIONAL, FLOAT, fmax, 5) \
X(a, STATIC, OPTIONAL, FLOAT, numimp, 6) \
X(a, STATIC, OPTIONAL, FLOAT, dirchrpm, 7) \
X(a, STATIC, OPTIONAL, UENUM, dirmode, 8) \
X(a, STATIC, OPTIONAL, FLOAT, snsm, 9)
#define InvMotorParamCommon_CALLBACK NULL
#define InvMotorParamCommon_DEFAULT NULL
#define InvMotorParamSine_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, boost, 1) \
X(a, STATIC, OPTIONAL, FLOAT, fweak, 2) \
X(a, STATIC, OPTIONAL, FLOAT, fweakstrt, 3) \
X(a, STATIC, OPTIONAL, FLOAT, fconst, 4) \
X(a, STATIC, OPTIONAL, FLOAT, udcnom, 5) \
X(a, STATIC, OPTIONAL, FLOAT, fslipmin, 6) \
X(a, STATIC, OPTIONAL, FLOAT, fslipmax, 7) \
X(a, STATIC, OPTIONAL, FLOAT, fslipconstmax, 8)
#define InvMotorParamSine_CALLBACK NULL
#define InvMotorParamSine_DEFAULT NULL
#define InvMotorParamFOC_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, curkp, 1) \
X(a, STATIC, OPTIONAL, FLOAT, curki, 2) \
X(a, STATIC, OPTIONAL, FLOAT, curkifrqgain, 3) \
X(a, STATIC, OPTIONAL, FLOAT, fwkp, 4) \
X(a, STATIC, OPTIONAL, FLOAT, ffwstart, 5) \
X(a, STATIC, OPTIONAL, FLOAT, syncofs, 6) \
X(a, STATIC, OPTIONAL, FLOAT, syncadv, 7)
#define InvMotorParamFOC_CALLBACK NULL
#define InvMotorParamFOC_DEFAULT NULL
#define InvInverterParamCommon_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, UENUM, pwmfrq, 1) \
X(a, STATIC, OPTIONAL, UENUM, pwmpol, 2) \
X(a, STATIC, OPTIONAL, FLOAT, deadtime, 3) \
X(a, STATIC, OPTIONAL, FLOAT, ocurlim, 4) \
X(a, STATIC, OPTIONAL, FLOAT, il1gain, 5) \
X(a, STATIC, OPTIONAL, FLOAT, il2gain, 6) \
X(a, STATIC, OPTIONAL, FLOAT, udcgain, 7) \
X(a, STATIC, OPTIONAL, FLOAT, udcofs, 8) \
X(a, STATIC, OPTIONAL, FLOAT, udclim, 9) \
X(a, STATIC, OPTIONAL, UENUM, snshs, 10)
#define InvInverterParamCommon_CALLBACK NULL
#define InvInverterParamCommon_DEFAULT NULL
#define InvInverterParamFOC_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, UENUM, pinswap, 1)
#define InvInverterParamFOC_CALLBACK NULL
#define InvInverterParamFOC_DEFAULT NULL
#define InvDerateParamCommon_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, bmslimhigh, 1) \
X(a, STATIC, OPTIONAL, FLOAT, bmslimlow, 2) \
X(a, STATIC, OPTIONAL, FLOAT, udcmin, 3) \
X(a, STATIC, OPTIONAL, FLOAT, udcmax, 4) \
X(a, STATIC, OPTIONAL, FLOAT, idcmax, 5) \
X(a, STATIC, OPTIONAL, FLOAT, idcmin, 6) \
X(a, STATIC, OPTIONAL, FLOAT, idckp, 7) \
X(a, STATIC, OPTIONAL, FLOAT, idcflt, 8) \
X(a, STATIC, OPTIONAL, FLOAT, tmphsmax, 9) \
X(a, STATIC, OPTIONAL, FLOAT, tmpmmax, 10) \
X(a, STATIC, OPTIONAL, FLOAT, throtmax, 11) \
X(a, STATIC, OPTIONAL, FLOAT, throtmin, 12)
#define InvDerateParamCommon_CALLBACK NULL
#define InvDerateParamCommon_DEFAULT NULL
#define InvDerateParamSine_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, iacmax, 1) \
X(a, STATIC, OPTIONAL, FLOAT, ifltrise, 2) \
X(a, STATIC, OPTIONAL, FLOAT, ifltfall, 3)
#define InvDerateParamSine_CALLBACK NULL
#define InvDerateParamSine_DEFAULT NULL
#define InvChargingParam_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, UENUM, chargemode, 1) \
X(a, STATIC, OPTIONAL, FLOAT, chargecur, 2) \
X(a, STATIC, OPTIONAL, FLOAT, chargekp, 3) \
X(a, STATIC, OPTIONAL, FLOAT, chargeki, 4) \
X(a, STATIC, OPTIONAL, FLOAT, chargeflt, 5) \
X(a, STATIC, OPTIONAL, FLOAT, chargepwmin, 6) \
X(a, STATIC, OPTIONAL, FLOAT, chargepwmax, 7)
#define InvChargingParam_CALLBACK NULL
#define InvChargingParam_DEFAULT NULL
#define InvThrottleParamCommon_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, potmin, 1) \
X(a, STATIC, OPTIONAL, FLOAT, potmax, 2) \
X(a, STATIC, OPTIONAL, FLOAT, pot2min, 3) \
X(a, STATIC, OPTIONAL, FLOAT, pot2max, 4) \
X(a, STATIC, OPTIONAL, UENUM, potmode, 5) \
X(a, STATIC, OPTIONAL, FLOAT, throtramp, 6) \
X(a, STATIC, OPTIONAL, FLOAT, throtramprpm, 7)
#define InvThrottleParamCommon_CALLBACK NULL
#define InvThrottleParamCommon_DEFAULT NULL
#define InvThrottleParamSine_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, ampmin, 1) \
X(a, STATIC, OPTIONAL, FLOAT, slipstart, 2)
#define InvThrottleParamSine_CALLBACK NULL
#define InvThrottleParamSine_DEFAULT NULL
#define InvThrottleParamFOC_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, throtcur, 1)
#define InvThrottleParamFOC_CALLBACK NULL
#define InvThrottleParamFOC_DEFAULT NULL
#define InvRegenParam_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, brknompedal, 1) \
X(a, STATIC, OPTIONAL, FLOAT, regenramp, 2) \
X(a, STATIC, OPTIONAL, FLOAT, brknom, 3) \
X(a, STATIC, OPTIONAL, FLOAT, brkmax, 4) \
X(a, STATIC, OPTIONAL, FLOAT, brkcruise, 5) \
X(a, STATIC, OPTIONAL, FLOAT, brkrampstr, 6) \
X(a, STATIC, OPTIONAL, FLOAT, brkout, 7)
#define InvRegenParam_CALLBACK NULL
#define InvRegenParam_DEFAULT NULL
#define InvAutConPwmParamCommon_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, FLOAT, idlespeed, 1) \
X(a, STATIC, OPTIONAL, FLOAT, idlethrotlim, 2) \
X(a, STATIC, OPTIONAL, UENUM, idlemode, 3) \
X(a, STATIC, OPTIONAL, FLOAT, speedkp, 4) \
X(a, STATIC, OPTIONAL, FLOAT, speedflt, 5) \
X(a, STATIC, OPTIONAL, UENUM, cruisemode, 6) \
X(a, STATIC, OPTIONAL, FLOAT, udcsw, 7) \
X(a, STATIC, OPTIONAL, FLOAT, udcswbuck, 8) \
X(a, STATIC, OPTIONAL, UENUM, tripmode, 9) \
X(a, STATIC, OPTIONAL, UENUM, bootprec, 10) \
X(a, STATIC, OPTIONAL, UENUM, pwmfunc, 11) \
X(a, STATIC, OPTIONAL, FLOAT, pwmgain, 12) \
X(a, STATIC, OPTIONAL, FLOAT, pwmofs, 13) \
X(a, STATIC, OPTIONAL, UENUM, canspeed, 14) \
X(a, STATIC, OPTIONAL, UENUM, canperiod, 15) \
X(a, STATIC, OPTIONAL, FLOAT, nodeid, 16)
#define InvAutConPwmParamCommon_CALLBACK NULL
#define InvAutConPwmParamCommon_DEFAULT NULL
#define InvConfigParams_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, motorParamCommon, 2) \
X(a, STATIC, OPTIONAL, MESSAGE, motorParamSine, 3) \
X(a, STATIC, OPTIONAL, MESSAGE, motorParamFOC, 4) \
X(a, STATIC, OPTIONAL, MESSAGE, inverterParamCommon, 5) \
X(a, STATIC, OPTIONAL, MESSAGE, inverterParamFOC, 6) \
X(a, STATIC, OPTIONAL, MESSAGE, derateParamCommon, 7) \
X(a, STATIC, OPTIONAL, MESSAGE, derateParamSine, 8) \
X(a, STATIC, OPTIONAL, MESSAGE, chargingParam, 9) \
X(a, STATIC, OPTIONAL, MESSAGE, throttleParamCommon, 10) \
X(a, STATIC, OPTIONAL, MESSAGE, throttleParamSine, 11) \
X(a, STATIC, OPTIONAL, MESSAGE, throttleParamFOC, 12) \
X(a, STATIC, OPTIONAL, MESSAGE, regenParam, 13) \
X(a, STATIC, OPTIONAL, MESSAGE, autConPwmParamCommon, 14)
#define InvConfigParams_CALLBACK NULL
#define InvConfigParams_DEFAULT NULL
#define InvConfigParams_motorParamCommon_MSGTYPE InvMotorParamCommon
#define InvConfigParams_motorParamSine_MSGTYPE InvMotorParamSine
#define InvConfigParams_motorParamFOC_MSGTYPE InvMotorParamFOC
#define InvConfigParams_inverterParamCommon_MSGTYPE InvInverterParamCommon
#define InvConfigParams_inverterParamFOC_MSGTYPE InvInverterParamFOC
#define InvConfigParams_derateParamCommon_MSGTYPE InvDerateParamCommon
#define InvConfigParams_derateParamSine_MSGTYPE InvDerateParamSine
#define InvConfigParams_chargingParam_MSGTYPE InvChargingParam
#define InvConfigParams_throttleParamCommon_MSGTYPE InvThrottleParamCommon
#define InvConfigParams_throttleParamSine_MSGTYPE InvThrottleParamSine
#define InvConfigParams_throttleParamFOC_MSGTYPE InvThrottleParamFOC
#define InvConfigParams_regenParam_MSGTYPE InvRegenParam
#define InvConfigParams_autConPwmParamCommon_MSGTYPE InvAutConPwmParamCommon
#define InvStatus_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, Header, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, Config, 2)
#define InvStatus_CALLBACK NULL
#define InvStatus_DEFAULT NULL
#define InvStatus_Header_MSGTYPE InvHeader
#define InvStatus_Config_MSGTYPE InvConfigParams
#define InvConfig_FIELDLIST(X, a) \
X(a, STATIC, OPTIONAL, MESSAGE, Header, 1) \
X(a, STATIC, OPTIONAL, MESSAGE, Config, 2)
#define InvConfig_CALLBACK NULL
#define InvConfig_DEFAULT NULL
#define InvConfig_Header_MSGTYPE InvHeader
#define InvConfig_Config_MSGTYPE InvConfigParams
extern const pb_msgdesc_t InvHeader_msg;
extern const pb_msgdesc_t InvMotorParamCommon_msg;
extern const pb_msgdesc_t InvMotorParamSine_msg;
extern const pb_msgdesc_t InvMotorParamFOC_msg;
extern const pb_msgdesc_t InvInverterParamCommon_msg;
extern const pb_msgdesc_t InvInverterParamFOC_msg;
extern const pb_msgdesc_t InvDerateParamCommon_msg;
extern const pb_msgdesc_t InvDerateParamSine_msg;
extern const pb_msgdesc_t InvChargingParam_msg;
extern const pb_msgdesc_t InvThrottleParamCommon_msg;
extern const pb_msgdesc_t InvThrottleParamSine_msg;
extern const pb_msgdesc_t InvThrottleParamFOC_msg;
extern const pb_msgdesc_t InvRegenParam_msg;
extern const pb_msgdesc_t InvAutConPwmParamCommon_msg;
extern const pb_msgdesc_t InvConfigParams_msg;
extern const pb_msgdesc_t InvStatus_msg;
extern const pb_msgdesc_t InvConfig_msg;
/* Defines for backwards compatibility with code written before nanopb-0.4.0 */
#define InvHeader_fields &InvHeader_msg
#define InvMotorParamCommon_fields &InvMotorParamCommon_msg
#define InvMotorParamSine_fields &InvMotorParamSine_msg
#define InvMotorParamFOC_fields &InvMotorParamFOC_msg
#define InvInverterParamCommon_fields &InvInverterParamCommon_msg
#define InvInverterParamFOC_fields &InvInverterParamFOC_msg
#define InvDerateParamCommon_fields &InvDerateParamCommon_msg
#define InvDerateParamSine_fields &InvDerateParamSine_msg
#define InvChargingParam_fields &InvChargingParam_msg
#define InvThrottleParamCommon_fields &InvThrottleParamCommon_msg
#define InvThrottleParamSine_fields &InvThrottleParamSine_msg
#define InvThrottleParamFOC_fields &InvThrottleParamFOC_msg
#define InvRegenParam_fields &InvRegenParam_msg
#define InvAutConPwmParamCommon_fields &InvAutConPwmParamCommon_msg
#define InvConfigParams_fields &InvConfigParams_msg
#define InvStatus_fields &InvStatus_msg
#define InvConfig_fields &InvConfig_msg
/* Maximum encoded size of messages (where known) */
#define InvAutConPwmParamCommon_size 60
#define InvChargingParam_size 32
#define InvConfigParams_size 432
#define InvConfig_size 451
#define InvDerateParamCommon_size 60
#define InvDerateParamSine_size 15
#define InvHeader_size 14
#define InvInverterParamCommon_size 41
#define InvInverterParamFOC_size 2
#define InvMotorParamCommon_size 39
#define InvMotorParamFOC_size 35
#define InvMotorParamSine_size 40
#define InvRegenParam_size 35
#define InvStatus_size 451
#define InvThrottleParamCommon_size 32
#define InvThrottleParamFOC_size 5
#define InvThrottleParamSine_size 10
#ifdef __cplusplus
} /* extern "C" */
#endif
#endif