]> Skullheadx's Git Forge - qrcodescanner.git/commitdiff
halfway implementation of the total number bits in bitstream
authorSkullheadx <admonty1@gmail.com>
Thu, 21 Nov 2024 00:40:41 +0000 (19:40 -0500)
committerSkullheadx <admonty1@gmail.com>
Thu, 21 Nov 2024 00:40:41 +0000 (19:40 -0500)
camera.cpp
qrgenerator.cpp

index b21c383b6b53a7ac02703b167aaa928f394c9ede..87067351a771fbd086ba6f71e431c94515b6e24e 100644 (file)
@@ -5,7 +5,7 @@
 
 void print(std::vector<bool> &vec);
 void print(std::vector<std::vector<bool>> &symbol);
-void print_bytes(std::vector<bool> &vec);
+void print_codewords(std::vector<bool> &vec);
 void vec_xor(std::vector<bool> &v1, const std::vector<bool> v2);
 unsigned int distance(std::vector<bool> &v1, const std::vector<bool> &v2);
 void read_words_from_file(char const *filename, std::vector<std::vector<bool>> &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<bool> 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<bool> 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<bool> mode_indicator(data_codewords.begin(), data_codewords.begin() + 4);
+       std::vector<bool> character_count(data_codewords.begin() + 4, data_codewords.begin() + 14);
+       print(character_count);
+       
 
         
        
@@ -68,7 +70,7 @@ void print(std::vector<bool> &vec){
        std::cout << std::endl;
 }
 
-void print_bytes(std::vector<bool> &vec){
+void print_codewords(std::vector<bool> &vec){
        for (std::size_t i{0}; i < vec.size(); ++i){
                if (i != 0 && i % 8 == 0){std::cout << ' ';}
                std::cout << vec[i];
index a1270247b79ea532a167d01ddb2bad3e31b01322..8db949b92d130ac612fe9cadd3a2814e3dbc16ab 100644 (file)
@@ -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<bool> 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<<std::endl;
        for (std::size_t i{0}; i < character_count_indicator.size(); ++i){
                input_data_vector.insert(input_data_vector.begin(), character_count_indicator[i]);
        }