var.c 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602
  1. #include "var.h"
  2. MC_RunInfo_Struct_t MC_RunInfo; //MC运行信息
  3. MC_ErrorCode_Struct_t MC_ErrorCode; //MC故障代码
  4. MC_VerInfo_Struct_t MC_VerInfo; //MC版本信息
  5. char Firmware_Special[32]; //MC软件版本特性说明
  6. OnLine_Status_Struct_t DeviceOnLine_Status; //设备在线检测结果
  7. BMS_RunInfo_Struct_t BMS_RunInfo; //BMS运行信息
  8. Device_CheckInfo_Struct_t BMS_CheckInfo; //BMS授权校验
  9. BMS_DesignInfo_Struct_t BMS_DesignInfo; //BMS设计信息
  10. Device_CheckInfo_Struct_t PBU_CheckInfo; //PBU授权校验
  11. PBU_ConfigParam_Struct_t PBU_ConfigParam; //PBU配置参数
  12. Device_CheckInfo_Struct_t HMI_CheckInfo; //HMI授权校验
  13. MC_ConfigParam1_Struct_t MC_ConfigParam1; //MC配置参数1
  14. MC_ConfigParam2_Struct_t MC_ConfigParam2; //MC配置参数1
  15. MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam; //力矩传感器校正信息
  16. MC_MotorParam_Struct_t MC_MotorParam; //马达参数
  17. MC_RunLog1_Struct_t MC_RunLog1; //MC历史信息1
  18. MC_RunLog2_Struct_t MC_RunLog2; //MC历史信息2
  19. uint8_t RunLogSaveIndex = 0; //MC历史信息存储序号,0:不存储,1:存储MC_RunLog1,2:存储MC_RunLog2
  20. uint8_t Secret_Key[8]; //授权验证密钥
  21. MC_MacInfo_Struct_t MC_MacInfo; //MC生产信息
  22. uint8_t UserString1[16]; //MC自定义字符串1
  23. uint8_t UserString2[16]; //MC自定义字符串2
  24. uint8_t UserString3[16]; //MC自定义字符串3
  25. MC_PowerOffBkp_Struct_t MC_PowerOffBkp; //MC关机时刻临时存储的数据
  26. Device_CheckInfo_Struct_t MC_CheckInfo; //MC授权信息
  27. MC_TE_SensorStatus_Struct_t MC_TE_SensorStatus; //TE传回传感器状态
  28. MC_TE_SensorData_Struct_t MC_TE_SensorData; //发给TE传感器结果
  29. uint16_t MC_TE_SyncClockFreqScan; //TE同步时钟频率
  30. TrueOrFalse_Flag_Struct_t TE_MCU_DataRefreshFlag = FALSE; //TE MCU数据更新标志
  31. MC_AssistParam_Struct_t MC_AssisParam; //助力输出计算参数
  32. uint8_t MC_WalkMode_Persent = 100; //推行模式最高转速百分比设置
  33. ComOK_Check_Struct_t IsComOK_TE = {FALSE, 0}; //TE通信状态标志
  34. ComOK_Check_Struct_t IsComOK_PBU = {FALSE, 0}; //PBU通信状态标志
  35. ComOK_Check_Struct_t IsComOK_HMI = {FALSE, 0}; //HMI通信状态标志
  36. ComOK_Check_Struct_t IsComOK_BMS = {FALSE, 0}; //BMS通信状态标志
  37. MC_AttitudeAngle_Struct_t MC_AttitudeAngle; //姿态传感器数值
  38. MC_RideLog_Struct_t MC_RideLog; //骑行历史
  39. MC_AvgPower_Struct_t MC_AvgPower; //助力平均功耗
  40. MCU_Manufacturter_Struct_t MCUManufacturer; //MCU生厂商
  41. //BMS默认设计信息
  42. const BMS_DesignInfo_Struct_t BMS_DesignInfo_Default =
  43. {
  44. (uint16_t)10400, //设计容量
  45. (uint8_t)36, //设计电压
  46. {0,0,0,0,0,0,0,0} //电芯型号
  47. };
  48. //PBU默认配置
  49. const PBU_ConfigParam_Struct_t PBU_ConfigParam_Default =
  50. {
  51. 4, //档位数量
  52. MC_SUPPORT_DISABLE, //是否支持无PBU操作
  53. };
  54. //MC默认配置参数1,占用32bytes
  55. const MC_ConfigParam1_Struct_t MC_ConfigParam1_Default =
  56. {
  57. (MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE, //支持指拨模式,0x55-不支持,0x-AA支持
  58. (MC_StarMode_Struct_t)MC_StarMode_NORM, //启动模式
  59. (uint16_t)100, //停机时间 ms
  60. (uint8_t)25, //限速 km/h
  61. (uint8_t)3, //下降速度
  62. (uint8_t)14, //前齿数 T
  63. (uint8_t)9, //后齿数 T
  64. (uint8_t)15, //限流 A
  65. (uint8_t)135, //高温预警值 +40℃
  66. (uint8_t)165, //高温保护值 +40℃
  67. (MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE, //无码表支持,0x55-不支持,0x-AA支持
  68. (uint8_t)219, //轮胎周长 cm
  69. (uint8_t)0, //系列号,
  70. {100,100}, //ECO
  71. {100,100}, //NORM
  72. {100,100}, //SPORT
  73. {100,100}, //TURBO
  74. {100,100}, //SMART
  75. (uint8_t)1, //速度传感器极数
  76. (uint8_t)2, //踏频启动信号个数
  77. (MC_SpeedSignal_Struct_t)MC_SPEED_WHEEL_TRIG, //速度信号来源,0x55-车轮触发,0x-AA踏频估算,0x-EE通信获取车轮旋转周期
  78. (int8_t)0, //轮胎周长微调值
  79. (uint16_t)3000, //低压保护阈值,单位mV,针对单节电芯的设置值
  80. (uint8_t)60, //推行限速值,单位0.1km/h
  81. (uint8_t)135 //推行模式电机转速设置值
  82. };
  83. //MC配置参数2,占用32bytes
  84. const MC_ConfigParam2_Struct_t MC_ConfigParam2_Default =
  85. {
  86. (int16_t)0,
  87. (int16_t)0,
  88. (MC_SupportFlag_Struct_t)MC_SUPPORT_DISABLE, //0x55-不支持,0x-AA支持
  89. (MC_TailLight_Mode_Struct_t)MC_TAIL_LIGHT_MODE2,
  90. (MC_LightVoltage_Struct_t)MC_LIGHT_VOL_12V,
  91. (MC_LightVoltage_Struct_t)MC_LIGHT_VOL_12V,
  92. };
  93. const MC_TorqueCorrectParam_Struct_t MC_TorqueCorrectParam_Default =
  94. {
  95. (uint16_t)400,
  96. (uint8_t)100
  97. };
  98. //MC默认马达参数,占用16bytes
  99. const MC_MotorParam_Struct_t MC_MotorParam_Default =
  100. {
  101. (uint16_t)250, //W
  102. (uint16_t)1600, //rpm
  103. (uint16_t)200, //mohm
  104. (uint16_t)10, //mH
  105. (uint16_t)10, //mH
  106. (uint16_t)36000, //mV
  107. (uint8_t)36 //V
  108. };
  109. //MC默认历史信息,占用48bytes
  110. const MC_RunLog1_Struct_t MC_RunLog1_Default =
  111. {
  112. (uint32_t)1, //开机次数
  113. (uint32_t)0, //运行总时间 min
  114. (uint16_t)0, //过流保次数
  115. (uint16_t)0, //低压保护次数
  116. (uint16_t)0, //高压保护次数
  117. (uint16_t)0, //堵转保护次数
  118. (uint16_t)0, //温度保护次数
  119. (uint16_t)0, //速度传感器错误次数
  120. (uint16_t)0, //力矩传感器错误次数
  121. (uint16_t)0, //霍尔传感器错误次数
  122. (uint16_t)0, //马达相线错误次数
  123. (uint16_t)0, //NTC错误次数
  124. (uint16_t)0, //BMS校验错误次数
  125. (uint16_t)0, //HMI校验错误次数
  126. (uint16_t)0, //PBU校验错误次数
  127. (uint8_t)65, //PCB历史最高温
  128. (uint8_t)65, //PCB历史最低温
  129. (uint8_t)0, //空出预留
  130. (uint8_t)0, //空出预留
  131. (uint8_t)0, //空出预留
  132. (uint8_t)0, //空出预留
  133. (uint8_t)65, //绕组历史最高温
  134. (uint8_t)65, //绕组历史最低温
  135. (uint8_t)65, //MCU历史最高温
  136. (uint8_t)65 //MCU历史最低温
  137. };
  138. //MC默认历史信息,占用24bytes
  139. const MC_RunLog2_Struct_t MC_RunLog2_Default =
  140. {
  141. (uint16_t)0, //MCU故障次数
  142. (uint16_t)0, //踏频传感器故障次数
  143. (uint16_t)0, //指拨传感器故障次数
  144. (uint16_t)0, //MOS短路次数
  145. (uint16_t)0, //电压异常次数
  146. (uint16_t)0, //电路故障次数
  147. (uint16_t)0, //TE MCU故障次数
  148. (uint16_t)0, //TE 电路故障次数
  149. };
  150. //平均功耗默认值
  151. const MC_AvgPower_Struct_t MC_AvgPower_Default =
  152. {
  153. (uint16_t)90, //ECO
  154. (uint16_t)135,//TURBO
  155. (uint16_t)180,//SPORT
  156. (uint16_t)225,//TURBO
  157. (uint16_t)200,//SMART
  158. (uint16_t)180,//SMART_T
  159. (uint16_t)270 //5
  160. };
  161. //MC骑行历史信息,占用32bytes
  162. const MC_RideLog_Struct_t MC_RideLog_Default =
  163. {
  164. (uint32_t)0,
  165. (uint32_t)0,
  166. (uint32_t)0,
  167. (uint32_t)0
  168. };
  169. //默认密钥,占用8bytes
  170. const uint8_t Secret_Key_Default[8] = "AVONITOM";
  171. const uint16_t Ver_Table[11] =
  172. {
  173. 372, 744, 1116, 1489, 1861, 2233, 2605, 2978, 3350, 3722, 4095
  174. };
  175. /************Volans助力参数************/
  176. //ECO档位助力参数
  177. const nGearParam_Struct_t GearParam_Default_ECO_Volans =
  178. {
  179. (uint16_t)392,
  180. (uint16_t)0,
  181. (uint16_t)100,
  182. (uint16_t)800,
  183. (uint8_t)2,
  184. (uint8_t)1,
  185. (uint16_t)512
  186. };
  187. //NORM档位助力参数
  188. const nGearParam_Struct_t GearParam_Default_NORM_Volans =
  189. {
  190. (uint16_t)786,
  191. (uint16_t)0,
  192. (uint16_t)100,
  193. (uint16_t)1000,
  194. (uint8_t)2,
  195. (uint8_t)1,
  196. (uint16_t)686
  197. };
  198. //SPORT档位助力参数
  199. const nGearParam_Struct_t GearParam_Default_SPORT_Volans =
  200. {
  201. (uint16_t)1309,
  202. (uint16_t)700,
  203. (uint16_t)100,
  204. (uint16_t)1300,
  205. (uint8_t)3,
  206. (uint8_t)1,
  207. (uint16_t)870
  208. };
  209. //TURBO档位助力参数
  210. const nGearParam_Struct_t GearParam_Default_TURBO_Volans =
  211. {
  212. (uint16_t)1964,
  213. (uint16_t)840,
  214. (uint16_t)100,
  215. (uint16_t)2100,
  216. (uint8_t)5,
  217. (uint8_t)1,
  218. (uint16_t)1024
  219. };
  220. //SMART档位助力参数
  221. const nGearParam_Struct_t GearParam_Default_SMART_Volans =
  222. {
  223. (uint16_t)0,
  224. (uint16_t)500,
  225. (uint16_t)100,
  226. (uint16_t)2100,
  227. (uint8_t)4,
  228. (uint8_t)1,
  229. (uint16_t)1024
  230. };
  231. /************Volans Plus助力参数************/
  232. //ECO档位助力参数
  233. const nGearParam_Struct_t GearParam_Default_ECO_Volans_Plus =
  234. {
  235. (uint16_t)384,
  236. (uint16_t)0,
  237. (uint16_t)100,
  238. (uint16_t)840,
  239. (uint8_t)2,
  240. (uint8_t)1,
  241. (uint16_t)342
  242. };
  243. //NORM档位助力参数
  244. const nGearParam_Struct_t GearParam_Default_NORM_Volans_Plus =
  245. {
  246. (uint16_t)858,
  247. (uint16_t)0,
  248. (uint16_t)100,
  249. (uint16_t)1200,
  250. (uint8_t)2,
  251. (uint8_t)1,
  252. (uint16_t)512
  253. };
  254. //SPORT档位助力参数
  255. const nGearParam_Struct_t GearParam_Default_SPORT_Volans_Plus =
  256. {
  257. (uint16_t)1353,
  258. (uint16_t)700,
  259. (uint16_t)100,
  260. (uint16_t)1590,
  261. (uint8_t)3,
  262. (uint8_t)1,
  263. (uint16_t)686
  264. };
  265. //TURBO档位助力参数
  266. const nGearParam_Struct_t GearParam_Default_TURBO_Volans_Plus =
  267. {
  268. (uint16_t)1885,
  269. (uint16_t)840,
  270. (uint16_t)100,
  271. (uint16_t)1850,
  272. (uint8_t)4,
  273. (uint8_t)1,
  274. (uint16_t)867
  275. };
  276. //5档助力参数
  277. const nGearParam_Struct_t GearParam_Default_5_Volans_Plus =
  278. {
  279. (uint16_t)2354,
  280. (uint16_t)840,
  281. (uint16_t)100,
  282. (uint16_t)2100,
  283. (uint8_t)5,
  284. (uint8_t)1,
  285. (uint16_t)1024
  286. };
  287. //SMART档位助力参数
  288. const nGearParam_Struct_t GearParam_Default_SMART_Volans_Plus =
  289. {
  290. (uint16_t)0,
  291. (uint16_t)500,
  292. (uint16_t)100,
  293. (uint16_t)2100,
  294. (uint8_t)4,
  295. (uint8_t)1,
  296. (uint16_t)1024
  297. };
  298. //SMART_T档位助力参数
  299. const nGearParam_Struct_t GearParam_Default_SMART_T_Volans_Plus =
  300. {
  301. (uint16_t)0,
  302. (uint16_t)750,
  303. (uint16_t)100,
  304. (uint16_t)2100,
  305. (uint8_t)4,
  306. (uint8_t)1,
  307. (uint16_t)867
  308. };
  309. /************Pegasi助力参数************/
  310. //ECO档位助力参数
  311. const nGearParam_Struct_t GearParam_Default_ECO_Pegasi =
  312. {
  313. (uint16_t)476,
  314. (uint16_t)560,
  315. (uint16_t)0,
  316. (uint16_t)937,
  317. (uint8_t)2,
  318. (uint8_t)1,
  319. (uint16_t)338
  320. };
  321. //NORM档位助力参数
  322. const nGearParam_Struct_t GearParam_Default_NORM_Pegasi =
  323. {
  324. (uint16_t)1142,
  325. (uint16_t)700,
  326. (uint16_t)0,
  327. (uint16_t)1250,
  328. (uint8_t)3,
  329. (uint8_t)2,
  330. (uint16_t)489
  331. };
  332. //SPORT档位助力参数
  333. const nGearParam_Struct_t GearParam_Default_SPORT_Pegasi =
  334. {
  335. (uint16_t)1903,
  336. (uint16_t)840,
  337. (uint16_t)0,
  338. (uint16_t)1459,
  339. (uint8_t)4,
  340. (uint8_t)2,
  341. (uint16_t)686
  342. };
  343. //TURBO档位助力参数
  344. const nGearParam_Struct_t GearParam_Default_TURBO_Pegasi =
  345. {
  346. (uint16_t)2857,
  347. (uint16_t)980,
  348. (uint16_t)0,
  349. (uint16_t)2100,
  350. (uint8_t)5,
  351. (uint8_t)3,
  352. (uint16_t)1024
  353. };
  354. //SMART档位助力参数
  355. const nGearParam_Struct_t GearParam_Default_SMART_Pegasi =
  356. {
  357. (uint16_t)0,
  358. (uint16_t)1200,
  359. (uint16_t)0,
  360. (uint16_t)2100,
  361. (uint8_t)4,
  362. (uint8_t)2,
  363. (uint16_t)1024
  364. };
  365. /************Pegasi Plus助力参数************/
  366. //ECO档位助力参数
  367. const nGearParam_Struct_t GearParam_Default_ECO_Pegasi_Plus =
  368. {
  369. (uint16_t)523,
  370. (uint16_t)560,
  371. (uint16_t)100,
  372. (uint16_t)871,
  373. (uint8_t)1,
  374. (uint8_t)1,
  375. (uint16_t)235
  376. };
  377. //NORM档位助力参数
  378. const nGearParam_Struct_t GearParam_Default_NORM_Pegasi_Plus =
  379. {
  380. (uint16_t)1198,
  381. (uint16_t)700,
  382. (uint16_t)100,
  383. (uint16_t)1055,
  384. (uint8_t)2,
  385. (uint8_t)1,
  386. (uint16_t)331
  387. };
  388. //SPORT档位助力参数
  389. const nGearParam_Struct_t GearParam_Default_SPORT_Pegasi_Plus =
  390. {
  391. (uint16_t)1712,
  392. (uint16_t)840,
  393. (uint16_t)100,
  394. (uint16_t)1464,
  395. (uint8_t)3,
  396. (uint8_t)1,
  397. (uint16_t)512
  398. };
  399. //TURBO档位助力参数
  400. const nGearParam_Struct_t GearParam_Default_TURBO_Pegasi_Plus =
  401. {
  402. (uint16_t)2861,
  403. (uint16_t)980,
  404. (uint16_t)100,
  405. (uint16_t)2100,
  406. (uint8_t)5,
  407. (uint8_t)2,
  408. (uint16_t)1024
  409. };
  410. //SMART档位助力参数
  411. const nGearParam_Struct_t GearParam_Default_SMART_Pegasi_Plus =
  412. {
  413. (uint16_t)0,
  414. (uint16_t)1850,
  415. (uint16_t)100,
  416. (uint16_t)2100,
  417. (uint8_t)4,
  418. (uint8_t)1,
  419. (uint16_t)1024
  420. };
  421. //全局函数定义
  422. //MC存储的参数初始化为默认值
  423. void Var_SetToDefaultParam(void)
  424. {
  425. //校验码
  426. strncpy((char*)MC_CheckInfo.CheckCode, (char*)"000000000000", 12);
  427. //校验密钥
  428. memcpy(Secret_Key, Secret_Key_Default, sizeof(Secret_Key_Default));
  429. //力矩传感器校正参数
  430. memcpy((uint8_t*)&MC_TorqueCorrectParam.StarData, (uint8_t*)&MC_TorqueCorrectParam_Default.StarData, sizeof(MC_TorqueCorrectParam_Default));
  431. //配置参数1
  432. memcpy((uint8_t*)&MC_ConfigParam1.GasCtrlMode_Flag, (uint8_t*)&MC_ConfigParam1_Default.GasCtrlMode_Flag, sizeof(MC_ConfigParam1_Default));
  433. //配置参数2
  434. memcpy((uint8_t*)&MC_ConfigParam2.ZeroAngle_Pitch, (uint8_t*)&MC_ConfigParam2_Default.ZeroAngle_Pitch, sizeof(MC_ConfigParam2_Default));
  435. //马达参数
  436. memcpy((uint8_t*)&MC_MotorParam.Rate_Power, (uint8_t*)&MC_MotorParam_Default.Rate_Power, sizeof(MC_MotorParam_Default));
  437. }
  438. //MC存储的记录初始化为0
  439. void Var_SetToDefaultLog(void)
  440. {
  441. //历史信息1
  442. memcpy((uint8_t*)&MC_RunLog1.PowerOnCnt, (uint8_t*)&MC_RunLog1_Default.PowerOnCnt, sizeof(MC_RunLog1_Default));
  443. //历史信息2
  444. memcpy((uint8_t*)&MC_RunLog2.MCU_FaultCnt, (uint8_t*)&MC_RunLog2_Default.MCU_FaultCnt, sizeof(MC_RunLog2_Default));
  445. //骑行历史信息
  446. memcpy((uint8_t*)&MC_RideLog.ODO_Km, (uint8_t*)&MC_RideLog_Default.ODO_Km, sizeof(MC_RideLog_Default));
  447. //平均功耗值
  448. MC_AvgPower = MC_AvgPower_Default;
  449. }
  450. //变量初始化
  451. void Var_Init(void)
  452. {
  453. //MC故障码初始化为0
  454. MC_ErrorCode.Code = 0;
  455. //TE故障码初始化为0
  456. MC_TE_SensorStatus.TE_ErrorCode.Code = 0;
  457. //设备在线检测结果初始化为离线
  458. DeviceOnLine_Status.Status = 0x07;
  459. //BMS校验信息初始化为0
  460. memset((uint8_t*)BMS_CheckInfo.MAC_ID, 0, sizeof(BMS_CheckInfo));
  461. //HMI校验信息初始化为0
  462. memset((uint8_t*)HMI_CheckInfo.MAC_ID, 0, sizeof(HMI_CheckInfo));
  463. //PBU校验信息初始化为0
  464. memset((uint8_t*)PBU_CheckInfo.MAC_ID, 0, sizeof(PBU_CheckInfo));
  465. //BMS设计信息初始化为默认值
  466. memcpy((uint8_t*)&BMS_DesignInfo.Capacity, (uint8_t*)&BMS_DesignInfo_Default.Capacity, sizeof(BMS_DesignInfo_Struct_t));
  467. //PBU配置参数初始化为默认值
  468. memcpy((uint8_t*)&PBU_ConfigParam.GearsNum, (uint8_t*)&PBU_ConfigParam_Default.GearsNum, sizeof(PBU_ConfigParam_Struct_t));
  469. //MC版本信息初始化,Mode和SN从EEPROM读取
  470. strncpy(MC_VerInfo.HW_Version, (char*)"QD007H. ", 16);
  471. strncpy(MC_VerInfo.FW_Version, (char*)"V2r1r6_20211229.", 16);
  472. strncpy(Firmware_Special, (char*)"TC033001-MS2003-V0r1. ", 32);
  473. //电机型号
  474. strncpy(MC_VerInfo.Mode, (char*)"VS7500. ", 16);
  475. //电机序列号
  476. strncpy(MC_VerInfo.SN_Num, (char*)"0000000000000000", 16);
  477. //生产信息
  478. strncpy(MC_MacInfo.Manufacturer, (char*)"TTIUM. ", 8); //生产信息
  479. strncpy(MC_MacInfo.MacAddr, (char*)"WUHAN. ", 8);
  480. strncpy(MC_MacInfo.MacDate, (char*)"20210101", 8);
  481. //MCU ID读取
  482. memcpy((uint8_t*)MC_CheckInfo.MAC_ID, (uint8_t*)(0x1FFFF7E8), 12);
  483. //MC存储数据初始化为默认值
  484. Var_SetToDefaultParam();
  485. Var_SetToDefaultLog();
  486. }
  487. //根据电机型号系列号调用不同的助力参数
  488. void UpdateGearParam(uint8_t SerialNum)
  489. {
  490. switch(SerialNum)
  491. {
  492. case 1://Volans
  493. {
  494. //助力参数初始化
  495. memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO_Volans.Gain_K, sizeof(nGearParam_Struct_t));
  496. memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM_Volans.Gain_K, sizeof(nGearParam_Struct_t));
  497. memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT_Volans.Gain_K, sizeof(nGearParam_Struct_t));
  498. memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO_Volans.Gain_K, sizeof(nGearParam_Struct_t));
  499. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART_Volans.Gain_K, sizeof(nGearParam_Struct_t));
  500. break;
  501. }
  502. case 2://Volans Plus
  503. {
  504. //助力参数初始化
  505. memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  506. memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  507. memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  508. memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  509. memcpy((uint8_t*)&MC_AssisParam.Gear_5.Gain_K, (uint8_t*)&GearParam_Default_5_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  510. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  511. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART_T.Gain_K, (uint8_t*)&GearParam_Default_SMART_T_Volans_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  512. break;
  513. }
  514. case 3://Pegasi
  515. {
  516. //助力参数初始化
  517. memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO_Pegasi.Gain_K, sizeof(nGearParam_Struct_t));
  518. memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM_Pegasi.Gain_K, sizeof(nGearParam_Struct_t));
  519. memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT_Pegasi.Gain_K, sizeof(nGearParam_Struct_t));
  520. memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO_Pegasi.Gain_K, sizeof(nGearParam_Struct_t));
  521. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART_Pegasi.Gain_K, sizeof(nGearParam_Struct_t));
  522. break;
  523. }
  524. case 4://Pegasi Plus
  525. {
  526. //助力参数初始化
  527. memcpy((uint8_t*)&MC_AssisParam.Gear_ECO.Gain_K, (uint8_t*)&GearParam_Default_ECO_Pegasi_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  528. memcpy((uint8_t*)&MC_AssisParam.Gear_NORM.Gain_K, (uint8_t*)&GearParam_Default_NORM_Pegasi_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  529. memcpy((uint8_t*)&MC_AssisParam.Gear_SPORT.Gain_K, (uint8_t*)&GearParam_Default_SPORT_Pegasi_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  530. memcpy((uint8_t*)&MC_AssisParam.Gear_TURBO.Gain_K, (uint8_t*)&GearParam_Default_TURBO_Pegasi_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  531. memcpy((uint8_t*)&MC_AssisParam.Gear_SMART.Gain_K, (uint8_t*)&GearParam_Default_SMART_Pegasi_Plus.Gain_K, sizeof(nGearParam_Struct_t));
  532. break;
  533. }
  534. default:
  535. {
  536. //默认处理
  537. break;
  538. }
  539. }
  540. }