2017-04-27 5 views
0

TCP를 통한 TCP-IP 통신입니다. 쿼리 할 특정 패킷이 있고 그에 대한 응답을받습니다.enum 유형을 문자 배열에 매핑하는 방법은 무엇입니까?

unsigned char array1 []={0,132,0,0,0,6,84,5,0,1,255,0}; 
std::string load_seqInit (array1, array1 + sizeof array1/sizeof array1[0]); 

그러나, 내가 열거 값으로 별도로 배열을 저장할 : 내 패킷은이 같은 문자열로 변환 문자 배열은 기본적으로. 그래서 나는 단지 enumtype을 호출 할 수 있으며 그것은 각각의 배열에 매핑 될 것이다.

enum packets{ 
    LOAD, 
    READ, 
    RESET, 
    UNLOAD  
} 

그래서 어쩌면 내가 열거 형의 LOAD를 호출 할 때 그 패킷을 가리 킵니다 :

unsigned char array1 []={0,132,0,0,0,6,84,5,0,1,255,0}; 

그때 난 그냥 문자열로 열거를 변환하고 내 질의 및 응답 진행할 수 있습니다.

답변

0

배열의 크기는 8 바이트 당신이 할 수있는 인 경우 :

class enum packets : unsigned long { 
    LOAD = 0x1234567812345678, // the hex representation of the array 
    ... 
} 

그렇지 않은 경우, 당신은 배열에 열거 값에서 매핑하는 std::map<packets, array[]>를 사용하여 더 순진 구현을 갈 수있다.

+0

내 배열은 12 바이트입니다. @ytoledano 매핑을 찾을 수있는 링크 제안 –

관련 문제