@miot-rn/car-component 1.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (242) hide show
  1. package/README.md +325 -0
  2. package/dist/assets/i18n/ar.d.ts +55 -0
  3. package/dist/assets/i18n/ar.js +55 -0
  4. package/dist/assets/i18n/bo.d.ts +55 -0
  5. package/dist/assets/i18n/bo.js +55 -0
  6. package/dist/assets/i18n/cs.d.ts +55 -0
  7. package/dist/assets/i18n/cs.js +55 -0
  8. package/dist/assets/i18n/de.d.ts +55 -0
  9. package/dist/assets/i18n/de.js +55 -0
  10. package/dist/assets/i18n/el.d.ts +55 -0
  11. package/dist/assets/i18n/el.js +55 -0
  12. package/dist/assets/i18n/en.d.ts +55 -0
  13. package/dist/assets/i18n/en.js +55 -0
  14. package/dist/assets/i18n/es.d.ts +55 -0
  15. package/dist/assets/i18n/es.js +55 -0
  16. package/dist/assets/i18n/es_us.d.ts +55 -0
  17. package/dist/assets/i18n/es_us.js +55 -0
  18. package/dist/assets/i18n/fi.d.ts +55 -0
  19. package/dist/assets/i18n/fi.js +55 -0
  20. package/dist/assets/i18n/fr.d.ts +55 -0
  21. package/dist/assets/i18n/fr.js +55 -0
  22. package/dist/assets/i18n/he.d.ts +55 -0
  23. package/dist/assets/i18n/he.js +55 -0
  24. package/dist/assets/i18n/hu.d.ts +55 -0
  25. package/dist/assets/i18n/hu.js +55 -0
  26. package/dist/assets/i18n/id.d.ts +55 -0
  27. package/dist/assets/i18n/id.js +55 -0
  28. package/dist/assets/i18n/it.d.ts +55 -0
  29. package/dist/assets/i18n/it.js +55 -0
  30. package/dist/assets/i18n/ja.d.ts +55 -0
  31. package/dist/assets/i18n/ja.js +55 -0
  32. package/dist/assets/i18n/ko.d.ts +55 -0
  33. package/dist/assets/i18n/ko.js +55 -0
  34. package/dist/assets/i18n/nb.d.ts +55 -0
  35. package/dist/assets/i18n/nb.js +55 -0
  36. package/dist/assets/i18n/nl.d.ts +55 -0
  37. package/dist/assets/i18n/nl.js +55 -0
  38. package/dist/assets/i18n/pl.d.ts +55 -0
  39. package/dist/assets/i18n/pl.js +55 -0
  40. package/dist/assets/i18n/pt.d.ts +55 -0
  41. package/dist/assets/i18n/pt.js +55 -0
  42. package/dist/assets/i18n/pt_pt.d.ts +55 -0
  43. package/dist/assets/i18n/pt_pt.js +55 -0
  44. package/dist/assets/i18n/ro.d.ts +55 -0
  45. package/dist/assets/i18n/ro.js +55 -0
  46. package/dist/assets/i18n/ru.d.ts +55 -0
  47. package/dist/assets/i18n/ru.js +55 -0
  48. package/dist/assets/i18n/sk.d.ts +55 -0
  49. package/dist/assets/i18n/sk.js +55 -0
  50. package/dist/assets/i18n/sv.d.ts +55 -0
  51. package/dist/assets/i18n/sv.js +55 -0
  52. package/dist/assets/i18n/th.d.ts +55 -0
  53. package/dist/assets/i18n/th.js +55 -0
  54. package/dist/assets/i18n/tr.d.ts +55 -0
  55. package/dist/assets/i18n/tr.js +55 -0
  56. package/dist/assets/i18n/uk.d.ts +55 -0
  57. package/dist/assets/i18n/uk.js +55 -0
  58. package/dist/assets/i18n/vi.d.ts +55 -0
  59. package/dist/assets/i18n/vi.js +55 -0
  60. package/dist/assets/i18n/zh.d.ts +55 -0
  61. package/dist/assets/i18n/zh.js +55 -0
  62. package/dist/assets/i18n/zh_hk.d.ts +55 -0
  63. package/dist/assets/i18n/zh_hk.js +55 -0
  64. package/dist/assets/i18n/zh_tw.d.ts +55 -0
  65. package/dist/assets/i18n/zh_tw.js +55 -0
  66. package/dist/assets/image/dark/car_background_dark.png +0 -0
  67. package/dist/assets/image/default/car_background.png +0 -0
  68. package/dist/components/airConditioningCard/index.d.ts +24 -0
  69. package/dist/components/airConditioningCard/index.js +103 -0
  70. package/dist/components/carInfoHeader/carImage.d.ts +8 -0
  71. package/dist/components/carInfoHeader/carImage.js +42 -0
  72. package/dist/components/carInfoHeader/dualRangeIndicator.d.ts +15 -0
  73. package/dist/components/carInfoHeader/dualRangeIndicator.js +124 -0
  74. package/dist/components/carInfoHeader/index.d.ts +37 -0
  75. package/dist/components/carInfoHeader/index.js +118 -0
  76. package/dist/components/carInfoHeader/parkingStatus.d.ts +12 -0
  77. package/dist/components/carInfoHeader/parkingStatus.js +100 -0
  78. package/dist/components/carInfoHeader/rangeProgressBar.d.ts +14 -0
  79. package/dist/components/carInfoHeader/rangeProgressBar.js +77 -0
  80. package/dist/components/carInfoHeader/singleRangeIndicator.d.ts +11 -0
  81. package/dist/components/carInfoHeader/singleRangeIndicator.js +58 -0
  82. package/dist/components/cardContainer/index.d.ts +8 -0
  83. package/dist/components/cardContainer/index.js +22 -0
  84. package/dist/components/containerWithGap/gapWrap.d.ts +8 -0
  85. package/dist/components/containerWithGap/gapWrap.js +31 -0
  86. package/dist/components/containerWithGap/index.d.ts +12 -0
  87. package/dist/components/containerWithGap/index.js +43 -0
  88. package/dist/components/flatSelect/FlatOption.d.ts +18 -0
  89. package/dist/components/flatSelect/FlatOption.js +117 -0
  90. package/dist/components/flatSelect/FlatSelect.d.ts +14 -0
  91. package/dist/components/flatSelect/FlatSelect.js +112 -0
  92. package/dist/components/flatSelect/index.d.ts +2 -0
  93. package/dist/components/flatSelect/index.js +2 -0
  94. package/dist/components/flatSelect/index.zh-CN.md +89 -0
  95. package/dist/components/groupContainer/index.d.ts +9 -0
  96. package/dist/components/groupContainer/index.js +48 -0
  97. package/dist/components/otherSettingCard/index.d.ts +8 -0
  98. package/dist/components/otherSettingCard/index.js +40 -0
  99. package/dist/components/pageBackground/index.d.ts +7 -0
  100. package/dist/components/pageBackground/index.js +22 -0
  101. package/dist/components/seatControl/index.d.ts +34 -0
  102. package/dist/components/seatControl/index.js +98 -0
  103. package/dist/components/seatControl/seatCard.d.ts +11 -0
  104. package/dist/components/seatControl/seatCard.js +24 -0
  105. package/dist/components/seatControl/seatCardRow.d.ts +29 -0
  106. package/dist/components/seatControl/seatCardRow.js +48 -0
  107. package/dist/components/seatControlGroup/index.d.ts +40 -0
  108. package/dist/components/seatControlGroup/index.js +51 -0
  109. package/dist/components/steeringWheelHotCard/index.d.ts +17 -0
  110. package/dist/components/steeringWheelHotCard/index.js +66 -0
  111. package/dist/components/titleContainer/TitleContainer.d.ts +4 -0
  112. package/dist/components/titleContainer/TitleContainer.js +148 -0
  113. package/dist/components/titleContainer/TitleContainer.zh-CN.md +62 -0
  114. package/dist/components/titleContainer/index.d.ts +1 -0
  115. package/dist/components/titleContainer/index.js +1 -0
  116. package/dist/components/titleContainer/interface.d.ts +48 -0
  117. package/dist/components/titleContainer/interface.js +21 -0
  118. package/dist/components/warningForRunningCard/index.d.ts +6 -0
  119. package/dist/components/warningForRunningCard/index.js +20 -0
  120. package/dist/config/ConnectStatus.d.ts +7 -0
  121. package/dist/config/ConnectStatus.js +8 -0
  122. package/dist/config/index.d.ts +16 -0
  123. package/dist/config/index.js +16 -0
  124. package/dist/config/seatFunctionType.d.ts +7 -0
  125. package/dist/config/seatFunctionType.js +24 -0
  126. package/dist/config/seatGearLevel.d.ts +21 -0
  127. package/dist/config/seatGearLevel.js +19 -0
  128. package/dist/config/seatI18nKeys.d.ts +9 -0
  129. package/dist/config/seatI18nKeys.js +9 -0
  130. package/dist/config/seatPosition.d.ts +8 -0
  131. package/dist/config/seatPosition.js +8 -0
  132. package/dist/config/seatRowConfig.d.ts +6 -0
  133. package/dist/config/seatRowConfig.js +6 -0
  134. package/dist/global.d.js +0 -0
  135. package/dist/hooks/CONNECT_STATUS.d.ts +6 -0
  136. package/dist/hooks/CONNECT_STATUS.js +5 -0
  137. package/dist/hooks/index.d.ts +6 -0
  138. package/dist/hooks/index.js +7 -0
  139. package/dist/hooks/useAirConditionData.d.ts +29 -0
  140. package/dist/hooks/useAirConditionData.js +89 -0
  141. package/dist/hooks/useDualRangeData.d.ts +18 -0
  142. package/dist/hooks/useDualRangeData.js +82 -0
  143. package/dist/hooks/useParkingStatusData.d.ts +19 -0
  144. package/dist/hooks/useParkingStatusData.js +100 -0
  145. package/dist/hooks/useSeatControlData.d.ts +94 -0
  146. package/dist/hooks/useSeatControlData.js +251 -0
  147. package/dist/hooks/useSingleRangeData.d.ts +15 -0
  148. package/dist/hooks/useSingleRangeData.js +97 -0
  149. package/dist/hooks/useSteeringWheelData.d.ts +11 -0
  150. package/dist/hooks/useSteeringWheelData.js +56 -0
  151. package/dist/icons/CarInUsed.d.ts +4 -0
  152. package/dist/icons/CarInUsed.js +13 -0
  153. package/dist/icons/DeviceManage.d.ts +4 -0
  154. package/dist/icons/DeviceManage.js +13 -0
  155. package/dist/icons/ElectricPower.d.ts +4 -0
  156. package/dist/icons/ElectricPower.js +13 -0
  157. package/dist/icons/ErrorStatus.d.ts +4 -0
  158. package/dist/icons/ErrorStatus.js +13 -0
  159. package/dist/icons/FuelPower.d.ts +4 -0
  160. package/dist/icons/FuelPower.js +18 -0
  161. package/dist/icons/Loading.d.ts +4 -0
  162. package/dist/icons/Loading.js +16 -0
  163. package/dist/icons/MijiaLogo.d.ts +4 -0
  164. package/dist/icons/MijiaLogo.js +16 -0
  165. package/dist/icons/Minus.d.ts +4 -0
  166. package/dist/icons/Minus.js +15 -0
  167. package/dist/icons/ParkingStatus.d.ts +4 -0
  168. package/dist/icons/ParkingStatus.js +15 -0
  169. package/dist/icons/SeatGearHeatingLevelOne.d.ts +4 -0
  170. package/dist/icons/SeatGearHeatingLevelOne.js +22 -0
  171. package/dist/icons/SeatGearHeatingLevelThree.d.ts +4 -0
  172. package/dist/icons/SeatGearHeatingLevelThree.js +18 -0
  173. package/dist/icons/SeatGearHeatingLevelTwo.d.ts +4 -0
  174. package/dist/icons/SeatGearHeatingLevelTwo.js +22 -0
  175. package/dist/icons/SeatGearHeatingOff.d.ts +4 -0
  176. package/dist/icons/SeatGearHeatingOff.js +18 -0
  177. package/dist/icons/SeatGearVentilationLevelOne.d.ts +4 -0
  178. package/dist/icons/SeatGearVentilationLevelOne.js +17 -0
  179. package/dist/icons/SeatGearVentilationLevelThree.d.ts +4 -0
  180. package/dist/icons/SeatGearVentilationLevelThree.js +13 -0
  181. package/dist/icons/SeatGearVentilationLevelTwo.d.ts +4 -0
  182. package/dist/icons/SeatGearVentilationLevelTwo.js +17 -0
  183. package/dist/icons/SeatGearVentilationOff.d.ts +4 -0
  184. package/dist/icons/SeatGearVentilationOff.js +16 -0
  185. package/dist/icons/SentryMode.d.ts +4 -0
  186. package/dist/icons/SentryMode.js +13 -0
  187. package/dist/icons/SmartScene.d.ts +4 -0
  188. package/dist/icons/SmartScene.js +13 -0
  189. package/dist/icons/SteeringWheelFirstGear.d.ts +4 -0
  190. package/dist/icons/SteeringWheelFirstGear.js +13 -0
  191. package/dist/icons/SteeringWheelHot.d.ts +4 -0
  192. package/dist/icons/SteeringWheelHot.js +13 -0
  193. package/dist/icons/SteeringWheelSecondGear.d.ts +4 -0
  194. package/dist/icons/SteeringWheelSecondGear.js +13 -0
  195. package/dist/icons/SteeringWheelThirdGear.d.ts +4 -0
  196. package/dist/icons/SteeringWheelThirdGear.js +13 -0
  197. package/dist/icons/Warning.d.ts +4 -0
  198. package/dist/icons/Warning.js +13 -0
  199. package/dist/icons/index.d.ts +24 -0
  200. package/dist/icons/index.js +27 -0
  201. package/dist/index.d.ts +21 -0
  202. package/dist/index.js +20 -0
  203. package/dist/modules/MODULES.md +245 -0
  204. package/dist/modules/airconditionModule/README.md +262 -0
  205. package/dist/modules/airconditionModule/index.d.ts +17 -0
  206. package/dist/modules/airconditionModule/index.js +63 -0
  207. package/dist/modules/carInfoModule/README.md +418 -0
  208. package/dist/modules/carInfoModule/index.d.ts +26 -0
  209. package/dist/modules/carInfoModule/index.js +67 -0
  210. package/dist/modules/index.d.ts +2 -0
  211. package/dist/modules/index.js +2 -0
  212. package/dist/modules/seatModule/README.md +345 -0
  213. package/dist/modules/seatModule/index.d.ts +15 -0
  214. package/dist/modules/seatModule/index.js +40 -0
  215. package/dist/modules/steeringWheelModule/README.md +216 -0
  216. package/dist/modules/steeringWheelModule/index.d.ts +13 -0
  217. package/dist/modules/steeringWheelModule/index.js +31 -0
  218. package/dist/resources/i18n.d.ts +1730 -0
  219. package/dist/resources/i18n.js +84 -0
  220. package/dist/resources/images.d.ts +1 -0
  221. package/dist/resources/images.js +45 -0
  222. package/dist/spec/index.d.ts +494 -0
  223. package/dist/spec/index.js +911 -0
  224. package/dist/types.d.ts +63 -0
  225. package/dist/types.js +1 -0
  226. package/dist/utils/checkSameValue.d.ts +1 -0
  227. package/dist/utils/checkSameValue.js +11 -0
  228. package/dist/utils/fns.d.ts +5 -0
  229. package/dist/utils/fns.js +167 -0
  230. package/dist/utils/get-value-or-default.d.ts +1 -0
  231. package/dist/utils/get-value-or-default.js +4 -0
  232. package/dist/utils/getLocalI18n.d.ts +1 -0
  233. package/dist/utils/getLocalI18n.js +9 -0
  234. package/dist/utils/i18n.d.ts +1 -0
  235. package/dist/utils/i18n.js +141 -0
  236. package/dist/utils/objects.d.ts +2 -0
  237. package/dist/utils/objects.js +222 -0
  238. package/dist/utils/spec.d.ts +8 -0
  239. package/dist/utils/spec.js +171 -0
  240. package/dist/utils/types.d.ts +3 -0
  241. package/dist/utils/types.js +25 -0
  242. package/package.json +27 -0
@@ -0,0 +1,911 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import { getSpecOnly } from '@miot-rn/common-component/dist/specs/instance-parser';
3
+ let carSpecs = null;
4
+
5
+ /**
6
+ * 汽车规格常量定义
7
+ * 包含所有可用的汽车规格查询对象
8
+ */
9
+ export const CAR_SPEC_KEYS = {
10
+ // 基础模块规格
11
+ BASIC_DEVICE_INFORMATION_PROPERTIES_NAME: {
12
+ mkey: 'basic',
13
+ mDescription: 'Basic Module',
14
+ skey: 'device-information',
15
+ sDescription: 'Device Information',
16
+ pkey: 'name',
17
+ description: 'Device Name'
18
+ },
19
+ BASIC_DEVICE_INFORMATION_PROPERTIES_CARMODEL: {
20
+ mkey: 'basic',
21
+ mDescription: 'Basic Module',
22
+ skey: 'device-information',
23
+ sDescription: 'Device Information',
24
+ pkey: 'car-model',
25
+ description: 'CarModel'
26
+ },
27
+ BASIC_DYNAMIC_PROPERTIES_SERVICEENABLELIST: {
28
+ mkey: 'basic',
29
+ mDescription: 'Basic Module',
30
+ skey: 'dynamic',
31
+ sDescription: 'Dynamic',
32
+ pkey: 'service-enable-list',
33
+ description: 'List of equipment dynamic capabilities'
34
+ },
35
+ // 门模块规格
36
+ DOOR_CENTRAL_LOCK_PROPERTIES_CENTRALLOCKSTATE: {
37
+ mkey: 'door',
38
+ mDescription: 'Door',
39
+ skey: 'central-lock',
40
+ sDescription: 'CentralLock',
41
+ pkey: 'central-lock-state',
42
+ description: 'State'
43
+ },
44
+ // 动力模块规格
45
+ POWER_CHARGING_EVENTS_STOPCHARGING: {
46
+ mkey: 'power',
47
+ mDescription: 'Power',
48
+ skey: 'charging',
49
+ sDescription: 'Charging',
50
+ ekey: 'stop-charging',
51
+ description: 'StopCharging'
52
+ },
53
+ POWER_CHARGING_EVENTS_ENDCHARGING: {
54
+ mkey: 'power',
55
+ mDescription: 'Power',
56
+ skey: 'charging',
57
+ sDescription: 'Charging',
58
+ ekey: 'end-charging',
59
+ description: 'EndCharging'
60
+ },
61
+ POWER_CHARGING_EVENTS_CHARGING: {
62
+ mkey: 'power',
63
+ mDescription: 'Power',
64
+ skey: 'charging',
65
+ sDescription: 'Charging',
66
+ ekey: 'charging',
67
+ description: 'Charging'
68
+ },
69
+ POWER_BATTERY_PROPERTIES_BATTERYSOCDISPLAY: {
70
+ mkey: 'power',
71
+ mDescription: 'Power',
72
+ skey: 'battery',
73
+ sDescription: 'Battery',
74
+ pkey: 'battery-soc-display',
75
+ description: 'BatterySoCDisplay'
76
+ },
77
+ POWER_BATTERY_PROPERTIES_LOWSOCWARNING: {
78
+ mkey: 'power',
79
+ mDescription: 'Power',
80
+ skey: 'battery',
81
+ sDescription: 'Battery',
82
+ pkey: 'low-soc-warning',
83
+ description: 'BatterySoCLowWarning'
84
+ },
85
+ POWER_BATTERY_PROPERTIES_BATTERYESTIMATEDMILEAGE: {
86
+ mkey: 'power',
87
+ mDescription: 'Power',
88
+ skey: 'battery',
89
+ sDescription: 'Battery',
90
+ pkey: 'esitimated-mileage',
91
+ description: 'BatteryEstimatedMileage'
92
+ },
93
+ POWER_BATTERY_PROPERTIES_DCDRANGESOCTYPEDISPLAY: {
94
+ mkey: 'power',
95
+ mDescription: 'Power',
96
+ skey: 'battery',
97
+ sDescription: 'Battery',
98
+ pkey: 'dcd-range-soc-type-display',
99
+ description: 'DCDRangeSOCTypeDisplay'
100
+ },
101
+ POWER_BATTERY_PROPERTIES_CLTCESTIMATEDRANGE: {
102
+ mkey: 'power',
103
+ mDescription: 'Power',
104
+ skey: 'battery',
105
+ sDescription: 'Battery',
106
+ pkey: 'cltc-estimated-range',
107
+ description: 'CLTCElstimatedRange'
108
+ },
109
+ POWER_BATTERYLIFEEFFECTIVENESS_PROPERTIES_CLTCESTIMATEDEXTENDEANGE: {
110
+ mkey: 'power',
111
+ mDescription: 'Power',
112
+ skey: 'battery-life-effectiveness',
113
+ sDescription: 'BatteryLifeEffectiveness',
114
+ pkey: 'cltc-estimated-extend-range',
115
+ description: 'CltcEstimatedExtendEange'
116
+ },
117
+ POWER_POWERTRIP_PROPERTIES_EXTENDED_RANGE_CLTC_ELECTRIC_MILEAGE: {
118
+ mkey: 'power',
119
+ mDescription: 'Power',
120
+ skey: 'power-trip',
121
+ pkey: 'extended-range-cltc-electric-mileage'
122
+ },
123
+ POWER_RANGE_PROPERTIES_WLTC_FUEL_ENDURANCE: {
124
+ mkey: 'power',
125
+ mDescription: 'Power',
126
+ skey: 'power-range',
127
+ sDescription: 'Range',
128
+ pkey: 'wltc-fuel-endurance'
129
+ },
130
+ POWER_RANGE_PROPERTIES_WLTC_PURE_ELE_CRUISING_ENDURANCE: {
131
+ mkey: 'power',
132
+ mDescription: 'Power',
133
+ skey: 'power-range',
134
+ sDescription: 'Range',
135
+ pkey: 'wltc-pure-ele-cruising-endurance'
136
+ },
137
+ POWER_RANGE_PROPERTIES_CLTC_FUEL_ENDURANCE: {
138
+ mkey: 'power',
139
+ mDescription: 'Power',
140
+ skey: 'power-range',
141
+ sDescription: 'Range',
142
+ pkey: 'cltc-fuel-endurance'
143
+ },
144
+ // 动力模块 - 续航服务规格
145
+ POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_WLTC_BATT_REMAINING_RANGE: {
146
+ mkey: 'power',
147
+ mDescription: 'Power',
148
+ skey: 'power-range',
149
+ sDescription: 'Range',
150
+ pkey: 'extended-range-electric-vehicle-wltc-batt-remaining-range'
151
+ },
152
+ POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_WLTC_FUEL_REMAINING_RANGE: {
153
+ mkey: 'power',
154
+ mDescription: 'Power',
155
+ skey: 'power-range',
156
+ sDescription: 'Range',
157
+ pkey: 'extended-range-electric-vehicle-wltc-fuel-remaining-range'
158
+ },
159
+ POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_CLTC_BATT_REMAINING_RANGE: {
160
+ mkey: 'power',
161
+ mDescription: 'Power',
162
+ skey: 'power-range',
163
+ sDescription: 'Range',
164
+ pkey: 'extended-range-electric-vehicle-cltc-batt-remaining-range'
165
+ },
166
+ POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_CLTC_FUEL_REMAINING_RANGE: {
167
+ mkey: 'power',
168
+ mDescription: 'Power',
169
+ skey: 'power-range',
170
+ sDescription: 'Range',
171
+ pkey: 'extended-range-electric-vehicle-cltc-fuel-remaining-range'
172
+ },
173
+ // 座椅模块规格
174
+ SEAT_ROW1LEFT_PROPERTIES_HEATING: {
175
+ mkey: 'seat',
176
+ mDescription: 'Seat',
177
+ skey: 'seat',
178
+ sDescription: 'Row1Left',
179
+ pkey: 'seat-heating-status'
180
+ },
181
+ SEAT_ROW1LEFT_PROPERTIES_SEATVENTILATION: {
182
+ mkey: 'seat',
183
+ mDescription: 'Seat',
184
+ skey: 'seat',
185
+ sDescription: 'Row1Left',
186
+ pkey: 'seat-ventilation'
187
+ },
188
+ SEAT_ROW1LEFT_PROPERTIES_SEATVENTILATIONGEAR: {
189
+ mkey: 'seat',
190
+ mDescription: 'Seat',
191
+ skey: 'seat',
192
+ sDescription: 'Row1Left',
193
+ pkey: 'seat-ventilation-gear'
194
+ },
195
+ SEAT_ROW1RIGHT_PROPERTIES_HEATING: {
196
+ mkey: 'seat',
197
+ mDescription: 'Seat',
198
+ skey: 'seat',
199
+ sDescription: 'Row1Right',
200
+ pkey: 'seat-heating-status'
201
+ },
202
+ SEAT_ROW1RIGHT_PROPERTIES_SEATVENTILATION: {
203
+ mkey: 'seat',
204
+ mDescription: 'Seat',
205
+ skey: 'seat',
206
+ sDescription: 'Row1Right',
207
+ pkey: 'seat-ventilation'
208
+ },
209
+ SEAT_ROW1RIGHT_PROPERTIES_SEATVENTILATIONGEAR: {
210
+ mkey: 'seat',
211
+ mDescription: 'Seat',
212
+ skey: 'seat',
213
+ sDescription: 'Row1Right',
214
+ pkey: 'seat-ventilation-gear'
215
+ },
216
+ SEAT_ROW2LEFT_PROPERTIES_HEATING: {
217
+ mkey: 'seat',
218
+ mDescription: 'Seat',
219
+ skey: 'seat',
220
+ sDescription: 'Row2Left',
221
+ pkey: 'seat-heating-status'
222
+ },
223
+ SEAT_ROW2LEFT_PROPERTIES_SEATVENTILATION: {
224
+ mkey: 'seat',
225
+ mDescription: 'Seat',
226
+ skey: 'seat',
227
+ sDescription: 'Row2Left',
228
+ pkey: 'seat-ventilation'
229
+ },
230
+ SEAT_ROW2LEFT_PROPERTIES_SEATVENTILATIONGEAR: {
231
+ mkey: 'seat',
232
+ mDescription: 'Seat',
233
+ skey: 'seat',
234
+ sDescription: 'Row2Left',
235
+ pkey: 'seat-ventilation-gear'
236
+ },
237
+ SEAT_ROW2MIDDLE_PROPERTIES_HEATING: {
238
+ mkey: 'seat',
239
+ mDescription: 'Seat',
240
+ skey: 'seat',
241
+ sDescription: 'Row2Middle',
242
+ pkey: 'seat-heating-status'
243
+ },
244
+ SEAT_ROW2MIDDLE_PROPERTIES_SEATVENTILATION: {
245
+ mkey: 'seat',
246
+ mDescription: 'Seat',
247
+ skey: 'seat',
248
+ sDescription: 'Row2Middle',
249
+ pkey: 'seat-ventilation'
250
+ },
251
+ SEAT_ROW2MIDDLE_PROPERTIES_SEATVENTILATIONGEAR: {
252
+ mkey: 'seat',
253
+ mDescription: 'Seat',
254
+ skey: 'seat',
255
+ sDescription: 'Row2Middle',
256
+ pkey: 'seat-ventilation-gear'
257
+ },
258
+ SEAT_ROW2RIGHT_PROPERTIES_HEATING: {
259
+ mkey: 'seat',
260
+ mDescription: 'Seat',
261
+ skey: 'seat',
262
+ sDescription: 'Row2Right',
263
+ pkey: 'seat-heating-status'
264
+ },
265
+ SEAT_ROW2RIGHT_PROPERTIES_SEATVENTILATION: {
266
+ mkey: 'seat',
267
+ mDescription: 'Seat',
268
+ skey: 'seat',
269
+ sDescription: 'Row2Right',
270
+ pkey: 'seat-ventilation'
271
+ },
272
+ SEAT_ROW2RIGHT_PROPERTIES_SEATVENTILATIONGEAR: {
273
+ mkey: 'seat',
274
+ mDescription: 'Seat',
275
+ skey: 'seat',
276
+ sDescription: 'Row2Right',
277
+ pkey: 'seat-ventilation-gear'
278
+ },
279
+ // HVAC模块规格
280
+ HVAC_STATE_PROPERTIES_HVACSTATUS: {
281
+ mkey: 'hvac',
282
+ mDescription: 'HVAC',
283
+ skey: 'hvac-state',
284
+ sDescription: 'State',
285
+ pkey: 'hvac-status'
286
+ },
287
+ HVAC_STATE_PROPERTIES_HVACDEFROSTERSTATUS: {
288
+ mkey: 'hvac',
289
+ mDescription: 'HVAC',
290
+ skey: 'hvac-state',
291
+ sDescription: 'State',
292
+ pkey: 'hvac-defroster-status'
293
+ },
294
+ HVAC_TEMPERATURE_PROPERTIES_INSIDETEMPERATURE: {
295
+ mkey: 'hvac',
296
+ mDescription: 'HVAC',
297
+ skey: 'hvac-temperature',
298
+ sDescription: 'Temperature',
299
+ pkey: 'inside-temperature'
300
+ },
301
+ HVAC_TEMPERATURE_PROPERTIES_OUTSIDETEMPERATURE: {
302
+ mkey: 'hvac',
303
+ mDescription: 'HVAC',
304
+ skey: 'hvac-temperature',
305
+ sDescription: 'Temperature',
306
+ pkey: 'outside-temperature'
307
+ },
308
+ HVAC_TEMPERATURE_PROPERTIES_OLD_OUTSIDETEMPERATURE: {
309
+ mkey: 'hvac',
310
+ mDescription: 'HVAC',
311
+ skey: 'hvac-temperature',
312
+ sDescription: 'Temperature',
313
+ pkey: 'hvac-outside-temperature'
314
+ },
315
+ HVAC_TEMPERATURE_PROPERTIES_HVACTARGETTEMPERATURE: {
316
+ mkey: 'hvac',
317
+ mDescription: 'HVAC',
318
+ skey: 'hvac-temperature',
319
+ sDescription: 'Temperature',
320
+ pkey: 'hvac-target-temperature',
321
+ description: 'TargetTemperature'
322
+ },
323
+ HVAC_TEMPERATURE_PROPERTIES_REARTEMPERATURE: {
324
+ mkey: 'hvac',
325
+ mDescription: 'HVAC',
326
+ skey: 'hvac-temperature',
327
+ sDescription: 'Temperature',
328
+ pkey: 'hvac-target-temperature',
329
+ description: 'RearTemperature'
330
+ },
331
+ HVAC_TEMPERATURE_PROPERTIES_REARAIRCONDITIONINGTEMPERATURE: {
332
+ mkey: 'hvac',
333
+ mDescription: 'HVAC',
334
+ skey: 'hvac-temperature',
335
+ sDescription: 'Temperature',
336
+ pkey: 'hvac-rear-temperature'
337
+ },
338
+ HVAC_AIRPURIFIER_PROPERTIES_AIRPURIFICATIONGEAR: {
339
+ mkey: 'hvac',
340
+ mDescription: 'HVAC',
341
+ skey: 'hvac-airpurifier',
342
+ sDescription: 'AirPurifier',
343
+ pkey: 'air-purification-gear',
344
+ description: 'Air purification gear'
345
+ },
346
+ HVAC_AIRPURIFIER_PROPERTIES_AIRPURIFICATIONSWITCH: {
347
+ mkey: 'hvac',
348
+ mDescription: 'HVAC',
349
+ skey: 'hvac-airpurifier',
350
+ sDescription: 'AirPurifier',
351
+ pkey: 'air-purification-switch',
352
+ description: 'Air purification switch'
353
+ },
354
+ // 车身模块规格
355
+ BODY_GEAR_PROPERTIES_GEARSTATUS: {
356
+ mkey: 'body',
357
+ mDescription: 'Body',
358
+ skey: 'gear',
359
+ sDescription: 'Gear',
360
+ pkey: 'gear-status',
361
+ description: 'Status'
362
+ },
363
+ BODY_STEERINGWHEEL_PROPERTIES_STEERINGWHEELHEATING: {
364
+ mkey: 'body',
365
+ mDescription: 'Body',
366
+ skey: 'steering-wheel',
367
+ sDescription: 'SteeringWheel',
368
+ pkey: 'steering-wheel-heating',
369
+ description: 'Heating'
370
+ },
371
+ BODY_POWERMODE_PROPERTIES_POWERMODESTATE: {
372
+ mkey: 'body',
373
+ mDescription: 'Body',
374
+ skey: 'power-mode',
375
+ sDescription: 'PowerMode',
376
+ pkey: 'power-mode-state',
377
+ description: 'State'
378
+ },
379
+ BODY_REMOTECONTROL_EVENTS_REMOTECONTROLRESPONSE: {
380
+ mkey: 'body',
381
+ mDescription: 'Body',
382
+ skey: 'remote-control',
383
+ sDescription: 'RemoteControl',
384
+ ekey: 'remote-control-response',
385
+ description: 'ResponseEvent'
386
+ },
387
+ // 冰箱模块规格
388
+ FRIDGE_INFO_PROPERTIES_FRIDGESTATE: {
389
+ mkey: 'fridge',
390
+ mDescription: 'Fridge',
391
+ skey: 'fridge-info',
392
+ sDescription: 'Info',
393
+ pkey: 'fridge-state',
394
+ description: 'State'
395
+ },
396
+ FRIDGE_INFO_PROPERTIES_FRIDGEMODE: {
397
+ mkey: 'fridge',
398
+ mDescription: 'Fridge',
399
+ skey: 'fridge-info',
400
+ sDescription: 'Info',
401
+ pkey: 'fridge-mode',
402
+ description: 'Mode'
403
+ },
404
+ FRIDGE_INFO_PROPERTIES_FRIDGEPERFORMANCESTS: {
405
+ mkey: 'fridge',
406
+ mDescription: 'Fridge',
407
+ skey: 'fridge-info',
408
+ sDescription: 'Info',
409
+ pkey: 'fridge-performance-sts',
410
+ description: 'FridgePerformance'
411
+ },
412
+ // 地图模块规格
413
+ MAP_GEOFENCE_ACTIONS_ADDGEOFENCE: {
414
+ mkey: 'map',
415
+ mDescription: 'Map',
416
+ skey: 'geo-fence',
417
+ sDescription: 'GeoFence',
418
+ akey: 'add-geo-fence',
419
+ description: 'AddGeoFence'
420
+ },
421
+ MAP_GEOFENCE_ACTIONS_REMOVEGEOFENCE: {
422
+ mkey: 'map',
423
+ mDescription: 'Map',
424
+ skey: 'geo-fence',
425
+ sDescription: 'GeoFence',
426
+ akey: 'remove-geo-fence',
427
+ description: 'RemoveGeoFence'
428
+ },
429
+ MAP_GEOFENCE_ACTIONS_QUERYGEOFENCE: {
430
+ mkey: 'map',
431
+ mDescription: 'Map',
432
+ skey: 'geo-fence',
433
+ sDescription: 'GeoFence',
434
+ akey: 'query-geo-fence',
435
+ description: 'QueryGeoFence'
436
+ },
437
+ MAP_GEOFENCE_ACTIONS_TRANSACTIONALGEOFENCEOPERATION: {
438
+ mkey: 'map',
439
+ mDescription: 'Map',
440
+ skey: 'geo-fence',
441
+ sDescription: 'GeoFence',
442
+ akey: 'transactional-geofence-operation',
443
+ description: 'TransactionalGeoFenceOperation'
444
+ },
445
+ MAP_GEOFENCE_ACTIONS_BATCHGEOFENCEOPERATION: {
446
+ mkey: 'map',
447
+ mDescription: 'Map',
448
+ skey: 'geo-fence',
449
+ sDescription: 'GeoFence',
450
+ akey: 'batch-geofence-operation',
451
+ description: 'BatchGeoFenceOperation'
452
+ },
453
+ MAP_GEOFENCE_EVENTS_ADDGEOFENCERESULT: {
454
+ mkey: 'map',
455
+ mDescription: 'Map',
456
+ skey: 'geo-fence',
457
+ sDescription: 'GeoFence',
458
+ ekey: 'add-geo-fence-result-event',
459
+ description: 'AddGeoFenceResult'
460
+ },
461
+ MAP_GEOFENCE_EVENTS_REMOVEGEOFENCERESULT: {
462
+ mkey: 'map',
463
+ mDescription: 'Map',
464
+ skey: 'geo-fence',
465
+ sDescription: 'GeoFence',
466
+ ekey: 'remove-geo-fence-result-event',
467
+ description: 'RemoveGeoFenceResult'
468
+ },
469
+ MAP_GEOFENCE_EVENTS_QUERYGEOFENCERESULT: {
470
+ mkey: 'map',
471
+ mDescription: 'Map',
472
+ skey: 'geo-fence',
473
+ sDescription: 'GeoFence',
474
+ ekey: 'query-geo-fence-result-event',
475
+ description: 'QueryGeoFenceResult'
476
+ },
477
+ MAP_GEOFENCE_EVENTS_GEOFENCING: {
478
+ mkey: 'map',
479
+ mDescription: 'Map',
480
+ skey: 'geo-fence',
481
+ sDescription: 'GeoFence',
482
+ ekey: 'geo-fencing-event',
483
+ description: 'GeoFencing'
484
+ },
485
+ // 场景模块规格
486
+ SCENE_LOCATION_PROPERTIES_DCDREMOTELOCATIONSWITCH: {
487
+ mkey: 'scene',
488
+ mDescription: 'Scene',
489
+ skey: 'scene-location',
490
+ sDescription: 'Location',
491
+ pkey: 'dcd-remote-location-switch',
492
+ description: 'LocationSwitch'
493
+ },
494
+ // Sentry模块规格
495
+ SENTRY_INFO_PROPERTIES_SENTRYWORKMODE: {
496
+ mkey: 'sentry',
497
+ mDescription: 'Sentry',
498
+ skey: 'info',
499
+ sDescription: 'Info',
500
+ pkey: 'sentry-work-mode',
501
+ description: 'workMode'
502
+ },
503
+ SENTRY_SENTRYEVENT_EVENTS_SENTRYALARM: {
504
+ mkey: 'sentry',
505
+ mDescription: 'Sentry',
506
+ skey: 'sentry-event',
507
+ sDescription: 'Event',
508
+ ekey: 'sentry-alarm',
509
+ description: 'SentryAlarm'
510
+ }
511
+ };
512
+
513
+ /**
514
+ * 获取汽车规格
515
+ * @returns {Object} - 汽车规格对象(使用变量名作为键)
516
+ */
517
+ export function getCarSpecs() {
518
+ if (carSpecs) {
519
+ return carSpecs;
520
+ }
521
+
522
+ // 生成所有规格(使用变量名作为键)
523
+ /**
524
+ * 设备名称 (Device Name) - 汽车名称
525
+ */
526
+ const specBasicDeviceInformationPropertiesName = getSpecOnly(CAR_SPEC_KEYS.BASIC_DEVICE_INFORMATION_PROPERTIES_NAME);
527
+
528
+ /**
529
+ * 设备型号 (Device Model) - 车型
530
+ */
531
+ const specBasicDeviceInformationPropertiesCarModel = getSpecOnly(CAR_SPEC_KEYS.BASIC_DEVICE_INFORMATION_PROPERTIES_CARMODEL);
532
+
533
+ /**
534
+ * 设备动态能力列表 (List of equipment dynamic capabilities)
535
+ */
536
+ const specBasicDynamicPropertiesServiceEnableList = getSpecOnly(CAR_SPEC_KEYS.BASIC_DYNAMIC_PROPERTIES_SERVICEENABLELIST);
537
+
538
+ /**
539
+ * 中控锁状态 (Central Lock State)
540
+ */
541
+ const specDoorCentralLockPropertiesCentralLockState = getSpecOnly(CAR_SPEC_KEYS.DOOR_CENTRAL_LOCK_PROPERTIES_CENTRALLOCKSTATE);
542
+
543
+ /**
544
+ * 充电中断事件 (Stop Charging Event)
545
+ */
546
+ const specPowerChargingEventsStopCharging = getSpecOnly(CAR_SPEC_KEYS.POWER_CHARGING_EVENTS_STOPCHARGING);
547
+
548
+ /**
549
+ * 充电完成事件 (End Charging Event)
550
+ */
551
+ const specPowerChargingEventsEndCharging = getSpecOnly(CAR_SPEC_KEYS.POWER_CHARGING_EVENTS_ENDCHARGING);
552
+
553
+ /**
554
+ * 充电开始事件 (Charging Event)
555
+ */
556
+ const specPowerChargingEventsCharging = getSpecOnly(CAR_SPEC_KEYS.POWER_CHARGING_EVENTS_CHARGING);
557
+
558
+ /**
559
+ * 电池电量百分比显示 (Battery SoC Percentage Display)
560
+ */
561
+ const specPowerBatteryPropertiesBatterySoCDisplay = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERY_PROPERTIES_BATTERYSOCDISPLAY);
562
+
563
+ /**
564
+ * 电池电量低警告 (Low Battery SoC Warning)
565
+ */
566
+ const specPowerBatteryPropertiesLowSocWarning = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERY_PROPERTIES_LOWSOCWARNING);
567
+
568
+ /**
569
+ * 电池续航里程 (Battery Estimated Mileage) - 单位:公里
570
+ */
571
+ const specPowerBatteryPropertiesBatteryEstimatedMileage = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERY_PROPERTIES_BATTERYESTIMATEDMILEAGE);
572
+
573
+ /**
574
+ * 车端用户选择的续航展示类型 (DCD Range SOC Type Display)
575
+ */
576
+ const specPowerBatteryPropertiesDCDRangeSOCTypeDisplay = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERY_PROPERTIES_DCDRANGESOCTYPEDISPLAY);
577
+
578
+ /**
579
+ * 国家准工况(CLTC)续航 (CLTC Estimated Range) - 国家准工况续航里程
580
+ */
581
+ const specPowerBatteryPropertiesCLTCEstimatedRange = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERY_PROPERTIES_CLTCESTIMATEDRANGE);
582
+
583
+ /**
584
+ * 增程车型纯电续航(CLTC) (Cltc Estimated Extend Range)
585
+ */
586
+ const specPowerBatteryLifeEffectivenessPropertiesCltcEstimatedExtendEange = getSpecOnly(CAR_SPEC_KEYS.POWER_BATTERYLIFEEFFECTIVENESS_PROPERTIES_CLTCESTIMATEDEXTENDEANGE);
587
+
588
+ /**
589
+ * 增程车型纯电续航(CLTC) (Cltc Estimated Extend Range)
590
+ */
591
+ const specPowerPowerTripPropertiesExtendedRangeCltcElectricMileage = getSpecOnly(CAR_SPEC_KEYS.POWER_POWERTRIP_PROPERTIES_EXTENDED_RANGE_CLTC_ELECTRIC_MILEAGE);
592
+
593
+ /**
594
+ * 增程Wltc燃油续航 (Wltc Oil Estimated Range)
595
+ */
596
+ const specPowerRangePropertiesWltcFuelEndurance = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_WLTC_FUEL_ENDURANCE);
597
+
598
+ /**
599
+ * 增程Wltc纯电续航 (Wltc Estimated Extend Range)
600
+ */
601
+ const specPowerRangePropertiesWltcPureEleCruisingEndurance = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_WLTC_PURE_ELE_CRUISING_ENDURANCE);
602
+
603
+ /**
604
+ * 增程Cltc燃油续航(km) (Cltc Oil Estimated Range)
605
+ */
606
+ const specPowerRangePropertiesCltcFuelEndurance = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_CLTC_FUEL_ENDURANCE);
607
+
608
+ /**
609
+ * 增程车型WLTC纯电剩余续航 (Extended range electric vehicle WLTC batt remaining range)
610
+ */
611
+ const specPowerRangePropertiesExtendedRangeElectricVehicleWltcBattRemainingRange = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_WLTC_BATT_REMAINING_RANGE);
612
+
613
+ /**
614
+ * 增程车型WLTC燃油剩余续航 (Extended range electric vehicle WLTC fuel remaining range)
615
+ */
616
+ const specPowerRangePropertiesExtendedRangeElectricVehicleWltcFuelRemainingRange = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_WLTC_FUEL_REMAINING_RANGE);
617
+
618
+ /**
619
+ * 增程车型CLTC纯电剩余续航 (Extended range electric vehicle CLTC batt remaining range)
620
+ */
621
+ const specPowerRangePropertiesExtendedRangeElectricVehicleCltcBattRemainingRange = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_CLTC_BATT_REMAINING_RANGE);
622
+
623
+ /**
624
+ * 增程车型CLTC燃油剩余续航 (Extended range electric vehicle CLTC fuel remaining range)
625
+ */
626
+ const specPowerRangePropertiesExtendedRangeElectricVehicleCltcFuelRemainingRange = getSpecOnly(CAR_SPEC_KEYS.POWER_RANGE_PROPERTIES_EXTENDED_RANGE_ELECTRIC_VEHICLE_CLTC_FUEL_REMAINING_RANGE);
627
+
628
+ /**
629
+ * 主驾座椅加热功能 (Driver seat heating function)
630
+ */
631
+ const specSeatRow1LeftPropertiesHeating = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1LEFT_PROPERTIES_HEATING);
632
+
633
+ /**
634
+ * 主驾座椅通风 (Driver seat ventilation)
635
+ */
636
+ const specSeatRow1LeftPropertiesSeatVentilation = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1LEFT_PROPERTIES_SEATVENTILATION);
637
+
638
+ /**
639
+ * 主驾座椅通风档位 (Driver seat ventilation gear) 旧通风spec,汽车部spec非常混乱,且使用的是3.1.1这种iid固定写法,而非spec归一化解析策略
640
+ */
641
+ const specSeatRow1LeftPropertiesSeatVentilationGear = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1LEFT_PROPERTIES_SEATVENTILATIONGEAR);
642
+
643
+ /**
644
+ * 副驾座椅加热功能 (Co-driver seat heating function)
645
+ */
646
+ const specSeatRow1RightPropertiesHeating = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1RIGHT_PROPERTIES_HEATING);
647
+
648
+ /**
649
+ * 副驾座椅通风 (Co-driver seat ventilation)
650
+ */
651
+ const specSeatRow1RightPropertiesSeatVentilation = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1RIGHT_PROPERTIES_SEATVENTILATION);
652
+
653
+ /**
654
+ * 副驾座椅通风档位 (Co-driver seat ventilation gear)
655
+ */
656
+ const specSeatRow1RightPropertiesSeatVentilationGear = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW1RIGHT_PROPERTIES_SEATVENTILATIONGEAR);
657
+
658
+ /**
659
+ * 二排左侧座椅加热功能 (Second-row left seat heating)
660
+ */
661
+ const specSeatRow2LeftPropertiesHeating = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2LEFT_PROPERTIES_HEATING);
662
+
663
+ /**
664
+ * 二排左侧座椅通风 (Second-row left seat ventilation)
665
+ */
666
+ const specSeatRow2LeftPropertiesSeatVentilation = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2LEFT_PROPERTIES_SEATVENTILATION);
667
+
668
+ /**
669
+ * 二排左侧座椅通风档位 (Second-row left seat ventilation gear)
670
+ */
671
+ const specSeatRow2LeftPropertiesSeatVentilationGear = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2LEFT_PROPERTIES_SEATVENTILATIONGEAR);
672
+
673
+ /**
674
+ * 二排中间座椅加热功能 (Second-row middle seat heating)
675
+ */
676
+ const specSeatRow2MiddlePropertiesHeating = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2MIDDLE_PROPERTIES_HEATING);
677
+
678
+ /**
679
+ * 二排中间座椅通风 (Second-row middle seat ventilation)
680
+ */
681
+ const specSeatRow2MiddlePropertiesSeatVentilation = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2MIDDLE_PROPERTIES_SEATVENTILATION);
682
+
683
+ /**
684
+ * 二排中间座椅通风档位 (Second-row middle seat ventilation gear)
685
+ */
686
+ const specSeatRow2MiddlePropertiesSeatVentilationGear = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2MIDDLE_PROPERTIES_SEATVENTILATIONGEAR);
687
+
688
+ /**
689
+ * 二排右侧座椅加热 (Second-row right seat heating)
690
+ */
691
+ const specSeatRow2RightPropertiesHeating = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2RIGHT_PROPERTIES_HEATING);
692
+
693
+ /**
694
+ * 二排/后排右侧侧座椅通风 (Second-row right seat ventilation)
695
+ */
696
+ const specSeatRow2RightPropertiesSeatVentilation = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2RIGHT_PROPERTIES_SEATVENTILATION);
697
+
698
+ /**
699
+ * 二排右侧座椅通风档位 (Second-row right seat ventilation gear)
700
+ */
701
+ const specSeatRow2RightPropertiesSeatVentilationGear = getSpecOnly(CAR_SPEC_KEYS.SEAT_ROW2RIGHT_PROPERTIES_SEATVENTILATIONGEAR);
702
+
703
+ /**
704
+ * 空调开关状态 (HVAC Switch State)
705
+ */
706
+ const specHVACStatePropertiesHvacStatus = getSpecOnly(CAR_SPEC_KEYS.HVAC_STATE_PROPERTIES_HVACSTATUS);
707
+
708
+ /**
709
+ * 空调前除霜状态 (Front defrost state) - 前除霜开关状态
710
+ */
711
+ const specHVACStatePropertiesHvacDefrosterStatus = getSpecOnly(CAR_SPEC_KEYS.HVAC_STATE_PROPERTIES_HVACDEFROSTERSTATUS);
712
+
713
+ /**
714
+ * 车内温度 (Inside Temperature) - 单位摄氏度
715
+ */
716
+ const specHVACTemperaturePropertiesInsideTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_INSIDETEMPERATURE);
717
+
718
+ /**
719
+ * 车外温度 (Outside Temperature) - 单位摄氏度
720
+ */
721
+ const specHVACTemperaturePropertiesOutsideTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_OUTSIDETEMPERATURE);
722
+
723
+ /**
724
+ * 主驾区域温度 (Target Temperature) - 温度设定
725
+ */
726
+ const specHVACTemperaturePropertiesHvacTargetTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_HVACTARGETTEMPERATURE);
727
+
728
+ /**
729
+ * 车外温度 (Outside Temperature) - 单位摄氏度旧
730
+ */
731
+ const specHVACTemperaturePropertiesOldOutsideTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_OLD_OUTSIDETEMPERATURE);
732
+
733
+ /**
734
+ * 后排空调温度 (Rear Temperature) - 后排区域温度设定
735
+ */
736
+ const specHVACTemperaturePropertiesRearTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_REARTEMPERATURE);
737
+
738
+ /**
739
+ * 后排空调温度 (Rear Air Conditioning Temperature) - 后排区域温度设定旧
740
+ */
741
+ const specHVACTemperaturePropertiesRearAirConditioningTemperature = getSpecOnly(CAR_SPEC_KEYS.HVAC_TEMPERATURE_PROPERTIES_REARAIRCONDITIONINGTEMPERATURE);
742
+
743
+ /**
744
+ * 空气净化挡位 (Air purification gear) - 空气净化强度档位
745
+ */
746
+ const specHVACAirPurifierPropertiesAirPurificationGear = getSpecOnly(CAR_SPEC_KEYS.HVAC_AIRPURIFIER_PROPERTIES_AIRPURIFICATIONGEAR);
747
+
748
+ /**
749
+ * 空气净化开关 (Air purification switch) - 空气净化功能开关
750
+ */
751
+ const specHVACAirPurifierPropertiesAirPurificationSwitch = getSpecOnly(CAR_SPEC_KEYS.HVAC_AIRPURIFIER_PROPERTIES_AIRPURIFICATIONSWITCH);
752
+
753
+ /**
754
+ * 档位状态 (Gear Status) - 档位显示
755
+ */
756
+ const specBodyGearPropertiesGearStatus = getSpecOnly(CAR_SPEC_KEYS.BODY_GEAR_PROPERTIES_GEARSTATUS);
757
+
758
+ /**
759
+ * 方向盘加热开关 (Steering wheel heating) - 方向盘加热功能开关
760
+ */
761
+ const specBodySteeringWheelPropertiesSteeringWheelHeating = getSpecOnly(CAR_SPEC_KEYS.BODY_STEERINGWHEEL_PROPERTIES_STEERINGWHEELHEATING);
762
+
763
+ /**
764
+ * 电源模式状态 (Power Mode State) - 车辆电源状态
765
+ */
766
+ const specBodyPowerModePropertiesPowerModeState = getSpecOnly(CAR_SPEC_KEYS.BODY_POWERMODE_PROPERTIES_POWERMODESTATE);
767
+
768
+ /**
769
+ * 远控指令回复事件 (Remote Control Response Event) - 远程控制回调
770
+ */
771
+ const specBodyRemoteControlEventsRemoteControlResponse = getSpecOnly(CAR_SPEC_KEYS.BODY_REMOTECONTROL_EVENTS_REMOTECONTROLRESPONSE);
772
+
773
+ /**
774
+ * 冰箱状态 (Fridge State) - 冰箱开启/关闭状态
775
+ */
776
+ const specFridgeInfoPropertiesFridgeState = getSpecOnly(CAR_SPEC_KEYS.FRIDGE_INFO_PROPERTIES_FRIDGESTATE);
777
+
778
+ /**
779
+ * 冰箱工作模式 (Fridge Mode) - 制冷/制热模式
780
+ */
781
+ const specFridgeInfoPropertiesFridgeMode = getSpecOnly(CAR_SPEC_KEYS.FRIDGE_INFO_PROPERTIES_FRIDGEMODE);
782
+
783
+ /**
784
+ * 冰箱性能设置模式 (Fridge Performance Status) - 冰箱性能档位设置
785
+ */
786
+ const specFridgeInfoPropertiesFridgePerformanceSts = getSpecOnly(CAR_SPEC_KEYS.FRIDGE_INFO_PROPERTIES_FRIDGEPERFORMANCESTS);
787
+
788
+ /**
789
+ * 下发地理围栏 (Add GeoFence) - 添加地理围栏
790
+ */
791
+ const specMapGeoFenceActionsAddGeoFence = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_ACTIONS_ADDGEOFENCE);
792
+
793
+ /**
794
+ * 删除地理围栏 (Remove GeoFence) - 移除地理围栏
795
+ */
796
+ const specMapGeoFenceActionsRemoveGeoFence = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_ACTIONS_REMOVEGEOFENCE);
797
+
798
+ /**
799
+ * 查询地理围栏 (Query GeoFence) - 查看地理围栏信息
800
+ */
801
+ const specMapGeoFenceActionsQueryGeoFence = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_ACTIONS_QUERYGEOFENCE);
802
+
803
+ /**
804
+ * 事务编辑地理围栏 (Transactional GeoFence Operation) - 事务方式操作围栏
805
+ */
806
+ const specMapGeoFenceActionsTransactionalGeoFenceOperation = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_ACTIONS_TRANSACTIONALGEOFENCEOPERATION);
807
+
808
+ /**
809
+ * 批量编辑地理围栏 (Batch GeoFence Operation) - 批量操作围栏
810
+ */
811
+ const specMapGeoFenceActionsBatchGeoFenceOperation = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_ACTIONS_BATCHGEOFENCEOPERATION);
812
+
813
+ /**
814
+ * 下发地理围栏回调结果 (Add GeoFence Result Event) - 添加围栏结果
815
+ */
816
+ const specMapGeoFenceEventsAddGeoFenceResult = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_EVENTS_ADDGEOFENCERESULT);
817
+
818
+ /**
819
+ * 删除地理围栏回调结果 (Remove GeoFence Result Event) - 移除围栏结果
820
+ */
821
+ const specMapGeoFenceEventsRemoveGeoFenceResult = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_EVENTS_REMOVEGEOFENCERESULT);
822
+
823
+ /**
824
+ * 查询地理围栏回调结果 (Query GeoFence Result Event) - 查询围栏结果
825
+ */
826
+ const specMapGeoFenceEventsQueryGeoFenceResult = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_EVENTS_QUERYGEOFENCERESULT);
827
+
828
+ /**
829
+ * 进出地理围栏上报事件 (GeoFencing Event) - 进出围栏状态变化
830
+ */
831
+ const specMapGeoFenceEventsGeoFencing = getSpecOnly(CAR_SPEC_KEYS.MAP_GEOFENCE_EVENTS_GEOFENCING);
832
+
833
+ /**
834
+ * 远程位置开关 (Location Switch) - 远程位置功能开关
835
+ */
836
+ const specSceneLocationPropertiesDcdRemoteLocationSwitch = getSpecOnly(CAR_SPEC_KEYS.SCENE_LOCATION_PROPERTIES_DCDREMOTELOCATIONSWITCH);
837
+
838
+ /**
839
+ * 哨兵工作模式 (Sentry Work Mode) - 哨兵模式工作状态
840
+ */
841
+ const specSentryInfoPropertiesSentryWorkMode = getSpecOnly(CAR_SPEC_KEYS.SENTRY_INFO_PROPERTIES_SENTRYWORKMODE);
842
+
843
+ /**
844
+ * 哨兵告警事件 (Sentry Alarm Event) - 哨兵模式告警事件
845
+ */
846
+ const specSentrySentryEventEventsSentryAlarm = getSpecOnly(CAR_SPEC_KEYS.SENTRY_SENTRYEVENT_EVENTS_SENTRYALARM);
847
+ carSpecs = {
848
+ specBasicDeviceInformationPropertiesName,
849
+ specBasicDeviceInformationPropertiesCarModel,
850
+ specBasicDynamicPropertiesServiceEnableList,
851
+ specDoorCentralLockPropertiesCentralLockState,
852
+ specPowerChargingEventsStopCharging,
853
+ specPowerChargingEventsEndCharging,
854
+ specPowerChargingEventsCharging,
855
+ specPowerBatteryPropertiesBatterySoCDisplay,
856
+ specPowerBatteryPropertiesLowSocWarning,
857
+ specPowerBatteryPropertiesBatteryEstimatedMileage,
858
+ specPowerBatteryPropertiesDCDRangeSOCTypeDisplay,
859
+ specPowerBatteryPropertiesCLTCEstimatedRange,
860
+ specPowerBatteryLifeEffectivenessPropertiesCltcEstimatedExtendEange: specPowerBatteryLifeEffectivenessPropertiesCltcEstimatedExtendEange || specPowerPowerTripPropertiesExtendedRangeCltcElectricMileage,
861
+ specPowerRangePropertiesWltcFuelEndurance,
862
+ specPowerRangePropertiesWltcPureEleCruisingEndurance,
863
+ specPowerRangePropertiesCltcFuelEndurance,
864
+ specPowerRangePropertiesExtendedRangeElectricVehicleWltcBattRemainingRange,
865
+ specPowerRangePropertiesExtendedRangeElectricVehicleWltcFuelRemainingRange,
866
+ specPowerRangePropertiesExtendedRangeElectricVehicleCltcBattRemainingRange,
867
+ specPowerRangePropertiesExtendedRangeElectricVehicleCltcFuelRemainingRange,
868
+ specSeatRow1LeftPropertiesHeating,
869
+ specSeatRow1LeftPropertiesSeatVentilation: specSeatRow1LeftPropertiesSeatVentilation || specSeatRow1LeftPropertiesSeatVentilationGear,
870
+ specSeatRow1RightPropertiesHeating,
871
+ specSeatRow1RightPropertiesSeatVentilation: specSeatRow1RightPropertiesSeatVentilation || specSeatRow1RightPropertiesSeatVentilationGear,
872
+ specSeatRow2LeftPropertiesHeating,
873
+ specSeatRow2LeftPropertiesSeatVentilation: specSeatRow2LeftPropertiesSeatVentilation || specSeatRow2LeftPropertiesSeatVentilationGear,
874
+ specSeatRow2MiddlePropertiesHeating,
875
+ specSeatRow2MiddlePropertiesSeatVentilation: specSeatRow2MiddlePropertiesSeatVentilation || specSeatRow2MiddlePropertiesSeatVentilationGear,
876
+ specSeatRow2RightPropertiesHeating,
877
+ specSeatRow2RightPropertiesSeatVentilation: specSeatRow2RightPropertiesSeatVentilation || specSeatRow2RightPropertiesSeatVentilationGear,
878
+ specHVACStatePropertiesHvacStatus,
879
+ specHVACStatePropertiesHvacDefrosterStatus,
880
+ specHVACTemperaturePropertiesInsideTemperature,
881
+ specHVACTemperaturePropertiesOutsideTemperature: specHVACTemperaturePropertiesOutsideTemperature || specHVACTemperaturePropertiesOldOutsideTemperature,
882
+ specHVACTemperaturePropertiesHvacTargetTemperature,
883
+ specHVACTemperaturePropertiesRearTemperature: specHVACTemperaturePropertiesRearTemperature || specHVACTemperaturePropertiesRearAirConditioningTemperature,
884
+ specHVACAirPurifierPropertiesAirPurificationGear,
885
+ specHVACAirPurifierPropertiesAirPurificationSwitch,
886
+ specBodyGearPropertiesGearStatus,
887
+ specBodySteeringWheelPropertiesSteeringWheelHeating,
888
+ specBodyPowerModePropertiesPowerModeState,
889
+ specBodyRemoteControlEventsRemoteControlResponse,
890
+ specFridgeInfoPropertiesFridgeState,
891
+ specFridgeInfoPropertiesFridgeMode,
892
+ specFridgeInfoPropertiesFridgePerformanceSts,
893
+ specMapGeoFenceActionsAddGeoFence,
894
+ specMapGeoFenceActionsRemoveGeoFence,
895
+ specMapGeoFenceActionsQueryGeoFence,
896
+ specMapGeoFenceActionsTransactionalGeoFenceOperation,
897
+ specMapGeoFenceActionsBatchGeoFenceOperation,
898
+ specMapGeoFenceEventsAddGeoFenceResult,
899
+ specMapGeoFenceEventsRemoveGeoFenceResult,
900
+ specMapGeoFenceEventsQueryGeoFenceResult,
901
+ specMapGeoFenceEventsGeoFencing,
902
+ specSceneLocationPropertiesDcdRemoteLocationSwitch,
903
+ specSentryInfoPropertiesSentryWorkMode,
904
+ specSentrySentryEventEventsSentryAlarm
905
+ };
906
+ return carSpecs;
907
+ }
908
+ export function initCarSpecs() {
909
+ carSpecs = null;
910
+ getCarSpecs();
911
+ }