//show a floating point number for a speficied amount of time void SegDisp::showFloat(float num, int dec, int ms, char align){ int d[4] = {sd_EMPTY, sd_EMPTY, sd_EMPTY, sd_EMPTY}; /* Errors */ if (dec > 3 || dec < 0){ Error(3); } else if (num > 9999){ Error(4); } else if (num < -999){ Error(5); } else if (align!='L' && align!='R'){ Error(6); } else if (ms < 0){ Error(7); } dec = splitFloat(num,d,dec); if (align!='L'){ dec = dec + moveRight(d); } showSequence(numbers[d[0]],numbers[d[1]],numbers[d[2]],numbers[d[3]],ms,dec); }
int main() { std::list<int> aList(5, 0); // 5 Nullen std::cout << "aList.size() = " << aList.size() << std::endl; showSequence(aList); std::list<int> aList2; // leer copyadd(aList.begin(), aList.end(), std::inserter(aList2, aList2.begin())); std::cout << "aList2.size() = " << aList2.size() << std::endl; showSequence(aList2); }
void HtmHelper::showAcceptWithoutPrediction( int layerPos , int h , int v , HtmSequence *cs , HtmSequence *csa , int action ) { Xml xml = logger.getLogSettings(); String s = xml.getProperty( "showAcceptActions" , "" ); char l_buf[ 10 ]; sprintf( l_buf , "%d" , action ); if( strstr( s , l_buf ) == NULL ) return; int layer = xml.getIntProperty( "showLayer" , -1 ); if( layer >= 0 && layer != layerPos ) return; String area = String( "l" ) + layerPos + "-h" + h + "-v" + v; logger.logDebug( area + ": action=" + action ); showSequence( "current" , cs ); showSequence( "stored" , csa ); }
//displays "Err" for a specified amount of time void SegDisp::Error(int code){ /* create the error patterns */ int e[7] = {1,1,0,1,1,1,0}; int r[7] = {0,0,0,1,1,0,0}; /* this holds individual digits when we split the error code */ int d[4] = {sd_EMPTY,sd_EMPTY,sd_EMPTY,sd_EMPTY}; /* Split the error code into its individual digits, storing the results in d */ splitInteger(code,d); /* enter infinite loop showing "Err" and the code */ while (true){ showSequence(e,r,r,numbers[sd_EMPTY],1500); showSequence(numbers[d[0]],numbers[d[1]],numbers[d[2]],numbers[d[3]],1500); } }
//show 2, 2-digit numbers void SegDisp::showTime(int a, int b, int ms, bool leading){ int d[4] = {10, 10, 10, 10}; /* show applicable error messages */ if (a > 99 || a < 0){ Error(16); } if (b > 99 || b < 0){ Error(17); } if (ms < 0){ Error(18); } /* turn on the colon */ colonOn(); /* get the individual digits */ if (a > 9){ d[0] = a / 10; d[1] = a - d[0]*10; } else if (leading){ d[0] = 0; d[1] = a; } else{ d[1] = a; } if (b>9){ d[2] = b / 10; d[3] = b - d[2]*10; } else{ d[2] = 0; d[3] = b; } /* show the sequence */ showSequence(numbers[d[0]],numbers[d[1]],numbers[d[2]],numbers[d[3]],ms,-1); /* turn off the colon */ colonOff(); }
void HtmHelper::showLayer( String title , HtmLayer *layer ) { Xml xml = logger.getLogSettings(); int layerPos = xml.getIntProperty( "showLayer" , -1 ); if( layerPos >= 0 && layer -> getLayerPos() != layerPos ) return; logger.logDebug( title + " - sequences are:" ); HtmLayerMemory *lm = layer -> getMemory(); int n = lm -> getSequenceCount(); for( int k = 0; k < n; k++ ) { HtmSequence *seq = lm -> getSequenceByPos( k ); showSequence( String( "s[" ) + k + "]" , seq ); } }
//show integer for a specified amount of time void SegDisp::showInteger(int num, int ms, char align){ int d[4] = {sd_EMPTY, sd_EMPTY, sd_EMPTY, sd_EMPTY}; if (num > 9999){ Error(8); } else if (num < -999){ Error(9); } else if (align!='L' && align!='R'){ Error(10); } else if(ms < 0){ Error(11); } splitInteger(num, d); //handle alignment if (align=='L'){ moveLeft(d); } showSequence(numbers[d[0]],numbers[d[1]],numbers[d[2]],numbers[d[3]],ms,-1); }
//make dot optional void SegDisp::showSequence(int pattern1[7], int pattern2[7], int pattern3[7], int pattern4[7], int ms){ showSequence(pattern1,pattern2,pattern3,pattern4,ms,-1); }