12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- #ifndef __ENVIOLO_CAN_H_
- #define __ENVIOLO_CAN_H_
- #include <stdint.h>
- #include "can.h"
- #include "var.h"
- #define ID_ENVIOLO_CONFIG 0x300
- #define ID_ENVIOLO_CONTROL 0x301
- #define COMMUNICATION_TIMEOUT 50 //200MS*50=10000=10S
- //0X300默认的参数 参考enviolo出厂默认值
- #define DU_FRONT_CHAINRING 43
- #define DU_REARSPROCKET 20
- #define DU_CADENCE_LOWLIMIT 30
- #define DU_CADENCE_HIGHLIMIT 90
- #define DU_SLEEPTIME 5
- typedef enum
- {
- DIS_PEDAL=0X01,
- DIS_PEDALLING,
- DIS_SUCCESS
- }DisUI_Struct_t;
- typedef enum
- {
- WORKMODE_OFF=0X00,
- WORKMODE_MANUAL=0X03,//手动模式
- WORKMODE_AUTO=0X04,//自动调节模式
- WORKMODE_CALIB=0X05,//校准模式
- }WorkMode_Struct_t;
- typedef enum
- {
- NOTNEED_CALIB=0,
- NEED_CALIB=1,
- }ENUM_CALIBRATION;
- typedef enum
- {
- SEND_CONFIG=0,
- SEND_DATA,
- SEND_POWEROFF,
- }ENVIOLO_STATUS;
- typedef struct
- {
- uint8_t u8Get_Gear_Pedal_RPM; //反馈的踏频值
- uint8_t u8Get_Gear_CVP_Actuel_Ratio; //反馈实际的输出比
- uint16_t u16Get_Gear_Vehicle_Speed; //当前速度
- float flGet_Gear_Battery_Voltage; //电压
- uint16_t u16Get_Gear_Wheel_RPM; //转速
- uint16_t u16CalibrationVal; //需要校准bit
- uint16_t u16Timeout_Communication; //3S的计时,开机3S没有enviolo的通信则报错
- uint8_t u8SendConfigDataToEnviolo; //默认开机送一次配置信息或者参数修改后发送一次配置信息
- }Enviolo_Struct_t;
- typedef struct
- {
- uint8_t u8DesiredGearBoxMode; //工作模式
- uint16_t u16DesiredCanence; //期望的目标踏频值
- uint16_t u16DesiredGearRatio; //期望的比例控制值
- }Enviolo_SetVal_Struct_t;
- typedef struct
- {
- uint8_t u8CalibrationCmdToOBC; //变速器校准指令:0X00-->校准完成或无需校准 0X01-->需要校准 0X02-->OBC提示用户将车轮转动
- uint8_t u8CalibrationCmdToEnviolo; //发送完了校准信息马上切换为0X01模式
- }Calibration_Struct_t;
- extern Enviolo_Struct_t CanEnvioloData;
- extern Enviolo_SetVal_Struct_t EnvioloSetData;
- extern Calibration_Struct_t Enviolo_Calibration;
- void GetWorkSetVal(uint8_t* Data, Enviolo_SetVal_Struct_t *RetVal, Calibration_Struct_t *Calib);
- void sendDataToEnviolo(Enviolo_SetVal_Struct_t *st_SendData, Calibration_Struct_t *st_Calib);
- void Slot_EnvioloData(uint8_t *u8Data, Calibration_Struct_t *Calib);
- void sendDataToOBC(uint8_t u8Step);
- void sendDataToEnvioloPwroff(void);
- void MC_Fault_Enviolo_SpeedSensor_Process(MC_ErrorCode_Struct_t* p_MC_ErrorCode);
- #endif
|