애드센스와이드


패널과 시스템변수와 CAPL을 엮어서 문자열, 바이트 받아서 진단 메세지로 전송하기 Vector(CANoe)

이번엔 2가지 경우를 다룬다.

1) Basic Diagnostics의 Parameter가 Ascii인 경우

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
diagResponse this resp;
byte buffer[4];
long copiedBytes = 4;
int result;
int i;
char acuVariantCode[5];
 
result = sysGetVariableData("Common""svAcuVariantCode", buffer, copiedBytes);
write("sysGetVariableData Result = %d",result);
write("sysGetVariableData buffer: %02X%02X%02X%02X",buffer[0],buffer[1],buffer[2],buffer[3]);
memcpy(acuVariantCode, buffer, 4);
write("acuVariantCode1: %S", acuVariantCode);
 
if (result == 0)
diagSetParameter(resp, "variant", acuVariantCode);
else
diagSetParameter(resp, "variant"" "); // Nothing
 
diagSendResponse(resp);
cs



2) Basic Diagnostics의 Parameter가 Array(byte)인 경우
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    diagResponse this resp;
    byte buffer[2];
    long copiedBytes = 2;
    int result;
    int i;
    word cluVariantCode;
    
    struct WrapWord
    {
        word w;
    } wordWrapper;
    
    result = sysGetVariableData("Common""svCluVariantCode", buffer, copiedBytes);
    write("CLU sysGetVariableData Result = %d",result);
    write("CLU sysGetVariableData buffer: %02X%02X%",buffer[0],buffer[1]);
    memcpy(wordWrapper, buffer);
    cluVariantCode = swapWord(wordWrapper.w);
    write("cluVariantCode: %0#x",cluVariantCode);
 
    if (result == 0)
        diagSetParameter(resp, "variant", cluVariantCode);        
    else
        diagSetParameter(resp, "variant"0x0000); // Nothing        
 
    diagSendResponse(resp);
cs



덧글

댓글 입력 영역


이 이글루를 링크한 사람 (블랙)

4