Announcement

Collapse
No announcement yet.

WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    #41
    Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

    The TeboView importer has begun its life...

    It'll take a few days probably before the first glimmers of an actual boardview will show up on the program but at least we're on a roll now.

    Many thanks to you all - didn't take as long as feared, at least not for the initial attempts


    Code:
    Switching to FlexBV logfile for further output                                                                    
    19 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Header 1: 'O95w-28ps49m 02v9o.'                                                                
    UKV 1: 1                                                                                       
    7 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Header 2: 'G34vS4z'                                                                      
    UKV 2: 0                                                                                       
    13 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Header 3: 'Eksq dh, beeh'                                                                   
    layer count : 22                                                                                   
    ukv 3: 2                                                                                       
    ukv 4: 2                                                                                       
    ukv 5: 16                                                                                       
    ukv 6: 0                                                                                       
    Layer start 3 2 1...                                                                                 
    14 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Layer Name: SILKSCREEN_TOP                                                                   
    14 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Layer Name2: SILKSCREEN_TOP                                                                  
    78 bytes allocated for string                                                                             
    Copying data to string                                                                                
    Moving pointer ahead...Layer Filename: E:\DFT\2016NPI\DG710\SVT\NSA912R10\NSA912R10-0329-FAB\cds2f_NSA912R10-0329.cad                                 
    Layer ukv1 = 7                                                                                    
    Layer line colour: ffcbfecc                                                                              
    Layer pad colour: ffcbfecc                                                                              
    Layer ukv2 = 12                                                                                    
    Layer ukv3 = 1                                                                                    
    Layer ukv4 = 100                                                                                   
    Layer ukv5 = 100                                                                                   
    Layer contains 28 items                                                                                
    Layer ukv6 = 0                                                                                    
    item start = -1                                                                                    
    id = 10                                                                                        
     x = 44164                                                                                      
     y = -59901                                                                                      
     x2 = 44164                                                                                      
     y2 = -79601                                                                                     
    item start = -1                                                                                    
    id = 10                                                                                        
     x = 44164                                                                                      
     y = -79601                                                                                      
     x2 = 63864                                                                                      
     y2 = -79601                                                                                     
    item start = -1                                                                                    
    id = 10                                                                                        
     x = 63864
    YouTube Repair Videos - https://www.youtube.com/user/19PLD73
    FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

    Comment


      #42
      Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

      So yeah, with the current python code:

      cds2f_NSA911R0-0329.tvw seems to decode (but the next thing is unknown, so maybe…)

      NSB241R10.tvw decodes but it only has one surface on the first layer.

      cds2f_NSA912R10-0329.tvw fails to decode at the second Surface because there's an extra 4 bytes before the net ID:

      Code:
      == 2 surfaces
      ?    0x2
      
      Surface[0]:
      Net: -1
      === 13 edges d
      [[43307, -110945], [65945, -110945], [65945, -137795], [47244, -137795], [47244, -137794], [46225, -137660], [45275, -137267], [44460, -136641], [43834, -135825], [43441, -134876], [43307, -133857], [43307, -133858], [43307, -110945]]
      ???   0 0
      === 1 voids
      ?    0x1
      void(0):    26 edges
      (56103, -130895)
      (54577, -130694)
      (53155, -130105)
      (51934, -129168)
      (50997, -127947)
      (50408, -126525)
      (50207, -124999)
      (50408, -123473)
      (50997, -122051)
      (51934, -120830)
      (53155, -119893)
      (54577, -119304)
      (56103, -119103)
      (57629, -119304)
      (59051, -119893)
      (60272, -120830)
      (61209, -122051)
      (61798, -123473)
      (61999, -124999)
      (61798, -126525)
      (61209, -127947)
      (60272, -129168)
      (59051, -130105)
      (57629, -130694)
      (56103, -130895)
      (56103, -130896)
      [(56103, -130895), (54577, -130694), (53155, -130105), (51934, -129168), (50997, -127947), (50408, -126525), (50207, -124999), (50408, -123473), (50997, -122051), (51934, -120830), (53155, -119893), (54577, -119304), (56103, -119103), (57629, -119304), (59051, -119893), (60272, -120830), (61209, -122051), (61798, -123473), (61999, -124999), (61798, -126525), (61209, -127947), (60272, -129168), (59051, -130105), (57629, -130694), (56103, -130895), (56103, -130896)]
      
      Surface[1]:
      Net: 0
      === 4294967295 edges ffffffff

      Comment


        #43
        Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

        Originally posted by inflex View Post
        The TeboView importer has begun its life...

        It'll take a few days probably before the first glimmers of an actual boardview will show up on the program but at least we're on a roll now.

        Many thanks to you all - didn't take as long as feared, at least not for the initial attempts
        \o/

        Comment


          #44
          Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

          Ok, took some time to write up what I came up with from the python script and opened a PR.
          Do you want a PR for the script as well?

          Comment


            #45
            Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

            Looking at the OBV build.sh… oh gee, why use so unportable things like /proc/cpuinfo? :-D

            Comment


              #46
              Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

              Thanks for the PR. I've already pushed in some small changes too (the 3-2-1 sequence appears to be a header/lead-in as opposed to a suffix).

              All scrappy at the moment but it's definitely workable now for generating the source code.

              As for OBV, the build.sh is meant for linux and macOS, we don't really build on windows any more because it was making the development cycle too slow and we ran in to show-stopper incompatibilities when working with gcc as well as VS that just made everything a nightmare. Subsequently the build for windows is just done on linux with mingw64; makes everything vastly easier when it comes to cross-platform development.

              As for why the /proc/cpuinfo ... not sure what it's for, probably to determine the flags for the build within CMake.
              YouTube Repair Videos - https://www.youtube.com/user/19PLD73
              FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

              Comment


                #47
                Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                Originally posted by inflex View Post
                Thanks for the PR. I've already pushed in some small changes too (the 3-2-1 sequence appears to be a header/lead-in as opposed to a suffix).

                All scrappy at the moment but it's definitely workable now for generating the source code.
                Great, let me know if you need more.

                Originally posted by inflex View Post
                As for OBV, the build.sh is meant for linux and macOS, we don't really build on windows any more because it was making the development cycle too slow and we ran in to show-stopper incompatibilities when working with gcc as well as VS that just made everything a nightmare. Subsequently the build for windows is just done on linux with mingw64; makes everything vastly easier when it comes to cross-platform development.
                Yeah, mingw works not too bad, I recall building VLC with it (quite slow though).
                I think most of build.sh can probably be done right in CMake though.

                Originally posted by inflex View Post
                As for why the /proc/cpuinfo ... not sure what it's for, probably to determine the flags for the build within CMake.
                Yes, it's a classic idom to detect the number of cores to do parallel builds, except it's very Linux-specific while there's a much simpler and portable method. I fixed this in MuseScore some years ago. I already proposed a patch in my Haiku PR. :-)

                Comment


                  #48
                  Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                  Originally posted by mmu View Post
                  Great, let me know if you need more.
                  Many thanks. I'll PM you in a bit after this.


                  Yeah, mingw works not too bad, I recall building VLC with it (quite slow though).
                  I think most of build.sh can probably be done right in CMake though.
                  Likely so - for me, it's a case of "It still works, I'm not going to break it"

                  I already proposed a patch in my Haiku PR. :-)
                  I saw that come through this morning - it'll likely be piernov who handles that as I am very much hands-off with OBV now. Put the years in to get it to a level and did the promotional work with/via Louis Rossmann, but after that is about when I forked off with FlexBV. I still push back things like file formats and bug fixes but aside from that I keep a fair distance now.
                  YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                  FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                  Comment


                    #49
                    Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                    I made the THREAD change on my own build.sh, so at least that's one file fixed
                    YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                    FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                    Comment


                      #50
                      Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                      I present to you... the very first image for TeboView decoder for FlexBV.

                      This is actually a board outline for the Lenovo X240 Yoga board.
                      Attached Files
                      YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                      FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                      Comment


                        #51
                        Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                        Interestingly, our sample file had a more complicated outline routing system. There's some segments that are prefixed with 0x08 instead of 0x0A, and with those you read only 2 int32's after the tool int32, and there's no trailing 0-value uint32.

                        I'll add that in to the documentation later.

                        I'm sure there's other little traps like that out there but we'll find them in due time.
                        Attached Files
                        YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                        FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                        Comment


                          #52
                          Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                          Yay!

                          Comment


                            #53
                            Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                            HeLP - Need MOAR Teboview files. Gotten to the point now that I need more files of different sources so I can cross-check/differentiate various flags/bytes.

                            Big or small - you can email them to me if you prefer, pldaniels@gmail.com
                            YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                            FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                            Comment


                              #54
                              Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                              Found something interesting, well, two things;

                              1) the loose 1-byte 0-value in the header sandwiched between two other strings is actually, as it should have been expected, an empty string. One of the new files I tried broke my parser and it was because there was a 3rd string in there.

                              2) Some TVW files are password protected when used in the official Teboview program, but the contents are not in any way encrypted that I can tell; it's akin to stopping people from getting in to an open space by placing a doorway in their face. Very interesting.
                              YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                              FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                              Comment


                                #55
                                Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                There are different teboview programs. The ones which are password protected in one, are not in the other one.

                                Which of the files had the password? I think I can send you the right program, which doesnt ask for password.

                                Comment


                                  #56
                                  Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                  Originally posted by RethoricalCheese View Post
                                  There are different teboview programs. The ones which are password protected in one, are not in the other one.

                                  Which of the files had the password? I think I can send you the right program, which doesnt ask for password.
                                  Boardviewer doesn't let the password stop it, but the official Teboview v4 does.

                                  Lenovo\ Legion\ Y540-15IRH\ -\ NM-C221\ REV0.1\ Boardview\ /NS-C222.tvw

                                  It's just more amusing that it's not really doing any real protection, and in honest though, I'm *glad* it's not.

                                  On the upside, I've already worked out a few more of the header fields because of those new files, thanks.
                                  YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                                  FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                                  Comment


                                    #57
                                    Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                    Yeah, looks like these files were meant to be opened by boardviewer, not teboviewer.

                                    Comment


                                      #58
                                      Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                      Attached Files

                                      Comment


                                        #59
                                        Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                        Originally posted by DerekChen65535 View Post
                                        Thanks for that - at least the outline renders on that one
                                        Attached Files
                                        YouTube Repair Videos - https://www.youtube.com/user/19PLD73
                                        FlexBV BoardView software - Linux/OSX/Windows - http://pldaniels.com/flexbv

                                        Comment


                                          #60
                                          Re: WANTED: Teboview / TVW file format specification to write OpenBoardview decoder

                                          https://www.badcaps.net/forum/showpo...&postcount=354

                                          Comment

                                          Working...
                                          X