int parseBarcodeContext(barcodeContext context, barcodeOutput* output){ unsigned int iter = 0, newLine = 0, startStop = 0, bufferSize = 0, characterCounter = 0; char buffer[MAX_BARCODE_OUTPUT] = {0}; if (output == NULL){ return FAILURE; } bzero(output, sizeof(barcodeOutput)); for (iter = 0 ; iter < context.noInputLines && startStop < 2; iter++){ if (newLine == 1){ char ch = 0x00; if (output->size < MAX_BARCODE_OUTPUT && mapInputToCharacter(buffer, &ch, bufferSize) == SUCCESS){ output->line[output->size] = ch; output->size += 1; } newLine = 0; bufferSize = 0; bzero(buffer, sizeof(buffer)); } if (isNewBlockSeparator(context.inputLines[iter]) == SUCCESS){ newLine = 1; } else if (isBufferStartEndTag(context.inputLines[iter]) == SUCCESS){ startStop++; } else if (isCharacterTag(context.inputLines[iter]) == SUCCESS){ if (isSkipTag(context.inputLines[iter]) == FAILURE){ memcpy(buffer + bufferSize, context.inputLines[iter].line, INPUT_LINE_LENGTH); bufferSize += INPUT_LINE_LENGTH; } } } if (startStop == 2){ return SUCCESS; } return FAILURE; }
int parseBarcodeContext(barcodeContext context, barcodeOutput* output){ unsigned int iter = 0, newLine = 0, startStop = 0, bufferSize = 0, characterCounter = 0; char buffer[MAX_BARCODE_OUTPUT] = {0}; if (output == NULL){ return FAILURE; } bzero(output, sizeof(barcodeOutput)); for (iter = 0 ; iter < context.noInputLines && startStop < 2; iter++){ if (newLine == 1){ char ch = 0x00; if (output->size < MAX_BARCODE_OUTPUT && mapInputToCharacter(buffer, &ch, bufferSize) == SUCCESS){ output->line[output->size] = ch; output->size += 1; // DEBUG //printf("CHARACTER=%c\n",ch); } newLine = 0; bufferSize = 0; bzero(buffer, sizeof(buffer)); } if (isNewBlockSeparator(context.inputLines[iter]) == SUCCESS){ newLine = 1; //printf("BLOCK \n"); } else if (isBufferStartEndTag(context.inputLines[iter]) == SUCCESS){ startStop++; //printf("START STOP TAG\n"); //printf("startstop: %d \n", startStop); } else if (isCharacterTag(context.inputLines[iter]) == SUCCESS){ //printf("CHARACTER \n"); if (isSkipTag(context.inputLines[iter]) == FAILURE){ memcpy(buffer + bufferSize, context.inputLines[iter].line, INPUT_LINE_LENGTH); bufferSize += INPUT_LINE_LENGTH; //printf("SKIP TAG\n"); //printf("buffersize: %d\n", bufferSize); } } /* int iterBytes = 0; for (iterBytes = 0 ; iterBytes < INPUT_LINE_LENGTH ; iterBytes++){ printf("0x%x", context.inputLines[iter].line[iterBytes]); } printf("\n"); */ } if (startStop == 2){ return SUCCESS; } return FAILURE; }