int StatsTable::GetCounterValue(const std::string& name, int pid) { if(!impl_) { return 0; } int row = FindCounter(name); if(!row) { return 0; } return GetRowValue(row, pid); }
//============================================================================== void KeyBoard_Scan(void) { uint8_t i; uint32_t tmp; // if(Sys_Start_Flag == 0)return; if(KeyBoardType.flagfull == 1)return; if(SysTickCnt - KeyBoardType.scanticks < KEYSCANDLY)return; KeyBoardType.scanticks = SysTickCnt; switch(KeyBoardType.status) { case 0: SetRowInput(); KeyBoardType.status++; break; case 1: tmp = GetRowValue(); if(tmp != 0) { KeyBoardType.code = tmp; KeyBoardType.status++; } else { KeyBoardType.code = 0; } KeyBoardType.keycnt = 0; break; case 2: tmp = GetRowValue(); if(tmp == KeyBoardType.code) { if(++KeyBoardType.keycnt > KEYSCANCNT) { KeyBoardType.status++; } } else { KeyBoardType.keycnt = 0; KeyBoardType.code = 0; KeyBoardType.status = 1; } break; case 3: SetLineInput(); KeyBoardType.status++; break; case 4: tmp = GetLineValue(); if(tmp != 0) { KeyBoardType.code += tmp; KeyBoardType.status++; } else { KeyBoardType.code = 0; KeyBoardType.status = 0; } KeyBoardType.keycnt = 0; break; case 5: tmp = GetLineValue(); if(tmp == (KeyBoardType.code&0xf0)) { if(++KeyBoardType.keycnt > KEYSCANCNT) { KeyBoardType.status++; } } else { KeyBoardType.keycnt = 0; KeyBoardType.code = 0; KeyBoardType.status = 0; } break; case 6: for(i = 0;i < sizeof(g_KeyCode);i++) { if(KeyBoardType.code == g_KeyCode[i]) { break; } } if(i >= sizeof(g_KeyCode)) { KeyBoardType.keycnt = 0; KeyBoardType.code = 0; KeyBoardType.status = 0; break; } KeyBoardType.value[KeyBoardType.product] = i; i = (KeyBoardType.product+1)%KEYMAXNUM; if(i == KeyBoardType.consume) { KeyBoardType.flagfull = 1; } else { KeyBoardType.product = i; } KeyBoardType.status++; FlipOutput(LED2); // BUZZER_ON; // SysBlockTick.buzzercnt = BUZZERDLY; break; case 7: if(KeyBoardType.dly++ > KEYRPTDLY/KEYSCANDLY) { KeyBoardType.dly = 0; KeyBoardType.status = 0; KeyBoardType.keycnt = 0; KeyBoardType.code = 0; } break; default:break; } }
int StatsTable::GetRowValue(int index) const { return GetRowValue(index, 0); }