Announcement

Collapse
No announcement yet.

Calling Ben aka sappyse107

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

  • Calling Ben aka sappyse107

    Do you have any dsects or #define files for any data stream files implemented? if so can I see one?

    I got a list of all the the OBD1 and 1.5 data stream files and have been going thru then, I think I have come up with a programming model to allow ALL fields on all models.

    the problem is, between different 'families' incl 160 vs 8192B, the same fields logically, might not be in the same location or even have the same name, and Pascal and C are poor language choices to model this, however, I teach C and used to use Pascal and think I can implement something like IBMS AR facility (application requestor) to create self defining positional parameters for a generic scan program, and since it will work for the TCM, BCM and ABM, I can give access to all fields on a laptop...

    right now Im in the 'requirements' phase but this is the data model Im gonna use:

    since mode1 msg 0...n is simply a byte stream, I will create a C struct or Pascal record (to tell the truth, the progam might be a bit of both) that looks like this:

    struct element
    {
    Databyte:char;
    Fieldname:char[10];
    BitMask:Boolean;
    ContainsErrors:Boolean;
    BitMaskArray:short[8];
    Pad:char;
    }

    Mode1Msg0:element[128];
    Mode1Msg1:element[128]; etc

    How it will work is thus: the relative positioned byte will be loaded into 'data byte', at initializatin, when the car/motor is determined (Ill just use the VIN) I will read from the proper 'Axxx.dat' file and fill in the proper fieldname and set the boolean if it is a bitmask, if it is, I will load into the second byte of each int (by casting it as char) the proper equate either for an error code or a simple flag, for example

    #define C24 EQU 24 ;error code 24

    then all I have to do when accessing codes or switches (most scan tools only list gear, ac demand and TCC switches - I can give em all) is a simple loop like:
    x = databyte;
    for i=0 to 7; i++
    {
    If (x AND 1) then
    {
    memcpy(output buffer, (int) bitmaskarray[i]+1,1)
    }
    SRL(x,1)
    }

    then as I go thru each byte of output buffer later, set up a define file that contains the text for error code 24 in the case above or the switch value etc.

    Any rate, right now Im grouping the different data stream files by commonality, I think I have found 4 distinct 'patterns'
    QuadDriver.....
    go fast...run over sh....stuff

  • #2
    mmmk. So what are you wanting? If it is suggestions I got plenty of em.

    first, something that has the functionality of this program would be a hit:

    Comment


    • #3
      Originally posted by brian89gp
      mmmk. So what are you wanting? If it is suggestions I got plenty of em.

      first, something that has the functionality of this program would be a hit:

      http://www.brian89gp.com/misc/efi2.gif
      Im looking for an example of how someone else modeled the data stream....Im trying to make mine generic to take in all car models - even carbs - graphics however....Im a systems programmer....Ill take volunteers for the gui
      QuadDriver.....
      go fast...run over sh....stuff

      Comment


      • #4
        Had another epiphany on how to do this...

        anyone here a coder? Im looking for volunteers for a mundane but needed task....

        I will soon start publishing the in-work files and documentation on my website with a link....if anyone wants to use them up to and including the eventual finished project, lets call it 'beerware'

        the task:

        I need a routine, in ANY language that inputs the vin or at least the 3rd, 10th and 8th characters, and from this, determine which Axxx.DS file (I can supply them or you can download them) is needed.

        Dont care how it is coded, the routine just needs to pass back a 4 byte text string of Axxx (where xxx is from 001...999)

        Notes: there are way more than 4 patterns, so I decided, why even use a pattern?, when I create the .DAT files for each mask, I will just make THEM themselves be self defining. Each .dat file will contain a small record that tells the read routine how many data stream messages that mask can contain, what pin to read data on (typically E, L and M) and whether or not there is a mask for BCM, TCM and ABM's, (which mean for example if A100 can have all 3 others, there will be A100.DAT, A100.BCM, A100.TCM and A100.ABM and the initialization routine will malloc the proper storage and go get em.)

        btw - if anyone wants to learn or play along, you can download a FREE C++ compiler from borland - google turbo C++ antique and then download from the antique libraries, this project will be written in DOS mode C++ (fully ANSI compatible for the time) and once I have the model working, will be converted to TCPP 5.5 with windoze support....please note: im likely not to use too much of the ++ ability - dont need to, other than the IO portion so if you know C it will be easy to follow. My goal is a software model that in itself is very compact and needs limited file support so people can make full-ability scanners out of old wasted laptops running dos or win 3.11 or above. ODB2 will be added later. Newflash: gms implementation of OBD2 is extremely similar to OBD1

        (and yes, I know I can buy the snapon MODIS for $9000 and have it do all of this, or most of it, even it does not show all flags and switches, but I can do this for free and in the meantime master the GM ECM architecture. why not use a scantool software package already out there? because each was written for a small subset of models, the coders never got around the 'self defining positional parameter format' that the GM data streams use - I could have modified each of them extensively (those that coughed up source to me) but Id rather it be mine and I shoot for the moon bells and whistles wise)
        QuadDriver.....
        go fast...run over sh....stuff

        Comment


        • #5
          What actually determines what Axxx.DS is associated with each VIN? I might be able to do something.
          60v6's original Jon M.

          Comment


          • #6
            Originally posted by RidgeRunner
            What actually determines what Axxx.DS is associated with each VIN? I might be able to do something.
            thats the evil part, in the beginning of each Axxx.DS file is a few lines of commentary listing year, motor/(VIN) and in some cases maker/body

            basically, of the 200 some files, a database needs built - ugly huh?

            a single Axxx file might cover many years. might even cover multiple engines (each with its own VIN)

            but take heart, in any given year, any car with a certain 8th digit in the VIN corresponds to one engine, i.e. VIN Z in a 91 Blazer is always a 4.3 TBI
            QuadDriver.....
            go fast...run over sh....stuff

            Comment


            • #7


              That is the only example I can think of to DL for the files. I have no clue on programming since I dropped college cause I hated programming.
              Ben
              60DegreeV6.com
              WOT-Tech.com

              Comment


              • #8
                So are you saying the program would have to read each FILE? Or read a database, or have the database coded into the program?
                60v6's original Jon M.

                Comment


                • #9
                  Originally posted by RidgeRunner
                  So are you saying the program would have to read each FILE? Or read a database, or have the database coded into the program?
                  Id like it to read a database, I have no brilliant ideas at the time on how to organize it, btw, I have an externally linkable module that will take any byte from the data stream, and if it is a bitstream representative and not data, will decode the masked bits and produce a buffer with the error codes or switches found....this enables me to read EVERY switch in every data stream the ECM can xmit.

                  now Im gonna dick around with the presentation model....my compiler supports 'text graphics', I might need to use the borland 5.5 compiler if I decide to use windows support
                  QuadDriver.....
                  go fast...run over sh....stuff

                  Comment


                  • #10
                    Anyone interested in any of the code I am writing? Itsgoing, slow, Im doing this on a time avail basis, but I have a couple generic routines that can work for anyone that wants to customize their own (there is a scan tool out there written in Turbo Pascal 5.5 that you can link to) if anyone wants em, where to I put em?
                    QuadDriver.....
                    go fast...run over sh....stuff

                    Comment


                    • #11
                      I can put them on the site if you want. Im working on a new site setup that allows uploading files amongst other things but it may be a while before its completed.
                      Ben
                      60DegreeV6.com
                      WOT-Tech.com

                      Comment


                      • #12
                        I would be willing to have a look-see at some of this code and see if domething can be implemented easily. All this database talk and referencing data from arrays and such wouldn't be difficult at all. It just depends on how you set it up and what language you are using.

                        If I can get the code, I'll check it out. But, C/C++ is not my language of choice... I would probably just code in another language and just convert it.

                        I have a question though, you want to make it for Windows, will it be converted to a 32Bit program or are you going to make it 16bit, it would help me to know for programming limitations.

                        Also, are you actually going to try to make it a DOS program from the getgo or, will it be compiled to use 16bit windows functions?

                        If you can, please email me the code. I have no reason to steal it or anything, as I am a programmer myself and, I know how it feels.

                        -Dave
                        If I seem Crazy it is because, I am insane. No lie. Ask my psychiatrist. But, i have good intentions. sometimes.

                        Comment


                        • #13
                          I got sidetracked for a while, then came back to the project, thought I had an issue, validated the design and it worked....I have the data structures complete.

                          I am using C/C++ 1.01 and 2.0 from Borland (you can d/l for free)

                          Im not a graphics guy so it will use the DOS screen calls in a dos window - 16 bit, no need for 32 as all it does with the hardware is yank in up to 400ish bytes over a 8192 baud connection - not real hard.

                          If you want to write screens in VB, that will work, the C modules will link in and all they do is supply the data in a giant in core structure.
                          QuadDriver.....
                          go fast...run over sh....stuff

                          Comment


                          • #14
                            I can do you up a GUI in VB or Delphi if you want. It would be no problem and I can make it look very nice and clean cut (using some new things I have). If I don't have to do much crazy coding in the functions of things, I could whip up somethign pretty nice in a day or two.

                            Drop me a line if you need.

                            -Dave
                            If I seem Crazy it is because, I am insane. No lie. Ask my psychiatrist. But, i have good intentions. sometimes.

                            Comment

                            Working...
                            X