Navigation

    Fuze Arena Logo
    • Register
    • Login
    • Search
    • Categories
    • Recent
    • Popular
    • Users
    • Groups
    • Help
    • Discord

    File Export

    Beginners
    12
    108
    13942
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • pianofire
      pianofire Fuze Team @faz808 last edited by

      @faz808 Yes this looks spot on. We don't normally encourage external links but when it is to provide answers to questions and useful resources it is fine.

      1 Reply Last reply Reply Quote 2
      • pianofire
        pianofire Fuze Team last edited by

        @faz808 so it breaks down functionally into:
        Data Analysis
        Data Encoding
        Error Correction Coding
        Structure Final Message
        Module Placement in Matrix
        Data Masking
        Format and Version Information

        Do you have any preference? The data analysis looks fairly straightforward. Are we even going to bother with Kanji at this point?

        1 Reply Last reply Reply Quote 1
        • vinicity
          vinicity F @pianofire last edited by

          @pianofire That is awesome!

          Actually it would be nice to have access to some sort of roll-out plan? To know which features are coming and approximately when?

          SteveZX81 1 Reply Last reply Reply Quote 1
          • F
            faz808 F last edited by

            Good question. Is simple alphanumeric mode going to any easier?
            Looking at the article, I think the first step might be to write a binary - hex/hex - binary function. This would confirm each step of the authors calculations.

            pianofire 2 Replies Last reply Reply Quote 0
            • pianofire
              pianofire Fuze Team @faz808 last edited by

              @faz808 Well I have already written hex to decimal and (vice versa) https://fuzearena.com/forum/topic/965/hexadecimal-conversion-functions

              1 Reply Last reply Reply Quote 1
              • SteveZX81
                SteveZX81 F @vinicity last edited by

                @vinicity said in File Export:

                @pianofire That is awesome!

                Actually it would be nice to have access to some sort of roll-out plan? To know which features are coming and approximately when?

                That would be wonderful and even if some of the things were way late or never even turned up, it would be still better than not having a clue as we are now.

                pianofire 1 Reply Last reply Reply Quote 0
                • pianofire
                  pianofire Fuze Team @SteveZX81 last edited by

                  @SteveZX81 It is difficult to raise people's expectations and then not deliver. Anyway it is not up to me

                  1 Reply Last reply Reply Quote 1
                  • pianofire
                    pianofire Fuze Team @faz808 last edited by

                    @faz808 OK I have done the data analysis phase (except for Kanji). I have shared it but it is subject to approval. If you add me as a friend you should be able to see it before approval (SW-5218-2817-5887)

                    pianofire 1 Reply Last reply Reply Quote 0
                    • pianofire
                      pianofire Fuze Team @pianofire last edited by pianofire

                      Fast track approval! It is NXK7DXUMMN

                      F 1 Reply Last reply Reply Quote 1
                      • F
                        faz808 F @pianofire last edited by

                        @pianofire That was fast ! The next step could be trickier ...

                        pianofire 1 Reply Last reply Reply Quote 0
                        • F
                          faz808 F last edited by

                          This could prove a major stumbling block - Error Correction Coding.

                          pianofire 1 Reply Last reply Reply Quote 0
                          • pianofire
                            pianofire Fuze Team @faz808 last edited by

                            @faz808 Well that was the easy bit!

                            1 Reply Last reply Reply Quote 1
                            • pianofire
                              pianofire Fuze Team @faz808 last edited by

                              @faz808 Yes it looks fun! https://www.thonky.com/qr-code-tutorial/error-correction-coding I have some C# code that I might try to convert

                              1 Reply Last reply Reply Quote 1
                              • F
                                faz808 F last edited by

                                I'll leave that bit with you then. My brain needs a rest - it's hurting...

                                pianofire 1 Reply Last reply Reply Quote 0
                                • pianofire
                                  pianofire Fuze Team @faz808 last edited by

                                  @faz808 OK will you look at encoding then?

                                  1 Reply Last reply Reply Quote 1
                                  • F
                                    faz808 F last edited by

                                    I'll give it go.

                                    1 Reply Last reply Reply Quote 0
                                    • F
                                      faz808 F last edited by

                                      Getting there - slowly...
                                      encoder ID: MXK7BH2UW5

                                      pianofire 1 Reply Last reply Reply Quote 0
                                      • pianofire
                                        pianofire Fuze Team @faz808 last edited by

                                        @faz808 No rush. I am still keying in this monster! https://www.thonky.com/qr-code-tutorial/error-correction-table

                                        1 Reply Last reply Reply Quote 2
                                        • F
                                          faz808 F last edited by

                                          What a team !

                                          1 Reply Last reply Reply Quote 4
                                          • pianofire
                                            pianofire Fuze Team last edited by

                                            Finished the table!

                                            // QRCode Error Correction
                                            // by Pianofire
                                            // Version WIP
                                            
                                            struct ECBlock
                                              string name // Version-Level
                                              int g1b // Group 1 Blocks
                                              int g1d // Data Codewords in Group 1
                                              int g2b // Group 2 Blocks
                                              int g2d // Data Codewords in Group 2
                                              int tdc // Total Data Codewords
                                            endstruct
                                            
                                            ECBlock ecBlocks = [ 
                                              [ .name = "1-L",  .g1b = 1,  .g1d = 19,  .g2b = 0,  .g2d = 0,   .tdc = 19 ],
                                              [ .name = "1-M",  .g1b = 1,  .g1d = 16,  .g2b = 0,  .g2d = 0,   .tdc = 16 ],
                                              [ .name = "1-Q",  .g1b = 1,  .g1d = 13,  .g2b = 0,  .g2d = 0,   .tdc = 13 ],
                                              [ .name = "1-H",  .g1b = 1,  .g1d = 9,   .g2b = 0,  .g2d = 0,   .tdc = 9 ],
                                              [ .name = "2-L",  .g1b = 1,  .g1d = 34,  .g2b = 0,  .g2d = 0,   .tdc = 34 ],
                                              [ .name = "2-M",  .g1b = 1,  .g1d = 28,  .g2b = 0,  .g2d = 0,   .tdc = 28 ],
                                              [ .name = "2-Q",  .g1b = 1,  .g1d = 22,  .g2b = 0,  .g2d = 0,   .tdc = 22 ],
                                              [ .name = "2-H",  .g1b = 1,  .g1d = 16,  .g2b = 0,  .g2d = 0,   .tdc = 16 ],
                                              [ .name = "3-L",  .g1b = 1,  .g1d = 55,  .g2b = 0,  .g2d = 0,   .tdc = 55 ],
                                              [ .name = "3-M",  .g1b = 1,  .g1d = 44,  .g2b = 0,  .g2d = 0,   .tdc = 44 ],
                                              [ .name = "3-Q",  .g1b = 2,  .g1d = 17,  .g2b = 0,  .g2d = 0,   .tdc = 34 ],
                                              [ .name = "3-H",  .g1b = 2,  .g1d = 13,  .g2b = 0,  .g2d = 0,   .tdc = 26 ],
                                              [ .name = "4-L",  .g1b = 1,  .g1d = 80,  .g2b = 0,  .g2d = 0,   .tdc = 80 ],
                                              [ .name = "4-M",  .g1b = 2,  .g1d = 32,  .g2b = 0,  .g2d = 0,   .tdc = 64 ],
                                              [ .name = "4-Q",  .g1b = 2,  .g1d = 24,  .g2b = 0,  .g2d = 0,   .tdc = 48 ],
                                              [ .name = "4-H",  .g1b = 4,  .g1d = 9,   .g2b = 0,  .g2d = 0,   .tdc = 36 ],
                                              [ .name = "5-L",  .g1b = 1,  .g1d = 108, .g2b = 0,  .g2d = 0,   .tdc = 108 ],
                                              [ .name = "5-M",  .g1b = 2,  .g1d = 43,  .g2b = 0,  .g2d = 0,   .tdc = 86 ],
                                              [ .name = "5-Q",  .g1b = 2,  .g1d = 15,  .g2b = 2,  .g2d = 16,  .tdc = 62 ],
                                              [ .name = "5-H",  .g1b = 2,  .g1d = 11,  .g2b = 2,  .g2d = 12,  .tdc = 46 ],
                                              [ .name = "6-L",  .g1b = 2,  .g1d = 68,  .g2b = 0,  .g2d = 0,   .tdc = 136 ],
                                              [ .name = "6-M",  .g1b = 4,  .g1d = 27,  .g2b = 0,  .g2d = 0,   .tdc = 108 ],
                                              [ .name = "6-Q",  .g1b = 4,  .g1d = 19,  .g2b = 0,  .g2d = 0,   .tdc = 76 ],
                                              [ .name = "6-H",  .g1b = 4,  .g1d = 15,  .g2b = 0,  .g2d = 0,   .tdc = 60 ],
                                              [ .name = "7-L",  .g1b = 2,  .g1d = 78,  .g2b = 0,  .g2d = 0,   .tdc = 156 ],
                                              [ .name = "7-M",  .g1b = 4,  .g1d = 31,  .g2b = 0,  .g2d = 0,   .tdc = 124 ],
                                              [ .name = "7-Q",  .g1b = 2,  .g1d = 14,  .g2b = 4,  .g2d = 15,  .tdc = 88 ],
                                              [ .name = "7-H",  .g1b = 4,  .g1d = 13,  .g2b = 1,  .g2d = 14,  .tdc = 66 ],
                                              [ .name = "8-L",  .g1b = 2,  .g1d = 97,  .g2b = 0,  .g2d = 0,   .tdc = 194 ],
                                              [ .name = "8-M",  .g1b = 2,  .g1d = 38,  .g2b = 2,  .g2d = 39,  .tdc = 154 ],
                                              [ .name = "8-Q",  .g1b = 4,  .g1d = 18,  .g2b = 2,  .g2d = 19,  .tdc = 110 ],
                                              [ .name = "8-H",  .g1b = 4,  .g1d = 14,  .g2b = 2,  .g2d = 15,  .tdc = 86 ], 
                                              [ .name = "9-L",  .g1b = 2,  .g1d = 116, .g2b = 0,  .g2d = 0,   .tdc = 232 ], 
                                              [ .name = "9-M",  .g1b = 3,  .g1d = 36,  .g2b = 2,  .g2d = 37,  .tdc = 182 ], 
                                              [ .name = "9-Q",  .g1b = 4,  .g1d = 16,  .g2b = 4,  .g2d = 17,  .tdc = 132 ], 
                                              [ .name = "9-H",  .g1b = 4,  .g1d = 12,  .g2b = 4,  .g2d = 13,  .tdc = 100 ], 
                                              [ .name = "10-L", .g1b = 2,  .g1d = 68,  .g2b = 2,  .g2d = 69,  .tdc = 274 ], 
                                              [ .name = "10-M", .g1b = 4,  .g1d = 43,  .g2b = 1,  .g2d = 44,  .tdc = 216 ], 
                                              [ .name = "10-Q", .g1b = 6,  .g1d = 19,  .g2b = 2,  .g2d = 20,  .tdc = 154 ], 
                                              [ .name = "10-H", .g1b = 6,  .g1d = 15,  .g2b = 2,  .g2d = 16,  .tdc = 122 ], 
                                              [ .name = "11-L", .g1b = 4,  .g1d = 81,  .g2b = 0,  .g2d = 0,   .tdc = 324 ], 
                                              [ .name = "11-M", .g1b = 1,  .g1d = 50,  .g2b = 4,  .g2d = 51,  .tdc = 254 ], 
                                              [ .name = "11-Q", .g1b = 4,  .g1d = 22,  .g2b = 4,  .g2d = 23,  .tdc = 180 ], 
                                              [ .name = "11-H", .g1b = 3,  .g1d = 12,  .g2b = 8,  .g2d = 13,  .tdc = 140 ],
                                              [ .name = "12-L", .g1b = 2,  .g1d = 92,  .g2b = 2,  .g2d = 93,  .tdc = 370 ], 
                                              [ .name = "12-M", .g1b = 6,  .g1d = 36,  .g2b = 2,  .g2d = 37,  .tdc = 290 ], 
                                              [ .name = "12-Q", .g1b = 4,  .g1d = 20,  .g2b = 6,  .g2d = 21,  .tdc = 206 ], 
                                              [ .name = "12-H", .g1b = 7,  .g1d = 14,  .g2b = 4,  .g2d = 15,  .tdc = 158 ],
                                              [ .name = "13-L", .g1b = 4,  .g1d = 107, .g2b = 0,  .g2d = 0,   .tdc = 428 ], 
                                              [ .name = "13-M", .g1b = 8,  .g1d = 37,  .g2b = 1,  .g2d = 38,  .tdc = 334 ], 
                                              [ .name = "13-Q", .g1b = 8,  .g1d = 20,  .g2b = 4,  .g2d = 21,  .tdc = 244 ], 
                                              [ .name = "13-H", .g1b = 12, .g1d = 11,  .g2b = 4,  .g2d = 12,  .tdc = 180 ], 
                                              [ .name = "14-L", .g1b = 3,  .g1d = 115, .g2b = 1,  .g2d = 116, .tdc = 461 ], 
                                              [ .name = "14-M", .g1b = 4,  .g1d = 40,  .g2b = 5,  .g2d = 41,  .tdc = 365 ], 
                                              [ .name = "14-Q", .g1b = 11, .g1d = 16,  .g2b = 5,  .g2d = 17,  .tdc = 261 ], 
                                              [ .name = "14-H", .g1b = 11, .g1d = 12,  .g2b = 5,  .g2d = 13,  .tdc = 197 ], 
                                              [ .name = "15-L", .g1b = 5,  .g1d = 87,  .g2b = 1,  .g2d = 88,  .tdc = 523 ], 
                                              [ .name = "15-M", .g1b = 5,  .g1d = 41,  .g2b = 5,  .g2d = 42,  .tdc = 415 ], 
                                              [ .name = "15-Q", .g1b = 5,  .g1d = 24,  .g2b = 7,  .g2d = 25,  .tdc = 295 ], 
                                              [ .name = "15-H", .g1b = 11, .g1d = 12,  .g2b = 7,  .g2d = 13,  .tdc = 223 ],
                                              [ .name = "16-L", .g1b = 5,  .g1d = 98,  .g2b = 1,  .g2d = 99,  .tdc = 589 ], 
                                              [ .name = "16-M", .g1b = 7,  .g1d = 45,  .g2b = 3,  .g2d = 46,  .tdc = 453 ], 
                                              [ .name = "16-Q", .g1b = 15, .g1d = 19,  .g2b = 2,  .g2d = 20,  .tdc = 325 ], 
                                              [ .name = "16-H", .g1b = 3,  .g1d = 15,  .g2b = 13, .g2d = 16,  .tdc = 253 ],
                                              [ .name = "17-L", .g1b = 1,  .g1d = 107, .g2b = 5,  .g2d = 108, .tdc = 647 ], 
                                              [ .name = "17-M", .g1b = 10, .g1d = 46,  .g2b = 1,  .g2d = 47,  .tdc = 507 ], 
                                              [ .name = "17-Q", .g1b = 1,  .g1d = 22,  .g2b = 15, .g2d = 23,  .tdc = 367 ], 
                                              [ .name = "17-H", .g1b = 2,  .g1d = 14,  .g2b = 17, .g2d = 15,  .tdc = 283 ],
                                              [ .name = "18-L", .g1b = 5,  .g1d = 120, .g2b = 1,  .g2d = 121, .tdc = 721 ], 
                                              [ .name = "18-M", .g1b = 9,  .g1d = 43,  .g2b = 4,  .g2d = 44,  .tdc = 563 ], 
                                              [ .name = "18-Q", .g1b = 17, .g1d = 22,  .g2b = 1,  .g2d = 23,  .tdc = 397 ], 
                                              [ .name = "18-H", .g1b = 2,  .g1d = 14,  .g2b = 19, .g2d = 15,  .tdc = 313 ], 
                                              [ .name = "19-L", .g1b = 3,  .g1d = 113, .g2b = 4,  .g2d = 114, .tdc = 795 ], 
                                              [ .name = "19-M", .g1b = 3,  .g1d = 44,  .g2b = 11, .g2d = 45,  .tdc = 627 ], 
                                              [ .name = "19-Q", .g1b = 17, .g1d = 21,  .g2b = 4,  .g2d = 22,  .tdc = 445 ], 
                                              [ .name = "19-H", .g1b = 9,  .g1d = 13,  .g2b = 16, .g2d = 14,  .tdc = 341 ],
                                              [ .name = "20-L", .g1b = 3,  .g1d = 107, .g2b = 5,  .g2d = 108, .tdc = 861 ], 
                                              [ .name = "20-M", .g1b = 3,  .g1d = 41,  .g2b = 13, .g2d = 42,  .tdc = 669 ], 
                                              [ .name = "20-Q", .g1b = 15, .g1d = 24,  .g2b = 5,  .g2d = 25,  .tdc = 485 ], 
                                              [ .name = "20-H", .g1b = 15, .g1d = 15,  .g2b = 10, .g2d = 16,  .tdc = 385 ],
                                              [ .name = "21-L", .g1b = 4,  .g1d = 116, .g2b = 4,  .g2d = 117, .tdc = 932 ], 
                                              [ .name = "21-M", .g1b = 17, .g1d = 42,  .g2b = 0,  .g2d = 0,   .tdc = 714 ], 
                                              [ .name = "21-Q", .g1b = 17, .g1d = 22,  .g2b = 6,  .g2d = 23,  .tdc = 512 ], 
                                              [ .name = "21-H", .g1b = 19, .g1d = 16,  .g2b = 6,  .g2d = 17,  .tdc = 406 ], 
                                              [ .name = "22-L", .g1b = 2,  .g1d = 111, .g2b = 7,  .g2d = 112, .tdc = 1006 ], 
                                              [ .name = "22-M", .g1b = 17, .g1d = 46,  .g2b = 0,  .g2d = 0,   .tdc = 782 ], 
                                              [ .name = "22-Q", .g1b = 7,  .g1d = 24,  .g2b = 16, .g2d = 25,  .tdc = 568 ], 
                                              [ .name = "22-H", .g1b = 34, .g1d = 13,  .g2b = 0,  .g2d = 0,   .tdc = 442 ],
                                              [ .name = "23-L", .g1b = 4,  .g1d = 121, .g2b = 5,  .g2d = 122, .tdc = 1094 ], 
                                              [ .name = "23-M", .g1b = 4,  .g1d = 47,  .g2b = 14, .g2d = 48,  .tdc = 860 ], 
                                              [ .name = "23-Q", .g1b = 11, .g1d = 24,  .g2b = 14, .g2d = 25,  .tdc = 614 ], 
                                              [ .name = "23-H", .g1b = 16, .g1d = 15,  .g2b = 14, .g2d = 16,  .tdc = 464 ], 
                                              [ .name = "24-L", .g1b = 6,  .g1d = 117, .g2b = 4,  .g2d = 118, .tdc = 1174 ], 
                                              [ .name = "24-M", .g1b = 6,  .g1d = 45,  .g2b = 14, .g2d = 46,  .tdc = 914 ], 
                                              [ .name = "24-Q", .g1b = 11, .g1d = 24,  .g2b = 16, .g2d = 25,  .tdc = 664 ], 
                                              [ .name = "24-H", .g1b = 30, .g1d = 16,  .g2b = 2,  .g2d = 17,  .tdc = 514 ], 
                                              [ .name = "25-L", .g1b = 8,  .g1d = 106, .g2b = 4,  .g2d = 107, .tdc = 1276 ], 
                                              [ .name = "25-M", .g1b = 8,  .g1d = 47,  .g2b = 13, .g2d = 48,  .tdc = 1000 ], 
                                              [ .name = "25-Q", .g1b = 7,  .g1d = 24,  .g2b = 22, .g2d = 25,  .tdc = 718 ], 
                                              [ .name = "25-H", .g1b = 22, .g1d = 15,  .g2b = 13, .g2d = 16,  .tdc = 538 ],
                                              [ .name = "26-L", .g1b = 10, .g1d = 114, .g2b = 2,  .g2d = 115, .tdc = 1370 ], 
                                              [ .name = "26-M", .g1b = 19, .g1d = 46,  .g2b = 4,  .g2d = 47,  .tdc = 1062 ], 
                                              [ .name = "26-Q", .g1b = 28, .g1d = 22,  .g2b = 6,  .g2d = 23,  .tdc = 754 ], 
                                              [ .name = "26-H", .g1b = 33, .g1d = 16,  .g2b = 4,  .g2d = 17,  .tdc = 596 ], 
                                              [ .name = "27-L", .g1b = 8,  .g1d = 122, .g2b = 4,  .g2d = 123, .tdc = 1468 ], 
                                              [ .name = "27-M", .g1b = 22, .g1d = 45,  .g2b = 3,  .g2d = 46,  .tdc = 1128 ], 
                                              [ .name = "27-Q", .g1b = 8,  .g1d = 23,  .g2b = 26, .g2d = 24,  .tdc = 808 ], 
                                              [ .name = "27-H", .g1b = 12, .g1d = 15,  .g2b = 28, .g2d = 16,  .tdc = 628 ], 
                                              [ .name = "28-L", .g1b = 3,  .g1d = 117, .g2b = 10, .g2d = 118, .tdc = 1531 ], 
                                              [ .name = "28-M", .g1b = 3,  .g1d = 45,  .g2b = 23, .g2d = 46,  .tdc = 1193 ], 
                                              [ .name = "28-Q", .g1b = 4,  .g1d = 24,  .g2b = 31, .g2d = 25,  .tdc = 871 ], 
                                              [ .name = "28-H", .g1b = 11, .g1d = 15,  .g2b = 31, .g2d = 16,  .tdc = 661 ],
                                              [ .name = "29-L", .g1b = 7,  .g1d = 116, .g2b = 7,  .g2d = 117, .tdc = 1631 ], 
                                              [ .name = "29-M", .g1b = 21, .g1d = 45,  .g2b = 7,  .g2d = 46,  .tdc = 1267 ], 
                                              [ .name = "29-Q", .g1b = 1,  .g1d = 23,  .g2b = 37, .g2d = 24,  .tdc = 911 ], 
                                              [ .name = "29-H", .g1b = 19, .g1d = 15,  .g2b = 26, .g2d = 16,  .tdc = 701 ],
                                              [ .name = "30-L", .g1b = 5,  .g1d = 115, .g2b = 10, .g2d = 116, .tdc = 1735 ], 
                                              [ .name = "30-M", .g1b = 19, .g1d = 47,  .g2b = 10, .g2d = 48,  .tdc = 1373 ], 
                                              [ .name = "30-Q", .g1b = 15, .g1d = 24,  .g2b = 25, .g2d = 25,  .tdc = 985 ], 
                                              [ .name = "30-H", .g1b = 23, .g1d = 15,  .g2b = 25, .g2d = 16,  .tdc = 745 ], 
                                              [ .name = "31-L", .g1b = 13, .g1d = 115, .g2b = 3,  .g2d = 116, .tdc = 1843 ], 
                                              [ .name = "31-M", .g1b = 2,  .g1d = 46,  .g2b = 29, .g2d = 47,  .tdc = 1455 ], 
                                              [ .name = "31-Q", .g1b = 42, .g1d = 24,  .g2b = 1,  .g2d = 25,  .tdc = 1033 ], 
                                              [ .name = "31-H", .g1b = 23, .g1d = 15,  .g2b = 28, .g2d = 16,  .tdc = 793 ],
                                              [ .name = "32-L", .g1b = 17, .g1d = 115, .g2b = 0,  .g2d = 0,   .tdc = 1955 ], 
                                              [ .name = "32-M", .g1b = 10, .g1d = 46,  .g2b = 23, .g2d = 47,  .tdc = 1541 ], 
                                              [ .name = "32-Q", .g1b = 10, .g1d = 24,  .g2b = 35, .g2d = 25,  .tdc = 1115 ], 
                                              [ .name = "32-H", .g1b = 19, .g1d = 15,  .g2b = 35, .g2d = 16,  .tdc = 845 ],
                                              [ .name = "33-L", .g1b = 17, .g1d = 115, .g2b = 1,  .g2d = 116, .tdc = 2071 ], 
                                              [ .name = "33-M", .g1b = 14, .g1d = 46,  .g2b = 21, .g2d = 47,  .tdc = 1631 ], 
                                              [ .name = "33-Q", .g1b = 29, .g1d = 24,  .g2b = 19, .g2d = 25,  .tdc = 1171 ], 
                                              [ .name = "33-H", .g1b = 11, .g1d = 15,  .g2b = 46, .g2d = 16,  .tdc = 901 ], 
                                              [ .name = "34-L", .g1b = 13, .g1d = 115, .g2b = 6,  .g2d = 116, .tdc = 2191 ], 
                                              [ .name = "34-M", .g1b = 14, .g1d = 46,  .g2b = 23, .g2d = 47,  .tdc = 1725 ], 
                                              [ .name = "34-Q", .g1b = 44, .g1d = 24,  .g2b = 7,  .g2d = 25,  .tdc = 1231 ], 
                                              [ .name = "34-H", .g1b = 59, .g1d = 16,  .g2b = 1,  .g2d = 17,  .tdc = 961 ], 
                                              [ .name = "35-L", .g1b = 12, .g1d = 121, .g2b = 7,  .g2d = 122, .tdc = 2306 ], 
                                              [ .name = "35-M", .g1b = 12, .g1d = 47,  .g2b = 26, .g2d = 48,  .tdc = 1812 ], 
                                              [ .name = "35-Q", .g1b = 39, .g1d = 24,  .g2b = 14, .g2d = 25,  .tdc = 1286 ], 
                                              [ .name = "35-H", .g1b = 22, .g1d = 15,  .g2b = 41, .g2d = 16,  .tdc = 986 ], 
                                              [ .name = "36-L", .g1b = 6,  .g1d = 121, .g2b = 14, .g2d = 122, .tdc = 2434 ], 
                                              [ .name = "36-M", .g1b = 6,  .g1d = 47,  .g2b = 34, .g2d = 48,  .tdc = 1914 ], 
                                              [ .name = "36-Q", .g1b = 46, .g1d = 24,  .g2b = 10, .g2d = 25,  .tdc = 1354 ], 
                                              [ .name = "36-H", .g1b = 2,  .g1d = 15,  .g2b = 64, .g2d = 16,  .tdc = 1054 ],
                                              [ .name = "37-L", .g1b = 17, .g1d = 122, .g2b = 4,  .g2d = 123, .tdc = 2566 ], 
                                              [ .name = "37-M", .g1b = 29, .g1d = 46,  .g2b = 14, .g2d = 47,  .tdc = 1992 ], 
                                              [ .name = "37-Q", .g1b = 49, .g1d = 24,  .g2b = 10, .g2d = 25,  .tdc = 1426 ], 
                                              [ .name = "37-H", .g1b = 24, .g1d = 15,  .g2b = 46, .g2d = 16,  .tdc = 1096 ],
                                              [ .name = "38-L", .g1b = 4,  .g1d = 122, .g2b = 18, .g2d = 123, .tdc = 2702 ], 
                                              [ .name = "38-M", .g1b = 13, .g1d = 46,  .g2b = 32, .g2d = 47,  .tdc = 2102 ], 
                                              [ .name = "38-Q", .g1b = 48, .g1d = 24,  .g2b = 14, .g2d = 25,  .tdc = 1502 ], 
                                              [ .name = "38-H", .g1b = 42, .g1d = 15,  .g2b = 32, .g2d = 16,  .tdc = 1142 ],
                                              [ .name = "39-L", .g1b = 20, .g1d = 117, .g2b = 4,  .g2d = 118, .tdc = 2812 ], 
                                              [ .name = "39-M", .g1b = 40, .g1d = 47,  .g2b = 7,  .g2d = 48,  .tdc = 2216 ], 
                                              [ .name = "39-Q", .g1b = 43, .g1d = 24,  .g2b = 22, .g2d = 25,  .tdc = 1582 ], 
                                              [ .name = "39-H", .g1b = 10, .g1d = 15,  .g2b = 67, .g2d = 16,  .tdc = 1222 ], 
                                              [ .name = "40-L", .g1b = 19, .g1d = 118, .g2b = 6,  .g2d = 119, .tdc = 2956 ], 
                                              [ .name = "40-M", .g1b = 18, .g1d = 47,  .g2b = 31, .g2d = 48,  .tdc = 2334 ], 
                                              [ .name = "40-Q", .g1b = 34, .g1d = 24,  .g2b = 34, .g2d = 25,  .tdc = 1666 ], 
                                              [ .name = "40-H", .g1b = 20, .g1d = 15,  .g2b = 61, .g2d = 16,  .tdc = 1276 ] 
                                            ]
                                            
                                            verifyECBlocks()
                                            
                                            ecb = getECBlock( 22, "H" )
                                            
                                            print(ecb)
                                            
                                            update()
                                            sleep(10)
                                            
                                            // get the error correction block for the specified version and level
                                            // version: 1-40
                                            // level: L, M, Q, H
                                            function getECBlock( version, level )
                                              ECBlock result = [ .name = "",  .g1b = 0, .g1d = 0,  .g2b = 0, .g2d = 0,  .tdc = 0 ]
                                              int i
                                              string name = str( version ) + "-" + level
                                              for i = 0 to len( ecBlocks ) loop
                                                if ecBlocks[ i ].name == name then
                                                  result = ecBlocks[ i ]
                                                  break
                                                endif  
                                              repeat
                                            return result
                                            
                                            // Check that total data codewords match with expected
                                            // prints any that don't
                                            function verifyECBlocks()
                                              for i = 0 to len(ecBlocks) loop
                                                ecb = ecBlocks[i]
                                                if ecb.tdc != ( ecb.g1b * ecb.g1d ) + ( ecb.g2b * ecb.g2d ) then
                                                  print(ecb, "\n")
                                                endif
                                              repeat
                                            return void
                                            
                                            1 Reply Last reply Reply Quote 2
                                            • First post
                                              Last post