#if 0 typedef struct { uint8_t pid; uint16_t bid; int32_t oldPosX; int32_t oldPosY; bool isVis; bool isPosInited; bool isUsed; } component_info_t; component_info_t component_info[100] = {0}; static component_info_t* findComponent(uint8_t pid, uint16_t bid) { for (size_t i = 0; i < 100; i++) { if (component_info[i].isUsed && component_info[i].pid == pid && component_info[i].bid == bid) { return &component_info[i]; } } return NULL; } static component_info_t* allocComponent(uint8_t pid, uint16_t bid) { for (size_t i = 0; i < 100; i++) { if (!component_info[i].isUsed) { component_info[i].isUsed = true; component_info[i].pid = pid; component_info[i].bid = bid; return &component_info[i]; } } return NULL; } static component_info_t* forceFindComponent(uint8_t pid, uint16_t bid) { component_info_t* info = findComponent(pid, bid); if (info == NULL) { info = allocComponent(pid, bid); } return info; } bool UIControler::visEx(uint16_t pid, uint16_t bid, bool val) { component_info_t* component = forceFindComponent(pid, bid); if (component == NULL) { ZLOGW(TAG, "visEx failed,component alloc failed"); return false; } bool suc = false; do { if (val) { // ÏÔʾ } else { // Òþ²Ø if (!component->isPosInited) { suc = readInt(pid, bid, &component->oldPosX); if (!suc) break; suc = readInt(pid, bid + 1, &component->oldPosY); } } } while (false); } #endif