From: Skullheadx Date: Thu, 21 Nov 2024 00:40:41 +0000 (-0500) Subject: halfway implementation of the total number bits in bitstream X-Git-Url: http://git.skullheadx.com/nixos/static/gitweb.js?a=commitdiff_plain;h=027027cedc558387a354b9c9568f432db193c652;p=qrcodescanner.git halfway implementation of the total number bits in bitstream --- diff --git a/camera.cpp b/camera.cpp index b21c383..8706735 100644 --- a/camera.cpp +++ b/camera.cpp @@ -5,7 +5,7 @@ void print(std::vector &vec); void print(std::vector> &symbol); -void print_bytes(std::vector &vec); +void print_codewords(std::vector &vec); void vec_xor(std::vector &v1, const std::vector v2); unsigned int distance(std::vector &v1, const std::vector &v2); void read_words_from_file(char const *filename, std::vector> &symbol); @@ -30,18 +30,20 @@ int main(){ mask_pattern[1] = format_info[3]; mask_pattern[2] = format_info[4]; decode_mask(symbol, mask_pattern.to_ulong()); - print(symbol); std::vector codewords = get_codewords_from_symbol(symbol); - //print(codewords); - print_bytes(codewords); + //print_codewords(codewords); //std::cout << "Number of codewords: " << codewords.size() / 8.0 << std::endl; std::vector data_codewords(codewords.begin(), codewords.begin() + 16 * 8), error_correction_codewords(codewords.begin() + 16 * 8, codewords.end()); - std::cout << "Number of data codewords: " << data_codewords.size() / 8.0 << std::endl; - std::cout << "Number of error correction codewords: " << error_correction_codewords.size() / 8.0 << std::endl; - print_bytes(data_codewords); + //std::cout << "Number of data codewords: " << data_codewords.size() / 8.0 << std::endl; + //std::cout << "Number of error correction codewords: " << error_correction_codewords.size() / 8.0 << std::endl; + //print_codewords(data_codewords); + std::vector mode_indicator(data_codewords.begin(), data_codewords.begin() + 4); + std::vector character_count(data_codewords.begin() + 4, data_codewords.begin() + 14); + print(character_count); + @@ -68,7 +70,7 @@ void print(std::vector &vec){ std::cout << std::endl; } -void print_bytes(std::vector &vec){ +void print_codewords(std::vector &vec){ for (std::size_t i{0}; i < vec.size(); ++i){ if (i != 0 && i % 8 == 0){std::cout << ' ';} std::cout << vec[i]; diff --git a/qrgenerator.cpp b/qrgenerator.cpp index a127024..8db949b 100644 --- a/qrgenerator.cpp +++ b/qrgenerator.cpp @@ -28,7 +28,7 @@ int main() { int k; //std::cout << id_generator(69) << std::endl; std::string input_data{"6969696969"}; - const unsigned int input_length = 10; + const unsigned int input_length = input_data.size(); std::vector input_data_vector{}; for (unsigned int i{0}; i < input_length; i+=3){ /* 8 - 6 = 2 @@ -62,7 +62,8 @@ int main() { std::cout << std::endl; */ // Convert character count indicator to binary (10 bits for version 1-H): - std::bitset<10> character_count_indicator {input_length}; + std::bitset<10> character_count_indicator = input_length; + //for (std::size_t i{0}; i < 10; ++i){std::cout << character_count_indicator[i];}std::cout<