2017-04-27 23 views
0

私はTCPを介したTCP-IP通信です。 私は照会する特定のパケットを持っており、それに基づいて応答を受け取ります。 私のパケットは基本的に私はこのような文字列に変換する文字配列されています。しかし、私は、列挙型の値として個別にこれらの配列を格納したい列挙型を文字配列にマップする方法は?

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を呼び出すだけで、それぞれの配列にマップされます。私は列挙型のLOADを呼び出すとき

enum packets{ 
    LOAD, 
    READ, 
    RESET, 
    UNLOAD  
} 

だから、多分それは、パケットを指すようになります:

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

その後、私は単なる文字列に列挙型を変換して、私のクエリと応答を進めることができます。

答えて

0

配列はあなたが行うことができ、サイズが8つのバイトしている場合:彼らがいないなら、あなたは配列に列挙値からマッピングさstd::map<packets, array[]>を使用して、より素朴な実装で行くことができる

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

+0

私の配列は12バイトです。 @ytoledanoのマッピングを参照できるリンクの提案 –

関連する問題