//show 4 patterns for a specified amount of time with dot void SegDisp::showSequence(int pattern1[7], int pattern2[7], int pattern3[7], int pattern4[7], int ms, int dot){ unsigned long start = millis(); int x=0; int p[4][7]; /* Error */ if (ms<0){ Error(14); } else if (dot <-1 || dot > 3){ Error(15); } /* copy patterns */ for (int j=0; j<7; j++){ p[0][j] = pattern1[j]; } for (int j=0; j<7; j++){ p[1][j] = pattern2[j]; } for (int j=0; j<7; j++){ p[2][j] = pattern3[j]; } for (int j=0; j<7; j++){ p[3][j] = pattern4[j]; } /* show patterns */ while (millis()<start+ms){ showPattern(x,p[x],mpex,(dot==x)); x = (x+1)%4; } }
int main(int argc, char* argv[]) { int cmd; char s; char temp; while(s != 'q') { scanf("%c", &s); scanf("%c", &temp); XLOGD("get cmd"); cmd = atoi(&s); if ( cmd >= 0 && cmd <= 6) { XLOGD("testHQA show pattern %d", cmd); showPattern(cmd); XLOGD("show pattern done"); } } leavePattern(); }
//make dot optional void SegDisp::showPattern(int digit, int pattern[7], int ms){ showPattern(digit,pattern,ms,false); }