forked from gary/BCU
2
0
Fork 0
BCU/library/bsp/bsp_number.c

72 lines
2.3 KiB
C

#include "bsp_number.h"
typedef struct
{
uint16_t type : NUMBER_TYPE_LEN;
uint16_t appl : NUMBER_APPL_LEN;
uint16_t ver : NUMBER_VER_LEN;
uint16_t detal : NUMBER_DETAIL_LEN;
}ProductNumber;
typedef struct
{
uint16_t len;
const uint16_t *dev_list;
}ProNumArray;
const uint16_t bsu_dev_list[] =
{
NUMBER_ASSEMBLE(NUMBER_TYPE_BSU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BSU_1), //0x0100
NUMBER_ASSEMBLE(NUMBER_TYPE_BSU, NUMBER_APPL_E, NUMBER_VER_C, NUMBER_BSU_1), //0x0200
NUMBER_ASSEMBLE(NUMBER_TYPE_BSU, NUMBER_APPL_E, NUMBER_VER_C, NUMBER_BSU_2), //0x8200
};
const uint16_t bcu_dev_list[] =
{
NUMBER_ASSEMBLE(NUMBER_TYPE_BCU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BCU_1B), //0x0101
NUMBER_ASSEMBLE(NUMBER_TYPE_BCU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BCU_2B), //0x2101
NUMBER_ASSEMBLE(NUMBER_TYPE_BCU, NUMBER_APPL_E, NUMBER_VER_C, NUMBER_BCU_1B), //0x0201
};
const uint16_t bmu_dev_list[] =
{
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BMU_16), //0x0102
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BMU_32), //0x2102
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BMU_48), //0x4102
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BMU_64), //0x6102
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_B, NUMBER_BMU_22), //0x8102
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_C, NUMBER_BMU_16), //0x0202
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_F, NUMBER_BMU_16), //0x0502
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_F, NUMBER_BMU_32), //0x2502
NUMBER_ASSEMBLE(NUMBER_TYPE_BMU, NUMBER_APPL_E, NUMBER_VER_F, NUMBER_BMU_22), //0x8502
};
const ProNumArray pro_num_array[kDevType_End] =
{
{sizeof(bsu_dev_list) / 2, bsu_dev_list},
{sizeof(bcu_dev_list) / 2, bcu_dev_list},
{sizeof(bmu_dev_list) / 2, bmu_dev_list},
};
uint16_t bsp_num_get_product_num(DevType type, uint16_t num)
{
uint32_t i;
if(type < kDevType_End)
{
for(i = 0; i < pro_num_array[type].len; i++)
{
if(num == pro_num_array[type].dev_list[i])
{
return num;
}
}
return pro_num_array[type].dev_list[0];
}
return 0;
}