summaryrefslogtreecommitdiffstats
path: root/positioning/server/include/Sensor/VehicleSens_DataMaster.h
blob: a18076429ba6b2321fde96f1b1fb16fe00fe9387 (plain)
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
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
/*
 * @copyright Copyright (c) 2016-2020 TOYOTA MOTOR CORPORATION.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

#ifndef POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DATAMASTER_H_
#define POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DATAMASTER_H_
/****************************************************************************
 * File name    :VehicleSens_DataMaster.h
 * System name    :_CWORD107_
 * Subsystem name  :Vehicle sensor process
 ****************************************************************************/

#include "Vehicle_API_Dummy.h"
#include "Vehicle_API_private.h"

#include "positioning_hal.h"
#include "VehicleSens_Common.h"
#include "VehicleSens_SelectionItemList.h"
#include "CommonDefine.h"
#include <vehicle_service/POS_common_API.h>
#include <vehicle_service/POS_gps_API.h>
#include "Naviinfo_API.h"

/************************************************************************
*      Macro definitions                          *
************************************************************************/
/* Initial value */
#define  VEHICLE_DINIT_SP1P            0x0000
#define  VEHICLE_DINIT_SP1S            0x00
#define  VEHICLE_DINIT_SP1             0x0000
#define  VEHICLE_DINIT_ECOMODE         0x00
#define  VEHICLE_DINIT_NE1             0x0000
#define  VEHICLE_DINIT_R_ACCALL        0x00
#define  VEHICLE_DINIT_R_AC_WNG        0x00
#define  VEHICLE_DINIT_R_SW_CON        0x00
#define  VEHICLE_DINIT_R_BEEP          0x00
#define  VEHICLE_DINIT_I_RA_AUT        0x00
#define  VEHICLE_DINIT_I_RA_AC         0x00
#define  VEHICLE_DINIT_I_RA_LO         0x00
#define  VEHICLE_DINIT_I_RA_HI         0x00
#define  VEHICLE_DINIT_I_AUTO_D        0x00
#define  VEHICLE_DINIT_I_AUTO_P        0x00
#define  VEHICLE_DINIT_I_DEF           0x00
#define  VEHICLE_DINIT_I_RRDEF         0x00
#define  VEHICLE_DINIT_I_RFAUT         0x00
#define  VEHICLE_DINIT_I_REC           0x00
#define  VEHICLE_DINIT_I_FRS           0x00
#define  VEHICLE_DINIT_I_AC            0x00
#define  VEHICLE_DINIT_I_MHTR          0x00
#define  VEHICLE_DINIT_I_WIPD          0x00
#define  VEHICLE_DINIT_I_DUSY          0x00
#define  VEHICLE_DINIT_I_SWNG          0x00
#define  VEHICLE_DINIT_I_BLW_F         0x00
#define  VEHICLE_DINIT_I_OAUT_D        0x00
#define  VEHICLE_DINIT_I_OLET_D        0x00
#define  VEHICLE_DINIT_I_OAUT_P        0x00
#define  VEHICLE_DINIT_I_OLET_P        0x00
#define  VEHICLE_DINIT_ST_BMN_F        0x00
#define  VEHICLE_DINIT_I_AIRPR         0x00
#define  VEHICLE_DINIT_I_O2            0x00
#define  VEHICLE_DINIT_I_PLSM          0x00
#define  VEHICLE_DINIT_I_KAFUN         0x00
#define  VEHICLE_DINIT_I_SAFS          0x00
#define  VEHICLE_DINIT_R_ONSCRN        0x00
#define  VEHICLE_DINIT_I_HUM           0x00
#define  VEHICLE_DINIT_I_TMP_D         0x00
#define  VEHICLE_DINIT_I_TMP_P         0x00
#define  VEHICLE_DINIT_SL_ACDSP        0x00
#define  VEHICLE_DINIT_SL_DUSY         0x00
#define  VEHICLE_DINIT_SL_CIF          0x00
#define  VEHICLE_DINIT_SL_BLW_F        0x00
#define  VEHICLE_DINIT_SL_SRLVL        0x00
#define  VEHICLE_DINIT_SL_RR_IH        0x00
#define  VEHICLE_DINIT_SL_RAUTO        0x00
#define  VEHICLE_DINIT_SL_BLW_R        0x00
#define  VEHICLE_DINIT_SL_DST          0x00
#define  VEHICLE_DINIT_SL_WIPD         0x00
#define  VEHICLE_DINIT_SL_MRHT         0x00
#define  VEHICLE_DINIT_SL_AIRP         0x00
#define  VEHICLE_DINIT_SL_O2           0x00
#define  VEHICLE_DINIT_SL_PLSM         0x00
#define  VEHICLE_DINIT_SL_KAFUN        0x00
#define  VEHICLE_DINIT_SL_SWNG         0x00
#define  VEHICLE_DINIT_ST_CN_OK        0x00
#define  VEHICLE_DINIT_SL_RBLW         0x00
#define  VEHICLE_DINIT_SL_HUM          0x00
#define  VEHICLE_DINIT_R_INLVL         0x00
#define  VEHICLE_DINIT_I_INLVL         0x00
#define  VEHICLE_DINIT_I_AUT_RR        0x00
#define  VEHICLE_DINIT_I_AUT_RL        0x00
#define  VEHICLE_DINIT_I_CNT_IH        0x00
#define  VEHICLE_DINIT_I_RAUTO         0x00
#define  VEHICLE_DINIT_ST_BMN_R        0x00
#define  VEHICLE_DINIT_I_BLW_R         0x00
#define  VEHICLE_DINIT_R_RONSCR        0x00
#define  VEHICLE_DINIT_I_OLT_RR        0x00
#define  VEHICLE_DINIT_I_OLT_RL        0x00
#define  VEHICLE_DINIT_I_TMP_RR        0x00
#define  VEHICLE_DINIT_I_TMP_RL        0x00
#define  VEHICLE_DINIT_ACN_AMB         0x00
#define  VEHICLE_DINIT_AC_AMB05        0x00
#define  VEHICLE_DINIT_SOC_MON         0x00
#define  VEHICLE_DINIT_RDYIND          0x00
#define  VEHICLE_DINIT_HV_M2B          0x00
#define  VEHICLE_DINIT_HV_EP           0x00
#define  VEHICLE_DINIT_HV_EM           0x00
#define  VEHICLE_DINIT_RNRG            0x00
#define  VEHICLE_DINIT_HV_MP           0x00
#define  VEHICLE_DINIT_HV_MB           0x00
#define  VEHICLE_DINIT_HV_RG           0x00
#define  VEHICLE_DINIT_B_P             0x00
#define  VEHICLE_DINIT_B_R             0x00
#define  VEHICLE_DINIT_B_N             0x00
#define  VEHICLE_DINIT_B_D             0x00
#define  VEHICLE_DINIT_B_FC            0x0000
#define  VEHICLE_DINIT_R_DISP          0x00
#define  VEHICLE_DINIT_HVFLAG          0x00
#define  VEHICLE_DINIT_DVINF           0x00
#define  VEHICLE_DINIT_IN_FC           0x0000
#define  VEHICLE_DINIT_UNIT_0          0x00
#define  VEHICLE_DINIT_AS_SP           0x0000
#define  VEHICLE_DINIT_UNIT_1          0x00
#define  VEHICLE_DINIT_FC_SCL          0x00
#define  VEHICLE_DINIT_RANGE           0x0000
#define  VEHICLE_DINIT_UNIT_4          0x00
#define  VEHICLE_DINIT_TO_FC           0x0000
#define  VEHICLE_DINIT_UNIT_6          0x00
#define  VEHICLE_DINIT_AS_TM           0x0000
#define  VEHICLE_DINIT_ADIM_C          0x00
#define  VEHICLE_DINIT_LGCY            0x00
#define  VEHICLE_DINIT_BCTY            0x00
#define  VEHICLE_DINIT_RTRRQ           0x00
#define  VEHICLE_DINIT_DEST_BDB        0x00
#define  VEHICLE_DINIT_DS_PACK1        0x00
#define  VEHICLE_DINIT_DS_PACK2        0x00
#define  VEHICLE_DINIT_STRG_WHL        0x00
#define  VEHICLE_DINIT_TRIP_CNT        0x0000
#define  VEHICLE_DINIT_TIME_CNT        0x00000000
#define  VEHICLE_DINIT_TPM_VAR         0x00
#define  VEHICLE_DINIT_TPM_WA1         0x00
#define  VEHICLE_DINIT_TPM_TNUM        0x00
#define  VEHICLE_DINIT_TPM_REQ0        0x00
#define  VEHICLE_DINIT_TPM_TAN0        0x00
#define  VEHICLE_DINIT_TPM_FLPR        0x00
#define  VEHICLE_DINIT_TPM_FL0         0x00
#define  VEHICLE_DINIT_TPM_FRPR        0x00
#define  VEHICLE_DINIT_TPM_FR0         0x00
#define  VEHICLE_DINIT_TPM_RLPR        0x00
#define  VEHICLE_DINIT_TPM_RL0         0x00
#define  VEHICLE_DINIT_TPM_RRPR        0x00
#define  VEHICLE_DINIT_TPM_RR0         0x00
#define  VEHICLE_DINIT_TPM_SPPR        0x00
#define  VEHICLE_DINIT_TPM_SP0         0x00
#define  VEHICLE_DINIT_B_R2            0x00
#define  VEHICLE_DINIT_VSP0B           0x00
#define  VEHICLE_DINIT_EPBLOCK         0x00

#define  VEHICLE_DINIT_DESTINATION_DEST_BDB    0x00
#define  VEHICLE_DINIT_DESTINATION_DS_PACK1    0x00
#define  VEHICLE_DINIT_DESTINATION_DS_PACK2    0x00
#define  VEHICLE_DINIT_HV              0x00
#define  VEHICLE_DINIT_2WD4WD          0x00
#define  VEHICLE_DINIT_STEERING_WHEEL  0x00
#define  VEHICLE_DINIT_VB              0x00
#define  VEHICLE_DINIT_IG              0x00
#define  VEHICLE_DINIT_MIC             0x00
#define  VEHICLE_DINIT_TEST            0x00
#define  VEHICLE_DINIT_VTRADAPTER      0x00
#define  VEHICLE_DINIT_AUXADAPTER      0x00
#define  VEHICLE_DINIT_BACKDOOR        0x00
#define  VEHICLE_DINIT_PKB             0x00
#define  VEHICLE_DINIT_PKB_CAN         0x00
#define  VEHICLE_DINIT_ADIM            0x00
#define  VEHICLE_DINIT_ILL             0x00
#define  VEHICLE_DINIT_RHEOSTAT        0x00
#define  VEHICLE_DINIT_PANELTEMP       0x00
#define  VEHICLE_DINIT_SYSTEMP         0x0000
#define  VEHICLE_DINIT_SPEED_PULSE     0x0000
#define  VEHICLE_DINIT_SPEED_KMPH      0x0000
#define  VEHICLE_DINIT_GYRO_X          0x0000
#define  VEHICLE_DINIT_GYRO_Y          0x0000
#define  VEHICLE_DINIT_GYRO_Z          0x0000
#define  VEHICLE_DINIT_GYRO            VEHICLE_DINIT_GYRO_X
#define  VEHICLE_DINIT_GSNS_X          0x0000
#define  VEHICLE_DINIT_GSNS_Y          0x0000
#define  VEHICLE_DINIT_GSNS_Z          0x0000
#define  VEHICLE_DINIT_REV             0x00
#define  VEHICLE_DINIT_VSC1S03_4       0x00
#define  VEHICLE_DINIT_VSC1S03_5       0x00
#define  VEHICLE_DINIT_VSC1S03_6       0x00
#define  VEHICLE_DINIT_VSC1S03_7       0x00
#define  VEHICLE_DINIT_ECO1S01_2       0x00
#define  VEHICLE_DINIT_ENG1F07_0       0x00
#define  VEHICLE_DINIT_ENG1F07_1       0x00
#define  VEHICLE_DINIT_ENG1S03_0       0x00
#define  VEHICLE_DINIT_ENG1S03_1       0x00
#define  VEHICLE_DINIT_ACN1S04_0       0x00
#define  VEHICLE_DINIT_ACN1S04_1       0x00
#define  VEHICLE_DINIT_ACN1S04_2       0x00
#define  VEHICLE_DINIT_ACN1S04_3       0x00
#define  VEHICLE_DINIT_ACN1S04_4       0x00
#define  VEHICLE_DINIT_ACN1S04_5       0x00
#define  VEHICLE_DINIT_ACN1S04_7       0x00
#define  VEHICLE_DINIT_ACN1S05_0       0x00
#define  VEHICLE_DINIT_ACN1S05_1       0x00
#define  VEHICLE_DINIT_ACN1S06_0       0x00
#define  VEHICLE_DINIT_ACN1S06_1       0x00
#define  VEHICLE_DINIT_ACN1S06_2       0x00
#define  VEHICLE_DINIT_ACN1S06_4       0x00
#define  VEHICLE_DINIT_ACN1S06_7       0x00
#define  VEHICLE_DINIT_ACN1S08_0       0x00
#define  VEHICLE_DINIT_ACN1S08_1       0x00
#define  VEHICLE_DINIT_ACN1S08_2       0x00
#define  VEHICLE_DINIT_ACN1S08_6       0x00
#define  VEHICLE_DINIT_ACN1S08_7       0x00
#define  VEHICLE_DINIT_ACN1S07_3       0x00
#define  VEHICLE_DINIT_ACN1S07_5       0x00
#define  VEHICLE_DINIT_EHV1S90_2       0x00
#define  VEHICLE_DINIT_EHV1S90_3       0x00
#define  VEHICLE_DINIT_EHV1S90_4       0x00
#define  VEHICLE_DINIT_EHV1S90_5       0x00
#define  VEHICLE_DINIT_EHV1S90_6       0x00
#define  VEHICLE_DINIT_EHV1S90_7       0x00
#define  VEHICLE_DINIT_ECT1S92_1       0x00
#define  VEHICLE_DINIT_ECT1S92_5       0x00
#define  VEHICLE_DINIT_ENG1S28_0       0x00
#define  VEHICLE_DINIT_ENG1S28_1       0x00
#define  VEHICLE_DINIT_BGM1S01_0       0x00
#define  VEHICLE_DINIT_ENG1F03_1       0x00
#define  VEHICLE_DINIT_ENG1F03_3       0x00
#define  VEHICLE_DINIT_MET1S01_5       0x00
#define  VEHICLE_DINIT_MET1S01_6       0x00
#define  VEHICLE_DINIT_MET1S01_7       0x00
#define  VEHICLE_DINIT_MET1S03_2       0x00
#define  VEHICLE_DINIT_MET1S03_3       0x00
#define  VEHICLE_DINIT_MET1S03_4       0x00
#define  VEHICLE_DINIT_MET1S04_4       0x00
#define  VEHICLE_DINIT_MET1S04_5       0x00
#define  VEHICLE_DINIT_MET1S04_6       0x00
#define  VEHICLE_DINIT_MET1S04_7       0x00
#define  VEHICLE_DINIT_MET1S05_5       0x00
#define  VEHICLE_DINIT_MET1S05_6       0x00
#define  VEHICLE_DINIT_MET1S05_7       0x00
#define  VEHICLE_DINIT_MET1S07_6       0x00
#define  VEHICLE_DINIT_MET1S07_7       0x00
#define  VEHICLE_DINIT_BDB1S01_4       0x00
#define  VEHICLE_DINIT_BDB1S01_5       0x00
#define  VEHICLE_DINIT_BDB1S03_4       0x00
#define  VEHICLE_DINIT_BDB1S08_2       0x00
#define  VEHICLE_DINIT_BDB1S08_3       0x00
#define  VEHICLE_DINIT_BDB1S08_4       0x00
#define  VEHICLE_DINIT_BDB1S08_5       0x00
#define  VEHICLE_DINIT_BDB1F03_2       0x00
#define  VEHICLE_DINIT_BDB1F03_3       0x00
#define  VEHICLE_DINIT_BDB1F03_4       0x00
#define  VEHICLE_DINIT_BDB1F03_5       0x00
#define  VEHICLE_DINIT_BDB1F03_6       0x00
#define  VEHICLE_DINIT_BDB1F03_7       0x00
#define  VEHICLE_DINIT_TPM1S02_2       0x00
#define  VEHICLE_DINIT_TPM1S02_5       0x00
#define  VEHICLE_DINIT_TPM1S03_2       0x00
#define  VEHICLE_DINIT_TPM1S03_3       0x00
#define  VEHICLE_DINIT_TPM1S03_4       0x00
#define  VEHICLE_DINIT_TPM1S03_5       0x00
#define  VEHICLE_DINIT_TPM1S03_6       0x00
#define  VEHICLE_DINIT_TPM1S03_7       0x00
#define  VEHICLE_DINIT_ENG1S92_3       0x00
#define  VEHICLE_DINIT_MMT1S52_0       0x00
#define  VEHICLE_DINIT_EPB1S01_0       0x00
#define  VEHICLE_DINIT_MINIJACK        0x00
#define  VEHICLE_DINIT_GPS_ANTENNA     0x00
#define  VEHICLE_DINIT_SNS_COUNTER     0x00
#define  VEHICLE_DINIT_GPS_COUNTER     0x00

/* ++ PastModel002 support */
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_POSLLH    0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_STATUS    0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_TIMEUTC   0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_VELNED    0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_DOP       0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_TIMEGPS   0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_SVINFO    0x00
#define  VEHICLE_DINIT_GPS_UBLOX_NAV_CLOCK     0x00
#define  VEHICLE_DINIT_GPS_UBLOX_MON_HW        0x00

#define  VEHICLE_DINIT_SPEED_PULSE_FLAG      0x00
#define  VEHICLE_DINIT_GPS_INTERRUPT_FLAG    0x00

#define  VEHICLE_DINIT_GYRO_TROUBLE               0x00  /* Gyro failure status undefined(GYRO_UNFIXED) */
#define  VEHICLE_DINIT_MAIN_GPS_INTERRUPT_SIGNAL  0x00
#define  VEHICLE_DINIT_SYS_GPS_INTERRUPT_SIGNAL   0x00
#define  VEHICLE_DINIT_GYRO_CONNECT_STATUS        0x00
/* -- PastModel002 support */

/* Size of the data(byte) */
#define  VEHICLE_DSIZE_DESTINATION     0x03
#define  VEHICLE_DSIZE_HV              0x01
#define  VEHICLE_DSIZE_2WD4WD          0x01
#define  VEHICLE_DSIZE_STEERING_WHEEL  0x01
#define  VEHICLE_DSIZE_VB              0x01
#define  VEHICLE_DSIZE_IG              0x01
#define  VEHICLE_DSIZE_MIC             0x01
#define  VEHICLE_DSIZE_TEST            0x01
#define  VEHICLE_DSIZE_VTRADAPTER      0x01
#define  VEHICLE_DSIZE_AUXADAPTER      0x01
#define  VEHICLE_DSIZE_BACKDOOR        0x01
#define  VEHICLE_DSIZE_PKB             0x01
#define  VEHICLE_DSIZE_ADIM            0x01
#define  VEHICLE_DSIZE_ILL             0x01
#define  VEHICLE_DSIZE_RHEOSTAT        0x01
#define  VEHICLE_DSIZE_PANELTEMP       0x01
#define  VEHICLE_DSIZE_SYSTEMP         0x02
#define  VEHICLE_DSIZE_SPEED_PULSE     0x14
#define  VEHICLE_DSIZE_SPEED_KMPH      0x02
#define  VEHICLE_DSIZE_GYRO_X          0x14
#define  VEHICLE_DSIZE_GYRO_Y          0x14
#define  VEHICLE_DSIZE_GYRO_Z          0x14
#define  VEHICLE_DSIZE_GYRO            VEHICLE_DSIZE_GYRO_X
#define  VEHICLE_DSIZE_GYRO_TEMP       0x02
#define  VEHICLE_DSIZE_PULSE_TIME      0x84
#define  VEHICLE_DSIZE_GSNS_X          0x06
#define  VEHICLE_DSIZE_GSNS_Y          0x06
#define  VEHICLE_DSIZE_GSNS_Z          0x06
#define  VEHICLE_DSIZE_REV             0x01
#define  VEHICLE_DSIZE_VSC1S03         0x09  /* Internal extensions */
#define  VEHICLE_DSIZE_ECO1S01         0x05
#define  VEHICLE_DSIZE_ENG1F07         0x08
#define  VEHICLE_DSIZE_ENG1S03         0x08
#define  VEHICLE_DSIZE_ACN1S04         0x08
#define  VEHICLE_DSIZE_ACN1S05         0x02
#define  VEHICLE_DSIZE_ACN1S06         0x08
#define  VEHICLE_DSIZE_ACN1S08         0x08
#define  VEHICLE_DSIZE_ACN1S07         0x06
#define  VEHICLE_DSIZE_EHV1S90         0x08
#define  VEHICLE_DSIZE_ECT1S92         0x08
#define  VEHICLE_DSIZE_ENG1S28         0x02
#define  VEHICLE_DSIZE_BGM1S01         0x01
#define  VEHICLE_DSIZE_ENG1F03         0x08
#define  VEHICLE_DSIZE_CAA1N01         0x08
#define  VEHICLE_DSIZE_MET1S01         0x08
#define  VEHICLE_DSIZE_MET1S03         0x08
#define  VEHICLE_DSIZE_MET1S04         0x08
#define  VEHICLE_DSIZE_MET1S05         0x08
#define  VEHICLE_DSIZE_MET1S07         0x08
#define  VEHICLE_DSIZE_BDB1S01         0x08
#define  VEHICLE_DSIZE_BDB1S03         0x08
#define  VEHICLE_DSIZE_BDB1S08         0x08
#define  VEHICLE_DSIZE_BDB1F03         0x08
#define  VEHICLE_DSIZE_TPM1S02         0x08
#define  VEHICLE_DSIZE_TPM1S03         0x08
#define  VEHICLE_DSIZE_ENG1S92         0x08
#define  VEHICLE_DSIZE_MMT1S52         0x08
#define  VEHICLE_DSIZE_EPB1S01         0x03
#define  VEHICLE_DSIZE_MINIJACK        0x01
#define  VEHICLE_DSIZE_GPS_ANTENNA     0x01
#define  VEHICLE_DSIZE_SNS_COUNTER     0x01
#define  VEHICLE_DSIZE_GPS_COUNTER     0x01
#define  VEHICLE_DSIZE_SIRF_BINARY     360
#define  VEHICLE_DSIZE_RTC             VEHICLE_DSIZE_GPS_FORMAT
#define  VEHICLE_DSIZE_GPS_VERSION     VEHICLE_DSIZE_GPS_FORMAT
#define  VEHICLE_DSIZE_SATELLITE_STATUS  VEHICLE_DSIZE_GPS_FORMAT
#define  VEHICLE_DSIZE_LOCATION        VEHICLE_DSIZE_GPS_FORMAT
/* ++ GPS _CWORD82_ support */
#define  VEHICLE_DSIZE_GPS__CWORD82___CWORD44_GP4  VEHICLE_DSIZE_GPS_FORMAT
#define  VEHICLE_DSIZE_GPS__CWORD82__NMEA          424
#define  VEHICLE_DSIZE_GPS__CWORD82__FULLBINARY    VEHICLE_DSIZE_GPS_FORMAT
/* -- GPS _CWORD82_ support */
#if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
#define VEHICLE_DSIZE_DATA_MASTER_FST      0x1200

#define  VEHICLE_DSIZE_GYRO_X_FST         LSDRV_FSTSNS_DSIZE_GYRO_X
#define  VEHICLE_DSIZE_GYRO_Y_FST         LSDRV_FSTSNS_DSIZE_GYRO_Y
#define  VEHICLE_DSIZE_GYRO_Z_FST         LSDRV_FSTSNS_DSIZE_GYRO_Z
#define  VEHICLE_DSIZE_SPEED_PULSE_FST    LSDRV_FSTSNS_DSIZE_SPEED
#define  VEHICLE_DSIZE_GSNSX_FST          LSDRV_FSTSNS_DSIZE_GSENSOR_X
#define  VEHICLE_DSIZE_GSNSY_FST          LSDRV_FSTSNS_DSIZE_GSENSOR_Y
#define  VEHICLE_DSIZE_GSNSZ_FST          LSDRV_FSTSNS_DSIZE_GSENSOR_Z
#define  VEHICLE_DSIZE_GYROTEMP_FST       LSDRV_FSTSNS_DSIZE_GYRO_TEMP
#define  VEHICLE_DSIZE_SPEED_PULSE_FLAG_FST  LSDRV_FSTSNS_DSIZE_SPEED_FLG
#define  VEHICLE_DSIZE_REV_FST            LSDRV_FSTSNS_DSIZE_REV

#define  VEHICLE_DSIZE_GYRO_EXT          0x500
#define  VEHICLE_DSIZE_SPEED_PULSE_EXT   0x500
#define  VEHICLE_DSIZE_GSNS_X_EXT        0x500
#define  VEHICLE_DSIZE_GSNS_Y_EXT        0x500
#define  VEHICLE_DSIZE_GSNS_Z_EXT        0x500
#define  VEHICLE_DSIZE_SNS_COUNTER_EXT   0x40
#define  VEHICLE_DSIZE_GYRO_TEMP_EXT     0x80
#define  VEHICLE_DSIZE_REV_EXT           0x40
#define  VEHICLE_DSIZE_PULSE_TIME_EXT    0x2100

#define  VEHICLE_DSIZE_GYRO_EXT_INIT         0x00  /* Gyro output extended data master registration number initial value    */
#define  VEHICLE_DSIZE_SPEED_PULSE_EXT_INIT  0x00  /* Vehicle speed expansion data master registration number initial value    */
#define  VEHICLE_DSIZE_GSNS_X_EXT_INIT       0x00  /* Initial value of G sensor (X-axis) extended data master registration number    */
#define  VEHICLE_DSIZE_GSNS_Y_EXT_INIT       0x00  /* Initial value of G sensor (Y-axis) expansion data master registration number    */
#define  VEHICLE_DSIZE_GSNS_Z_EXT_INIT       0x00  /* Initial value of G sensor (Z-axis) expansion data master registration number    */
#define  VEHICLE_DSIZE_SNS_COUNTER_EXT_INIT  0x00  /* Initial value of register number of sensor counter extended data master  */
#define  VEHICLE_DSIZE_REV_EXT_INIT          0x00  /* REV extended data master registration number initial value        */
#define  VEHICLE_DSIZE_GYRO_TEMP_EXT_INIT    0x00  /* Gyro Temperature Extended Data Master Registration Number Initial Value    */
#define  VEHICLE_DSIZE_PULSE_TIME_EXT_INIT   0x00  /* Extended data master registration number initial value between pulse time    */

#define  VEHICLE_DSIZE_GYRO_TROUBLE              0x01
#define VEHICLE_DSIZE_MAIN_GPS_INTERRUPT_SIGNAL  0x01
#define  VEHICLE_DSIZE_SYS_GPS_INTERRUPT_SIGNAL  0x01
#define  VEHICLE_DSIZE_GYRO_CONNECT_STATUS       0x01

#define  VEHICLE_DKEEP_MAX            64    /* Internal data retention count      */

/* Data storage location */
#define  VEHICLE_DATA_POS_00            0x00  /* Data storage position 0 */
#define  VEHICLE_DATA_POS_01            0x01  /* Data storage position 1 */
#endif

#define  VEHICLE_DSIZE_GPS_FORMAT        1904

/* ++ PastModel002 support */
/* GPS_u-blox data size(Up to 208 bytes + 1 byte of sensor counter) */
#define  VEHICLE_DSIZE_GPS_UBLOX_FORMAT      212
/* ++ PastModel002 support */

/* NMEA data size */
#define VEHICLE_DSIZE_GPS_NMEA_GGA        71    /* Positioning information(Fixed-length sentence 71 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_DGGA       75    /* Double precision GGA - Positioning information(Fixed-length sentence 75 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_VTG        37    /* Progress Direction,Velocity information(Fixed-length sentence 37 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_RMC        61    /* RMC - Minimal information(Fixed-length sentence 61 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_DRMC       67    /* Double RMC - Minimal information(Fixed-length sentence 67 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_GLL        44    /* GLL - Geographical locality information(Fixed-length sentence 44 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_DGLL       50    /* Double-precision GLL - Geographical locality information(Fixed-length sentence 50 Byte) */
/* GSA - DOP information and positioning satellite information(Fixed-length sentence 66 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_GSA        66
#define VEHICLE_DSIZE_GPS_NMEA_GSV_1      70    /* GSV - Visual satellite information(Fixed-length sentence 70 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_GSV_2      70    /* GSV - Visual satellite information(Fixed-length sentence 70 Byte) */
#define VEHICLE_DSIZE_GPS_NMEA_GSV_3      70    /* GSV - Visual satellite information(Fixed-length sentence 70 Byte) */
/* _CWORD44_,GP,3 - Visual satellite reception information */
#define VEHICLE_DSIZE_GPS_NMEA_PJRDC_GP_3    78
/* _CWORD44_,GP,4 - Receiver-specific information */
#define VEHICLE_DSIZE_GPS_NMEA_PJRDC_GP_4    25

/* FULLBINARY data size */
/* Fully customized output */
#define VEHICLE_DSIZE_GPS_FULLBINARY  GPS_CMD_FULLBIN_SZ

#if CONFIG_HW_PORTSET_TYPE_C
#define  VEHICLE_DSIZE_NMEA           0
#define  VEHICLE_DSIZE_GGA            0x00
#define  VEHICLE_DSIZE_GLL            0x00
#define  VEHICLE_DSIZE_GSA            0x00
#define  VEHICLE_DSIZE_GSV            0x00
#define  VEHICLE_DSIZE_RMC            0x00
#define  VEHICLE_DSIZE_VTG            0x00
#endif

/* ++ PastModel002 support */
#define VEHICLE_DSIZE_GPS_UBLOX_HEADER_SIZE    0    /* UBX common header size */

#define VEHICLE_DSIZE_GPS_UBLOX_NAV_CLOCK      0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_DOP        0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_POSLLH     0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_STATUS     0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_SVINFO     0    /* 8 + 12*numCh(For variable,Define only the fixed part) */
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_TIMEGPS    0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_TIMEUTC    0
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_VELNED     0
#define VEHICLE_DSIZE_GPS_UBLOX_MON_HW         0

#define  VEHICLE_DSIZE_SPEED_PULSE_FLAG        0x00
#define  VEHICLE_DSIZE_GPS_INTERRUPT_FLAG      0x00

#define VEHICLE_DSIZE_GPS_UBLOX_NAV_SVINFO_CH_MAX     0  /* Maximum number of NAV_SVINFO channels */
#define VEHICLE_DSIZE_GPS_UBLOX_NAV_SVINFO_ALONE_MAX  0  /* NAV_SVINFO channel:Maximum Single Data Size */
/* -- PastModel002 support */

/* Data received*/
#define  VEHICLE_RCVFLAG_ON             0x00
#define  VEHICLE_RCVFLAG_OFF            0x00

/* Upper limit of number of data items stored between pulses */
#define VEHICLE_SNS_INFO_PULSE_NUM          0

/*------------------------------------------------------------------------------*
 * NMEA reception flag                               *
 -------------------------------------------------------------------------------*/
/* Not supported by UBX_Protocol */

/************************************************************************
*      Struct definitions                          *
************************************************************************/

/*********************************************************************
* TAG       : VEHICLESENS_DATA_MASTER
* ABSTRACT  : Vehicle sensor data master structure
***********************************************************************/
typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_snscnt;    /* Sensor Counter  */
    u_int8  uc_data[132];  /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER;

#if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data[8448];  /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_EXT;

typedef struct {
    DID    ul_did;                  /* Data ID          */
    u_int16  us_size;                  /* Size of the data      */
    u_int8  uc_rcvflag;                /* Receive flag        */
    u_int8  partition_flg;            /* Fragmented Transmission Flag      */
    u_int8  uc_data[VEHICLE_DSIZE_DATA_MASTER_FST];  /* Vehicle sensor data     */
} VEHICLESENS_DATA_MASTER_FST;

#endif

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data[VEHICLE_DSIZE_GPS_FORMAT];  /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_FORMAT;

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data[VEHICLE_DSIZE_SIRF_BINARY];  /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_BINARY;

/* ++ GPS _CWORD82_ support */
typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data[VEHICLE_DSIZE_GPS__CWORD82__NMEA];  /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_NMEA_FORMAT;

/* -- GPS _CWORD82_ support */
#if CONFIG_HW_PORTSET_TYPE_C

typedef struct {
    DID    ul_did;              /* Data ID      */
    u_int16  us_size;              /* Size of the data  */
    u_int8  uc_rcvflag;            /* Receive flag    */
    u_int8  uc_reserve;            /* Reserved      */
    u_int8  uc_data[VEHICLE_DSIZE_NMEA];    /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_NMEA;
#endif

/* ++ PastModel002 support */
typedef struct {
    DID    ul_did;      /* Data ID        */
    u_int16  us_size;      /* Size of the data    */
    u_int8  uc_rcvflag;    /* Receive flag      */
    u_int8  uc_sensor_cnt;  /* Sensor Counter    */
    u_int8  uc_gpscnt_flag;  /* GPS counter flag  */
    u_int8  reserve[3];    /* reserve        */
    u_int8  uc_data[VEHICLE_DSIZE_GPS_UBLOX_FORMAT];  /* UBLOX_GPS data  */
} VEHICLESENS_DATA_MASTER_GPS_UBLOX_FORMAT;

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data;      /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GYRO_TROUBLE;

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data;      /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL;

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_reserve;    /* Reserved      */
    u_int8  uc_data;      /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GYRO_CONNECT_STATUS;

typedef struct {
    DID    ul_did;      /* Data ID      */
    u_int16  us_size;      /* Size of the data  */
    u_int8  uc_rcvflag;    /* Receive flag    */
    u_int8  uc_sensor_cnt;  /* Sensor Counter  */
    u_int8  uc_data;      /* Vehicle sensor data  */
} VEHICLESENS_DATA_MASTER_GPS_ANTENNA_STATUS;

/* ++ PastModel002 support */

#if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
/*********************************************************************
* TAG       : VEHICLESENS_PKG_DELIVERY_TEMP_EXT
* ABSTRACT  : Structure of Vehicle Sensor Initial Delivery Management Table
***********************************************************************/
typedef struct {
    u_int16  us_gyro[10];      /* Gyro output        */
    u_int16  us_sp_pls[10];    /* Vehicle speed pulse        */
    u_int8  uc_sens_cnt;      /* Sensor Counter      */
    u_int8  uc_reserve[3];    /* reserve          */
} VEHICLESENS_PKG_DELIVERY_TEMP_TBL;

// for VEHICLESENS_PKG_DELIVERY_TEMP_EXT.start_point index
enum VEHICLESENS_PKG_INDEX {
  SNSCounter = 0,
  SpeedPulse,
  GyroExt,
  GsnsX,
  GsnsY,
  Rev,
  GyroTemp,
  PulseTime,
  GyroY,
  GyroZ,
  GsnsZ,
  MAX
};

typedef struct {
    uint16_t  start_point[8];                /* Sequence reference start position      */
    uint16_t  end_point;                    /* Array registration completion position      */
    uint16_t  data_break;                  /* All data undelivered flag    */
} VEHICLESENS_PKG_DELIVERY_TEMP_EXT;

/************************************************************************
*      External variable                          *
************************************************************************/
extern  VEHICLESENS_PKG_DELIVERY_TEMP_EXT  gstPkgTempExt;  // NOLINT(readability/nolint)
#endif

/************************************************************************
*      Function prototype                        *
************************************************************************/
void  VehicleSensInitDataMaster(void);
void  VehicleSensSetDataMasterLineSens(const LSDRV_LSDATA *, PFUNC_DMASTER_SET_N func, BOOL);
void  VehicleSensSetDataMasterLineSensG(const LSDRV_LSDATA_G *, PFUNC_DMASTER_SET_N func, BOOL);
void  VehicleSensSetDataMasterGps(SENSOR_MSG_GPSDATA_DAT *, PFUNC_DMASTER_SET_N func);
void  VehicleSensGetDataMaster(DID ul_did, u_int8, VEHICLESENS_DATA_MASTER *);
void  VehicleSensGetGpsDataMaster(DID ul_did, u_int8, SENSOR_MSG_GPSDATA_DAT *);
void  VehicleSensSetDataMasterData(const POS_MSGINFO *, PFUNC_DMASTER_SET_N func);

#if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
void  VehicleSensSetDataMasterLineSensFst(const LSDRV_LSDATA_FST *pst_data, PFUNC_DMASTER_SET_N p_data_master_set_n);
void  VehicleSensSetDataMasterLineSensFstG(const LSDRV_MSG_LSDATA_DAT_FST *pst_data,
        PFUNC_DMASTER_SET_N p_data_master_set_n);
void  VehicleSensGetDataMasterFst(DID ul_did, u_int8, VEHICLESENS_DATA_MASTER_FST *);
void  VehicleSensGetDataMasterExt(DID ul_did, u_int8, VEHICLESENS_DATA_MASTER_EXT *);
#endif

void  VehicleSensSetDataMasterGyroTrouble(const LSDRV_MSG_LSDATA_DAT_GYRO_TROUBLE *pst_data,
        PFUNC_DMASTER_SET_N p_data_master_set_n);
void  VehicleSensSetDataMasterSysGpsInterruptSignal(const LSDRV_MSG_LSDATA_DAT_GPS_INTERRUPT_SIGNAL *pst_data,
        PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory);
void  VehicleSensSetDataMasterMainGpsInterruptSignal(const SENSOR_MSG_GPSDATA_DAT *pst_data,
        PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory);
void  VehicleSensSetDataMasterGyroConnectStatus(const LSDRV_MSG_LSDATA_DAT_GYRO_CONNECT_STATUS *pst_data,
        PFUNC_DMASTER_SET_SHARED_MEMORY p_data_master_set_shared_memory);
void  VehicleSensSetDataMasterGpsAntennaStatus(const LSDRV_MSG_LSDATA_DAT_GPS_ANTENNA_STATUS *pst_data,
        PFUNC_DMASTER_SET_N p_data_master_set_n);

void  VehicleSensGetDataMasterGyroTrouble(DID ul_did, u_int8 uc_get_method,
        VEHICLESENS_DATA_MASTER_GYRO_TROUBLE *pst_data);
void  VehicleSensGetDataMasterSysGpsInterruptSignal(DID ul_did, u_int8 uc_get_method,
        VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data);
void  VehicleSensGetDataMasterMainGpsInterruptSignal(DID ul_did, u_int8 uc_get_method,
        VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data);
void  VehicleSensGetDataMasterGyroConnectStatus(DID ul_did, u_int8 uc_get_method,
        VEHICLESENS_DATA_MASTER_GYRO_CONNECT_STATUS *pst_data);
void  VehicleSensGetDataMasterGpsAntennaStatus(DID ul_did, u_int8 uc_get_method,
        VEHICLESENS_DATA_MASTER_GPS_ANTENNA_STATUS *pst_data);

void VehicleSensGetGsnsX(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGsnsXl(void);
u_int8 VehicleSensSetGsnsXl(const LSDRV_LSDATA *);
void VehicleSensGetGsnsXl(VEHICLESENS_DATA_MASTER *);
u_int8 VehicleSensSetGsnsXlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsXFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGsnsXFstl(void);
u_int8 VehicleSensSetGsnsXFstG(const LSDRV_LSDATA_FST_GSENSOR_X *pst_data);
void VehicleSensGetGsnsXFstl(VEHICLESENS_DATA_MASTER_FST *pst_data);

void VehicleSensGetGsnsY(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGsnsYl(void);
u_int8 VehicleSensSetGsnsYl(const LSDRV_LSDATA *);
void VehicleSensGetGsnsYl(VEHICLESENS_DATA_MASTER *);
u_int8 VehicleSensSetGsnsYlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsYFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGsnsYFstl(void);
u_int8 VehicleSensSetGsnsYFstG(const LSDRV_LSDATA_FST_GSENSOR_Y *pst_data);
void VehicleSensGetGsnsYFstl(VEHICLESENS_DATA_MASTER_FST *pst_data);

void VehicleSensGetGsnsZ(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGsnsZl(void);
u_int8 VehicleSensSetGsnsZl(const LSDRV_LSDATA *);
void VehicleSensGetGsnsZl(VEHICLESENS_DATA_MASTER *);
u_int8 VehicleSensSetGsnsZlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsZFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGsnsZFstl(void);
u_int8 VehicleSensSetGsnsZFstG(const LSDRV_LSDATA_FST_GSENSOR_Z *pst_data);
void VehicleSensGetGsnsZFstl(VEHICLESENS_DATA_MASTER_FST *pst_data);

void VehicleSensGetGyroX(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGyroXl(void);
u_int8 VehicleSensSetGyroXl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetGyroXlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroXl(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetGyroY(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGyroYl(void);
u_int8 VehicleSensSetGyroYl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetGyroYlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroYl(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetGyroZ(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGyroZl(void);
u_int8 VehicleSensSetGyroZl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetGyroZlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroZl(VEHICLESENS_DATA_MASTER *);

#if CONFIG_SENSOR_EXT_VALID        /* Initial Sensor Support */
void VehicleSensGetSpeedPulseFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitSpeedPulseFstl(void);
u_int8 VehicleSensSetSpeedPulseFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetSpeedPulseFstG(const LSDRV_LSDATA_FST_SPEED *);
void VehicleSensGetSpeedPulseFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetGyroXFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGyroXFstl(void);
u_int8 VehicleSensSetGyroXFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetGyroXFstG(const LSDRV_LSDATA_FST_GYRO_X *);
void VehicleSensGetGyroXFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetGyroYFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGyroYFstl(void);
u_int8 VehicleSensSetGyroYFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetGyroYFstG(const LSDRV_LSDATA_FST_GYRO_Y *);
void VehicleSensGetGyroYFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetGyroYExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGyroYExtl(void);
void VehicleSensSetGyroYExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroYExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetGyroZFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitGyroZFstl(void);
u_int8 VehicleSensSetGyroZFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetGyroZFstG(const LSDRV_LSDATA_FST_GYRO_Z *);
void VehicleSensGetGyroZFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetGyroZExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGyroZExtl(void);
void VehicleSensSetGyroZExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroZExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetSpeedPulseFlagFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitSpeedPulseFlagFstl(void);
u_int8 VehicleSensSetSpeedPulseFlagFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetSpeedPulseFlagFstG(const LSDRV_LSDATA_FST_SPEED_PULSE_FLAG *);
void VehicleSensGetSpeedPulseFlagFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetRevFst(VEHICLESENS_DATA_MASTER_FST *, u_int8);
void VehicleSensInitRevFstl(void);
u_int8 VehicleSensSetRevFstl(const LSDRV_LSDATA_FST *);
u_int8 VehicleSensSetRevFstG(const LSDRV_LSDATA_FST_REV *);
void VehicleSensGetRevFstl(VEHICLESENS_DATA_MASTER_FST *);

void VehicleSensGetGsnsXExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGsnsXExtl(void);
void VehicleSensSetGsnsXExtl(const LSDRV_LSDATA *);
void VehicleSensSetGsnsXExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsXExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetGsnsYExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGsnsYExtl(void);
void VehicleSensSetGsnsYExtl(const LSDRV_LSDATA *);
void VehicleSensSetGsnsYExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsYExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetGsnsZExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGsnsZExtl(void);
void VehicleSensSetGsnsZExtl(const LSDRV_LSDATA *);
void VehicleSensSetGsnsZExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGsnsZExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetGyroExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitGyroExtl(void);
void VehicleSensSetGyroExtl(const LSDRV_LSDATA *);
void VehicleSensSetGyroExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetGyroRev(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGyroRevl(void);
u_int8 VehicleSensSetGyroRevl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetGyroRevlG(const LSDRV_LSDATA_G *);
void VehicleSensGetGyroRevl(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetSpeedPulseExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitSpeedPulseExtl(void);
void VehicleSensSetSpeedPulseExtl(const LSDRV_LSDATA *);
void VehicleSensSetSpeedPulseExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetSpeedPulseExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetSnsCounterExt(VEHICLESENS_DATA_MASTER_EXT *, u_int8);
void VehicleSensInitSnsCounterExtl(void);
void VehicleSensSetSnsCounterExtl(const LSDRV_LSDATA *);
void VehicleSensSetSnsCounterExtlG(const LSDRV_LSDATA_G *);
void VehicleSensGetSnsCounterExtl(VEHICLESENS_DATA_MASTER_EXT *);

void VehicleSensGetRevExt(VEHICLESENS_DATA_MASTER_EXT *pst_data, u_int8 uc_get_method);
void VehicleSensGetRevExtl(VEHICLESENS_DATA_MASTER_EXT *pst_data);
void VehicleSensInitRevExtl(void);
void VehicleSensSetRevExtlG(const LSDRV_LSDATA_G *pst_data);

#endif

void VehicleSensGetSpeedKmph(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitSpeedKmphl(void);
u_int8 VehicleSensSetSpeedKmphl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetSpeedKmphlG(const LSDRV_LSDATA_G *);
void VehicleSensGetSpeedKmphl(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetGyroTemp(VEHICLESENS_DATA_MASTER *pst_data, u_int8 uc_get_method);
void VehicleSensInitGyroTempl(void);
u_int8 VehicleSensSetGyroTemplG(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetGyroTempl(VEHICLESENS_DATA_MASTER *pst_data);

void VehicleSensGetGyroTempFst(VEHICLESENS_DATA_MASTER_FST *pst_data, u_int8 uc_get_method);
void VehicleSensInitGyroTempFstl(void);
u_int8 VehicleSensSetGyroTempFstG(const LSDRV_LSDATA_FST_GYRO_TEMP *pst_data);
void VehicleSensGetGyroTempFstl(VEHICLESENS_DATA_MASTER_FST *pst_data);

void VehicleSensGetGyroTempExt(VEHICLESENS_DATA_MASTER_EXT *pst_data, u_int8 uc_get_method);
void VehicleSensInitGyroTempExtl(void);
void VehicleSensSetGyroTempExtlG(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetGyroTempExtl(VEHICLESENS_DATA_MASTER_EXT *pst_data);

void VehicleSensGetPulseTime(VEHICLESENS_DATA_MASTER *pst_data, u_int8 uc_get_method);
void VehicleSensInitPulseTimel(void);
u_int8 VehicleSensSetPulseTimelG(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetPulseTimel(VEHICLESENS_DATA_MASTER *pst_data);

void VehicleSensGetPulseTimeExt(VEHICLESENS_DATA_MASTER_EXT *pst_data, u_int8 uc_get_method);
void VehicleSensInitPulseTimeExtl(void);
void VehicleSensSetPulseTimeExtlG(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetPulseTimeExtl(VEHICLESENS_DATA_MASTER_EXT *pst_data);

void VehicleSensGetRev(VEHICLESENS_DATA_MASTER *, u_int8);

void VehicleSensInitRevl(void);
u_int8 VehicleSensSetRevl(const LSDRV_LSDATA *);
void VehicleSensGetRevl(VEHICLESENS_DATA_MASTER *);
u_int8 VehicleSensSetRevlG(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetRevline(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetSpeedPulse(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitSpeedPulsel(void);
u_int8 VehicleSensSetSpeedPulsel(const LSDRV_LSDATA *);
u_int8 VehicleSensSetSpeedPulselG(const LSDRV_LSDATA_G *);
void VehicleSensGetSpeedPulsel(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetGpsAntenna(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitGpsAntennal(void);
u_int8 VehicleSensSetGpsAntennal(const LSDRV_LSDATA *);
void VehicleSensGetGpsAntennal(VEHICLESENS_DATA_MASTER *);

void VehicleSensGetSnsCounter(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitSnsCounterl(void);
u_int8 VehicleSensSetSnsCounterl(const LSDRV_LSDATA *);
u_int8 VehicleSensSetSnsCounterlG(const LSDRV_LSDATA_G *);
void VehicleSensGetSnsCounterl(VEHICLESENS_DATA_MASTER *);

void VehicleSensInitGpsCounterg(void);
u_int8 VehicleSensSetGpsCounterg(const SENSOR_MSG_GPSDATA_DAT *);
void VehicleSensGetGpsCounterg(SENSOR_MSG_GPSDATA_DAT *);

/* ++ PastModel002 support */
/* U-BLOX_GPS MON-HW */
void VehicleSensInitMonHwG(void);
u_int8 VehicleSensSetMonHwG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetMonHwG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-CLOCK */
void VehicleSensInitNavClockG(void);
u_int8 VehicleSensSetNavClockG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavClockG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-DOP */
void VehicleSensInitNavDopG(void);
u_int8 VehicleSensSetNavDopG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavDopG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-POSLLH */
void VehicleSensInitNavPosllhG(void);
u_int8 VehicleSensSetNavPosllhG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavPosllhG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-STATUS */
void VehicleSensInitNavStatusG(void);
u_int8 VehicleSensSetNavStatusG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavStatusG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-SVINFO */
void VehicleSensInitNavSvInfoG(void);
u_int8 VehicleSensSetNavSvInfoG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavSvInfoG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-TIMEGPS */
void VehicleSensInitNavTimeGpsG(void);
u_int8 VehicleSensSetNavTimeGpsG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavTimeGpsG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-TIMEUTC */
void VehicleSensInitNavTimeUtcG(void);
u_int8 VehicleSensSetNavTimeUtcG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavTimeUtcG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* U-BLOX_GPS NAV-VELNED */
void VehicleSensInitNavVelnedG(void);
u_int8 VehicleSensSetNavVelnedG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetNavVelnedG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* DR SPEED_PULSE_FLAG */
void VehicleSensInitSpeedPulseFlag(void);
u_int8 VehicleSensSetSpeedPulseFlag(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetSpeedPulseFlag(VEHICLESENS_DATA_MASTER *);

/* DR GPS_INTERRUPT_FLAG */
void VehicleSensInitGpsInterruptFlag(void);
u_int8 VehicleSensSetGpsInterruptFlag(const LSDRV_LSDATA_G *pst_data);
void VehicleSensGetGpsInterruptFlag(VEHICLESENS_DATA_MASTER *);

/* GYRO_TROUBLE */
void VehicleSensInitGyroTrouble(void);
u_int8 VehicleSensSetGyroTrouble(const LSDRV_MSG_LSDATA_DAT_GYRO_TROUBLE *pst_data);
void VehicleSensGetGyroTrouble(VEHICLESENS_DATA_MASTER_GYRO_TROUBLE *pst_data);

/* MAIN_GPS_INTERRUPT_SIGNAL */
void VehicleSensInitMainGpsInterruptSignal(void);
u_int8 VehicleSensSetMainGpsInterruptSignal(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetMainGpsInterruptSignal(VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data);

/* SYS_GPS_INTERRUPT_SIGNAL */
void VehicleSensInitSysGpsInterruptSignal(void);
u_int8 VehicleSensSetSysGpsInterruptSignal(const LSDRV_MSG_LSDATA_DAT_GPS_INTERRUPT_SIGNAL *pst_data);
void VehicleSensGetSysGpsInterruptSignal(VEHICLESENS_DATA_MASTER_GPS_INTERRUPT_SIGNAL *pst_data);

/* GYRO_CONNECT_STATUS */
void VehicleSensInitGyroConnectStatus(void);
u_int8 VehicleSensSetGyroConnectStatus(const LSDRV_MSG_LSDATA_DAT_GYRO_CONNECT_STATUS *pst_data);
void VehicleSensGetGyroConnectStatus(VEHICLESENS_DATA_MASTER_GYRO_CONNECT_STATUS *pst_data);

/* GPS_ANTENNA_STATUS */
void VehicleSensInitGpsAntennaStatus(void);
u_int8 VehicleSensSetGpsAntennaStatus(const LSDRV_MSG_LSDATA_DAT_GPS_ANTENNA_STATUS *pst_data);
void VehicleSensGetGpsAntennaStatus(VEHICLESENS_DATA_MASTER_GPS_ANTENNA_STATUS *pst_data);

/* -- PastModel002 support */

/* GPS__CWORD82__FULLBINARY */
void VehicleSensInitGps_CWORD82_FullBinaryG(void);
u_int8 VehicleSensSetGps_CWORD82_FullBinaryG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetGps_CWORD82_FullBinaryG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* GPS__CWORD82__FULLBINARY */
void VehicleSensInitGps_CWORD82__CWORD44_Gp4G(void);
u_int8 VehicleSensSetGps_CWORD82__CWORD44_Gp4G(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetGps_CWORD82__CWORD44_Gp4G(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* GPS__CWORD82__NMEA */
void VehicleSensInitGps_CWORD82_NmeaG(void);
u_int8 VehicleSensSetGps_CWORD82_NmeaG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetGps_CWORD82_NmeaG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* GPS_NMEA */
void VehicleSensInitGpsNmeaG(void);
u_int8 VehicleSensSetGpsNmeaG(const SENSOR_MSG_GPSDATA_DAT *pst_data);
void VehicleSensGetGpsNmeaG(SENSOR_MSG_GPSDATA_DAT *pst_data);

/* LOCATION_LONLAT */
void VehicleSensGetLocationLonLat(VEHICLESENS_DATA_MASTER *pst_data, u_int8);
void VehicleSensInitLocationLonLatG(void);
u_int8 VehicleSensSetLocationLonLatG(const SENSORLOCATION_LONLATINFO_DAT*);
void VehicleSensGetLocationLonLatG(VEHICLESENS_DATA_MASTER*);
void VehicleSensInitLocationLonLatN(void);
u_int8 VehicleSensSetLocationLonLatN(const SENSORLOCATION_LONLATINFO_DAT*);
void VehicleSensGetLocationLonLatN(VEHICLESENS_DATA_MASTER*);
void VehicleSensGetLocationLonLatnUnitCnv(VEHICLESENS_DATA_MASTER*);

/* LOCATION_ALTITUDE */
void VehicleSensGetLocationAltitude(VEHICLESENS_DATA_MASTER *pst_data, u_int8);
void VehicleSensInitLocationAltitudeG(void);
u_int8 VehicleSensSetLocationAltitudeG(const SENSORLOCATION_ALTITUDEINFO_DAT*);
void VehicleSensGetLocationAltitudeG(VEHICLESENS_DATA_MASTER*);
void VehicleSensInitLocationAltitudeN(void);
u_int8 VehicleSensSetLocationAltitudeN(const SENSORLOCATION_ALTITUDEINFO_DAT*);
void VehicleSensGetLocationAltitudeN(VEHICLESENS_DATA_MASTER*);

/* MOTION_SPEED */
void VehicleSensGetMotionSpeed(VEHICLESENS_DATA_MASTER *pst_data, u_int8);
void VehicleSensInitMotionSpeedG(void);
u_int8 VehicleSensSetMotionSpeedG(const SENSORMOTION_SPEEDINFO_DAT*);
void VehicleSensGetMotionSpeedG(VEHICLESENS_DATA_MASTER*);
void VehicleSensInitMotionSpeedN(void);
u_int8 VehicleSensSetMotionSpeedN(const SENSORMOTION_SPEEDINFO_DAT*);
void VehicleSensGetMotionSpeedN(VEHICLESENS_DATA_MASTER*);
void VehicleSensInitMotionSpeedI(void);
u_int8 VehicleSensSetMotionSpeedI(const SENSORMOTION_SPEEDINFO_DAT*);
void VehicleSensGetMotionSpeedI(VEHICLESENS_DATA_MASTER*);

/* MOTION_HEADING */
void VehicleSensGetMotionHeading(VEHICLESENS_DATA_MASTER *pst_data, u_int8);
void VehicleSensInitMotionHeadingG(void);
u_int8 VehicleSensSetMotionHeadingG(const SENSORMOTION_HEADINGINFO_DAT*);
void VehicleSensGetMotionHeadingG(VEHICLESENS_DATA_MASTER*);
void VehicleSensInitMotionHeadingN(void);
u_int8 VehicleSensSetMotionHeadingN(const SENSORMOTION_HEADINGINFO_DAT*);
void VehicleSensGetMotionHeadingN(VEHICLESENS_DATA_MASTER*);
void VehicleSensGetMotionHeadingnCnvData(VEHICLESENS_DATA_MASTER*);

/* GPS_TIME */
void VehicleSensGetGpsTime(SENSOR_MSG_GPSDATA_DAT*, u_int8);
void VehicleSensInitGpsTimeG(void);
u_int8 VehicleSensSetGpsTimeG(const SENSOR_MSG_GPSTIME*);
void VehicleSensGetGpsTimeG(SENSOR_MSG_GPSDATA_DAT*);

/* GPS_TIME_RAW */
void VehicleSensGetGpsTimeRaw(SENSOR_MSG_GPSDATA_DAT*, u_int8);
void VehicleSensInitGpsTimeRawG(void);
u_int8 VehicleSensSetGpsTimeRawG(const SENSOR_GPSTIME_RAW*);
void VehicleSensGetGpsTimeRawG(SENSOR_MSG_GPSDATA_DAT*);

/* GPS_WKNROLLOVER */
void VehicleSensGetWknRollover(VEHICLESENS_DATA_MASTER*, u_int8);
void VehicleSensInitWknRolloverG(void);
u_int8 VehicleSensSetWknRolloverG(const SENSOR_WKNROLLOVER*);
void VehicleSensGetWknRolloverG(SENSOR_MSG_GPSDATA_DAT*);

/* DIAG_GPS */
void VehicleSensInitNaviinfoDiagGPSg(void);
u_int8 VehicleSensSetNaviinfoDiagGPSg(const NAVIINFO_DIAG_GPS*);
void VehicleSensGetNaviinfoDiagGPSg(SENSOR_MSG_GPSDATA_DAT*);

/* SETTINGTIME */
void VehicleSensGetSettingTime(VEHICLESENS_DATA_MASTER *, u_int8);
void VehicleSensInitSettingTimeclock(void);
u_int8 VehicleSensSetSettingTimeclock(const POS_DATETIME*);
void VehicleSensGetSettingTimeclock(VEHICLESENS_DATA_MASTER*);

/* GPS_CLOCK_DRIFT */
void VehicleSensGetGpsClockDrift(SENSOR_MSG_GPSDATA_DAT *, u_int8);
void VehicleSensInitGpsClockDriftG(void);
u_int8 VehicleSensSetGpsClockDriftG(const int32_t*);
void VehicleSensGetGpsClockDriftG(SENSOR_MSG_GPSDATA_DAT*);

/* GPS_CLOCK_FREQ */
void VehicleSensGetGpsClockFreq(SENSOR_MSG_GPSDATA_DAT *, u_int8);
void VehicleSensInitGpsClockFreqG(void);
u_int8 VehicleSensSetGpsClockFreqG(const uint32_t*);
void VehicleSensGetGpsClockFreqG(SENSOR_MSG_GPSDATA_DAT*);

/* LOCATION INFORMATION (NMEA) */
void VehicleSens_GetLocationInfoNmea(VEHICLESENS_DATA_MASTER_GPS_FORMAT *, u_int8 );
void VehicleSens_InitLocationInfoNmea_n(void);
u_int8 VehicleSens_SetLocationInfoNmea_n( const POS_LOCATIONINFO_NMEA * );
void VehicleSens_GetLocationInfoNmea_n(VEHICLESENS_DATA_MASTER_GPS_FORMAT * );


#endif  // POSITIONING_SERVER_INCLUDE_SENSOR_VEHICLESENS_DATAMASTER_H_