诊断数据与应用层数据不一致时的映射方法(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),所有在映射内部接口中使用的变量均需要以映射数组为偏移的条件来使用,否则会出现错乱;