診斷數據與應用層數據不一致時的映射方法(Remapping)
1,簡介:該名稱及以下實現僅是一個例子,主要目的是學習該映射方法;
2,重映射(remapping)的機制:
將一個enum排序的聲明以一定的順序排列後,將其通過一個相應長度的數組映射成一一對應的關係;
enum如下:
typedef enum
{
SW_NO0 = 0,
SW_NO1 = 1,
SW_NO2 = 2
}Sw_e_No;
數組如下:
const uint8 array_one[3] = {SW_NO1,SW_NO0,SW_NO2};
或 const uint8 array_two[3] = {SW_NO2,SW_NO1,SW_NO0};
或 const uint8 array_three[3] = {SW_NO0,SW_NO2,SW_NO1};
通過上述三組const數組分別映射了不同的三種enum結果,在程序中通過調用不同的數組且根據數組的標號順序來實現調用不同的enum值;
3,使用原理及說明:
在使用中,如接收到映射前的數據:
(a),所有獲取過來的數據無須重映射;
(b),所有在映射內部接口中使用的變量均需要以映射數組爲偏移的條件來使用,否則會出現錯亂;