2017-04-27 60 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]); 

但是,我想單獨地存儲這些陣列作爲枚舉值。這樣我就可以調用枚舉類型,它將映射到我各自的數組。

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 –