Menu

There is a obvious bug in diag_l1.c

soyo
2012-07-23
2013-04-24
  • soyo

    soyo - 2012-07-23

    In function diag_l1_send,  there is a segement:

    if (diag_l1_saferead(dl0d, &c, 1, 1000) < 0)
    rv=DIAG_ERR_GENERAL;
    break;

    There is a {} missing. So it will break every time when one bytes sent. Every command only could be sent one byte and timeout happenned later.

    Thanks

     
  • fenugrec

    fenugrec - 2012-07-23

    Wow… that's dumb. Thanks for pointing that out, I'll commit the fix as soon as I get back to my dev-puter.
    I'm usually pretty careful about that kind of stuff; obviously not enough !

     
  • soyo

    soyo - 2012-07-23

    Oh, take it easy.  You guys are good men and did me a big favor. ^_^

    Maybe there is another bug in function diag_l0_sileng_slowinit. After sending 0x33, we should sleep 2000ms and switch baud rate to 10400bps, and receive 0x33 and 0x55. But in this function, we didn't switch baud rate untill 0x33 read. When reading 0x33, the timeout is 2075ms, it's not far enough. This leads to ecu wakeup failure.

    Thanks

     
  • fenugrec

    fenugrec - 2012-07-24

    Hi,
    well diag_l0_se.c is going to disappear - as should be written somewhere, I merged _l0_se and _l0_vagtool into one combined diag_l0_dumb.c . So I would tend to ignore any weird stuff in _l0_se.c.
    However, I think the _l0_dumb code works about the same; that is, once the 5bps 0x33 is sent, the line
    323: diag_tty_setup(dl0d, &dev->serial);
    should set up the baud rate to 10.4kbps.
    Have you tested an actual dumb interface (VAG, SILENG, etc.) ?

     
  • soyo

    soyo - 2012-07-26

    If you have new changes, please submit. I tested my hardware interface, such as Jeff's interface. This hardware interface has echo. So I'm using SE9141 and ttyS0.

     
  • fenugrec

    fenugrec - 2012-07-26

    I haven't changed anything recently, but currently the CVS code has SE, VAG, and DUMB support. But, you shouldn't use SE and VAG (related to diag_l0_se.c and diag_l0_vagtool.c files), instead only use diag_l0_dumb.c : the two other files (_se and _vagtool) will be deleted in the next release. So, have you tested with DUMB or just SE ?

     
  • soyo

    soyo - 2012-07-26

    If using DUMB, it seems can not connected. Cannot wake up ECU.