목표
함수 정리 및 개인적인 시간이 있을 때 설명 읽어두기.
각 함수 설명
sysGetVariableString
- 시스템 변수(System Variable) 중 문자열(String, char[]) 타입의 값을 가져오는 함수입니다.
- CANoe의 시스템 변수는 메시지, 신호, 내부 상태 관리 등에 사용되며, 이 함수는 문자열 값을 직접 읽어올 때 유용합니다.
함수의 반환값
반환값설명
0 | 정상적으로 실행됨 (성공) |
1 | 네임스페이스를 찾을 수 없음 또는 동일한 네임스페이스를 중복 정의 |
2 | 변수를 찾을 수 없음 또는 동일한 변수를 중복 정의 |
3 | 네임스페이스에 대한 쓰기 권한 없음 |
4 | 변수의 타입이 char[]이 아님 (문자열이 아님) |
form 1: 네임스페이스와 변수 이름을 문자열로 전달
long sysGetVariableString(char namespace[], char variable[], char buffer[], long bufferSize);
- namespace → 시스템 변수가 속한 네임스페이스 이름
- variable → 변수 이름
- buffer → 가져온 문자열을 저장할 버퍼
- bufferSize → 버퍼의 크기
예제
char buf[100];
sysGetVariableString("VehicleData", "SpeedText", buf, elcount(buf));
write("SpeedText: %s", buf);
➡️ “VehicleData” 네임스페이스의 “SpeedText” 시스템 변수를 읽어 “buf”에 저장한 후 출력.
form 2: 시스템 변수의 전체 경로를 직접 지정
long sysGetVariableString(SysVarName, char buffer[], long bufferSize);
- SysVarName → 시스템 변수의 전체 이름 (네임스페이스 포함)
- buffer → 값을 저장할 버퍼
- bufferSize → 버퍼 크기
예제
char buf[100];
sysGetVariableString(sysvar::VehicleData::SpeedText, buf, elcount(buf));
write("SpeedText: %s", buf);
➡️ “VehicleData::SpeedText” 시스템 변수 값을 가져와 “buf”에 저장.
시스템 변수 포인터(sysvarString *)를 활용하여 동적으로 문자열 변수를 처리할 수도 있습니다.
예제
on key 'd'
{
sysvarString * svString1;
char buf[100];
// getSysVarString 함수에서 시스템 변수 포인터 가져오기
svString1 = getSysVarString(0);
sysGetVariableString(svString1, buf, elcount(buf));
write("Variable: %s, Value: %s", svString1.name, buf);
// 값 변경
sysSetVariableString(svString1, "OFF");
sysGetVariableString(svString1, buf, elcount(buf));
write("Variable: %s, Value is now: %s", svString1.name, buf);
svString1 = getSysVarString(1);
sysGetVariableString(svString1, buf, elcount(buf));
write("Variable: %s, Value: %s", svString1.name, buf);
}
// 시스템 변수 선택 함수
sysvarString * getSysVarString(int cKey)
{
switch (cKey)
{
case 0:
return sysvar::FMW1::KeyString;
case 1:
return sysvar::DCM::SpeedSignalString;
default:
return sysvar::Engine::EngineStateString;
}
}
'Programming > CANoe' 카테고리의 다른 글
CANoe 함수: elcount (0) | 2025.03.02 |
---|---|
CANoe 함수: on sysvar (0) | 2025.03.02 |
CANoe UI Panel 만들기: 시작, 종료 버튼 (0) | 2025.02.28 |
CANoe CAN/CANFD 진단통신 전송 5: 시작 시에 Write에 프로그램 시작 출력 (0) | 2025.02.28 |
CANoe 함수: Console 로그 관련 함수 (0) | 2025.02.28 |