RBS
 
Loading...
Searching...
No Matches
HPC_Functions.cin File Reference

HPC의 모든 함수 정의 More...

Functions

void OnEnterFailSafe ()
 Fail-Safe 상태 진입 시 호출되는 함수
 
void OnEnterBatteryProtection ()
 배터리 보호 상태 진입 시 호출되는 함수
 
void OnEnterNormal ()
 정상 상태 진입 시 호출되는 함수
 
void TransitionToState (enum SystemState newState)
 시스템 상태를 새로운 상태로 전환하는 함수
 
void SetFault (dword faultBit)
 폴트 레지스터에 특정 폴트 비트를 설정하는 함수
 
void ClearFault (dword faultBit)
 폴트 레지스터에서 특정 폴트 비트를 해제하는 함수
 
void InitializeGlobals ()
 시작 시 모든 전역 변수를 기본 상태로 초기화
 
float CalculateOptimalTorque ()
 운전자 입력과 차량 상태를 기반으로 최적의 모터 토크를 계산하는 함수
 
void UpdateVehiclePhysics ()
 토크 값을 기반으로 차량의 RPM과 속도를 업데이트하는 물리 시뮬레이션 함수
 
void ExecuteTorqueControlTask ()
 주기적으로 모터 토크 제어 명령을 전송하는 태스크
 
void ExecuteAutoModeOptimizationTask ()
 자동 모드 최적화 태스크
 
void ExecuteClusterDisplayTask ()
 클러스터에 표시할 정보를 주기적으로 전송하는 태스크
 
void ExecuteEnergyEfficiencyTask ()
 에너지 효율 계산(누적 회생 에너지)을 주기적으로 수행하는 태스크
 
void HandleMainTaskTimer ()
 메인 태스크 타이머 이벤트 발생 시 주기적으로 호출되는 함수
 
void HandleStartEvent ()
 'on start' 이벤트 핸들러 로직을 처리
 
void HandleStopEvent ()
 'on stopMeasurement' 이벤트 핸들러 로직을 처리
 
void HandleWatchdogTimeout ()
 워치독 타임아웃 발생 시 호출되는 이벤트 핸들러
 
void SendModeChangeResponse (message M008_Mode_Change_Req request)
 회생제동 모드 변경 요청에 대한 응답 메시지를 전송하는 함수
 
void HandleModeChangeReqMessage (message M008_Mode_Change_Req msg)
 'on message M008_Mode_Change_Req' 이벤트 핸들러 로직을 처리
 
void HandleBatteryBasicMessage (message M006_Battery_Basic msg)
 'on message M006_Battery_Basic' 이벤트 핸들러 로직을 처리
 
void HandleRegenTorqueFeedbackMessage (message M002_Regen_Torque_Feedback msg)
 'on message M002_Regen_Torque_Feedback' 이벤트 핸들러 로직을 처리
 
void HandleFailSafeStatusMessage (dword faultCode)
 Fail-Safe 상태 메시지 수신 이벤트 핸들러 로직을 처리
 
void HandleVehicleDynamicsMessage (message M005_Vehicle_Dynamics msg)
 'on message M005_Vehicle_Dynamics' 이벤트 핸들러 로직을 처리
 
void HandleBrakePedalMessage (message M005_EXT_Brake_Pedal msg)
 'on message M005_EXT_Brake_Pedal' 이벤트 핸들러 로직을 처리
 

Detailed Description

HPC의 모든 함수 정의

Function Documentation

◆ CalculateOptimalTorque()

float CalculateOptimalTorque ( )

운전자 입력과 차량 상태를 기반으로 최적의 모터 토크를 계산하는 함수

Returns
계산된 최종 모터 토크 (구동: 양수, 제동: 음수)
Note
다음 우선순위로 토크를 계산:
  1. 브레이크 오버라이드 시스템(BOS) - 브레이크 페달 우선
  2. 가속 의도 처리 - 가속 페달 입력
  3. 페달 Off 회생 제동 - 원페달 드라이빙
  4. 시스템 제약 조건 적용 - 배터리 보호, 속도별 보정
Here is the caller graph for this function:

◆ ClearFault()

void ClearFault ( dword faultBit)

폴트 레지스터에서 특정 폴트 비트를 해제하는 함수

Parameters
faultBit해제할 폴트 비트
Here is the caller graph for this function:

◆ ExecuteAutoModeOptimizationTask()

void ExecuteAutoModeOptimizationTask ( )

자동 모드 최적화 태스크

Note
주기적으로 자동 회생 제동 강도를 교통 상황과 도로 조건에 맞게 조절
  • 교통 정체 시: 강한 회생 제동으로 가다서다 상황 대응
  • 고속 주행 시: 부드러운 Coasting을 위해 회생 제동 감소
  • 일반 상황: 기본값(100Nm)으로 복귀
Here is the caller graph for this function:

◆ ExecuteClusterDisplayTask()

void ExecuteClusterDisplayTask ( )

클러스터에 표시할 정보를 주기적으로 전송하는 태스크

Note
회생 제동 모드, 배터리 SOC, 누적 회생 에너지, 경고 상태, 차량/모터 속도 정보 전송
Here is the caller graph for this function:

◆ ExecuteEnergyEfficiencyTask()

void ExecuteEnergyEfficiencyTask ( )

에너지 효율 계산(누적 회생 에너지)을 주기적으로 수행하는 태스크

Note
회생 제동 시에만 순간 전력과 누적 에너지를 계산 전력(W) = 토크(Nm) × 각속도(rad/s)
Here is the caller graph for this function:

◆ ExecuteTorqueControlTask()

void ExecuteTorqueControlTask ( )

주기적으로 모터 토크 제어 명령을 전송하는 태스크

Note
FAIL_SAFE 상태에서는 실행하지 않으며, CRC를 포함한 E2E 보호 적용
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleBatteryBasicMessage()

void HandleBatteryBasicMessage ( message M006_Battery_Basic msg)

'on message M006_Battery_Basic' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지
Note
배터리 SOC 및 온도 정보를 수신하여 배터리 보호 상태를 결정
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleBrakePedalMessage()

void HandleBrakePedalMessage ( message M005_EXT_Brake_Pedal msg)

'on message M005_EXT_Brake_Pedal' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지
Note
브레이크 페달 위치 정보를 수신하여 제동 의도를 파악
Here is the caller graph for this function:

◆ HandleFailSafeStatusMessage()

void HandleFailSafeStatusMessage ( dword faultCode)

Fail-Safe 상태 메시지 수신 이벤트 핸들러 로직을 처리

Parameters
faultCode수신된 폴트 코드
Note
다른 ECU로부터 Critical Fault 수신 시 FAIL_SAFE 상태로 전환
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleMainTaskTimer()

void HandleMainTaskTimer ( )

메인 태스크 타이머 이벤트 발생 시 주기적으로 호출되는 함수

Note
다양한 주기로 태스크를 스케줄링:
  • 주기(10ms): 토크 제어, 물리 시뮬레이션
  • 100ms 주기: 클러스터 디스플레이
  • 200ms 주기: 에너지 효율 계산
  • 500ms 주기: 자동 모드 최적화
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleModeChangeReqMessage()

void HandleModeChangeReqMessage ( message M008_Mode_Change_Req msg)

'on message M008_Mode_Change_Req' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지
Note
회생 제동 모드 변경 요청을 처리하고 응답 메시지 전송
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleRegenTorqueFeedbackMessage()

void HandleRegenTorqueFeedbackMessage ( message M002_Regen_Torque_Feedback msg)

'on message M002_Regen_Torque_Feedback' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지
Note
목표 회생 제동량 대비 실제 회생 제동량이 부족할 경우, 마찰 제동으로 보상 요청
Here is the caller graph for this function:

◆ HandleStartEvent()

void HandleStartEvent ( )

'on start' 이벤트 핸들러 로직을 처리

Note
전역 변수 초기화, 메인 태스크 및 워치독 타이머 시작, NORMAL 상태로 전이
Here is the call graph for this function:
Here is the caller graph for this function:

◆ HandleStopEvent()

void HandleStopEvent ( )

'on stopMeasurement' 이벤트 핸들러 로직을 처리

Here is the caller graph for this function:

◆ HandleVehicleDynamicsMessage()

void HandleVehicleDynamicsMessage ( message M005_Vehicle_Dynamics msg)

'on message M005_Vehicle_Dynamics' 이벤트 핸들러 로직을 처리

Parameters
msg수신된 메시지
Note
가속 페달 위치, 차량 속도, 조향각 등의 정보를 갱신하고, 감속도를 계산하여 제동등을 제어
Here is the caller graph for this function:

◆ HandleWatchdogTimeout()

void HandleWatchdogTimeout ( )

워치독 타임아웃 발생 시 호출되는 이벤트 핸들러

Note
워치독 폴트를 설정하고 FAIL_SAFE 상태로 전환
Here is the call graph for this function:
Here is the caller graph for this function:

◆ InitializeGlobals()

void InitializeGlobals ( )

시작 시 모든 전역 변수를 기본 상태로 초기화

Note
시스템 시작 시 모든 데이터 구조체와 변수를 안전한 초기값으로 설정
Here is the caller graph for this function:

◆ OnEnterBatteryProtection()

void OnEnterBatteryProtection ( )

배터리 보호 상태 진입 시 호출되는 함수

Note
회생 제동 토크가 제한됨을 알리고 관련 폴트를 설정
Here is the call graph for this function:
Here is the caller graph for this function:

◆ OnEnterFailSafe()

void OnEnterFailSafe ( )

Fail-Safe 상태 진입 시 호출되는 함수

Note
모든 토크 명령을 비활성화하고, 안전 상태임을 알림
Here is the caller graph for this function:

◆ OnEnterNormal()

void OnEnterNormal ( )

정상 상태 진입 시 호출되는 함수

Note
정상 작동 상태로 복귀했음을 알림
Here is the call graph for this function:
Here is the caller graph for this function:

◆ SendModeChangeResponse()

void SendModeChangeResponse ( message M008_Mode_Change_Req request)

회생제동 모드 변경 요청에 대한 응답 메시지를 전송하는 함수

Parameters
request수신된 모드 변경 요청 메시지
Note
정상 또는 배터리 보호 상태에서만 모드 변경 허용
Here is the caller graph for this function:

◆ SetFault()

void SetFault ( dword faultBit)

폴트 레지스터에 특정 폴트 비트를 설정하는 함수

Parameters
faultBit설정할 폴트 비트
Note
이미 설정된 폴트는 중복 설정하지 않음
Here is the caller graph for this function:

◆ TransitionToState()

void TransitionToState ( enum SystemState newState)

시스템 상태를 새로운 상태로 전환하는 함수

Parameters
newState새로운 시스템 상태
Note
상태 변경 시 해당 상태의 진입 함수를 호출하고 시스템 변수를 업데이트
Here is the call graph for this function:
Here is the caller graph for this function:

◆ UpdateVehiclePhysics()

void UpdateVehiclePhysics ( )

토크 값을 기반으로 차량의 RPM과 속도를 업데이트하는 물리 시뮬레이션 함수

Note
뉴턴의 회전 운동 법칙을 사용하여 각가속도를 계산하고, 기어비와 바퀴 반경을 고려하여 차량 속도를 결정
Here is the caller graph for this function: