Announcement

Collapse
No announcement yet.

Need Help (build OBDGPSloggers on Ubuntu)

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

  • Need Help (build OBDGPSloggers on Ubuntu)

    When I type "cmake ..",

    Code:
    -- Did not find gps_stream method in GPSD - assuming version 2 API
    -- Found GPSD: /usr/lib/libgps.so,/usr/lib/libgps.so
    -- Found FFTW3: /usr/lib/libfftw3.so
    -- Found getaddrinfo. Building socket sim generator
    -- Found dlopen. Building dlopen sim generator
    -- Couldn't find libftdi, required for building obdftdipty
    -- Configuring done
    -- Generating done
    -- Build files have been written to: /home/mark/obdgpslogger-trunk/build
    Then type "make", two errors occur.

    Code:
    [ 46%] Built target cksqlite
    [ 46%] Built target ckobdcomm
    [ 46%] Built target ckobdconfigfile
    [ 46%] Built target ckobdinfo
    [ 46%] Built target obdgpslogger
    [ 46%] Built target ckobdfl
    Linking CXX executable ../../../bin/obdgui
    libckobdfl.a(maindisplay.cxx.o): In function `fl_color(unsigned int)':
    maindisplay.cxx:(.text._Z8fl_colorj[fl_color(unsigned int)]+0x7): undefined reference to `fl_graphics_driver'
    maindisplay.cxx:(.text._Z8fl_colorj[fl_color(unsigned int)]+0x14): undefined reference to `fl_graphics_driver'
    libckobdfl.a(maindisplay.cxx.o): In function `fl_polygon(int, int, int, int, int, int)':
    maindisplay.cxx:(.text._Z10fl_polygoniiiiii[fl_polygon(int, int, int, int, int, int)]+0x7): undefined reference to `fl_graphics_driver'
    maindisplay.cxx:(.text._Z10fl_polygoniiiiii[fl_polygon(int, int, int, int, int, int)]+0x14): undefined reference to `fl_graphics_driver'
    libckobdfl.a(maindisplay.cxx.o): In function `Fl_Input_Choice::InputMenuButton::draw()':
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice15InputMenuButton4drawEv[Fl_Input_Choice::InputMenuButton::draw()]+0x27): undefined reference to `Fl_Widget::draw_box(Fl_Boxtype, unsigned int) const'
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice15InputMenuButton4drawEv[Fl_Input_Choice::InputMenuButton::draw()]+0x59): undefined reference to `fl_inactive(unsigned int)'
    libckobdfl.a(maindisplay.cxx.o): In function `Fl_Widget::do_callback()':
    maindisplay.cxx:(.text._ZN9Fl_Widget11do_callbackEv[Fl_Widget::do_callback()]+0x1e): undefined reference to `Fl_Widget::do_callback(Fl_Widget*, void*)'
    libckobdfl.a(maindisplay.cxx.o): In function `Fl_Input_Choice::menu_cb(Fl_Widget*, void*)':
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice7menu_cbEP9Fl_WidgetPv[Fl_Input_Choice::menu_cb(Fl_Widget*, void*)]+0x1c): undefined reference to `Fl_Widget_Tracker::Fl_Widget_Tracker(Fl_Widget*)'
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice7menu_cbEP9Fl_WidgetPv[Fl_Input_Choice::menu_cb(Fl_Widget*, void*)]+0x179): undefined reference to `Fl_Widget_Tracker::~Fl_Widget_Tracker()'
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice7menu_cbEP9Fl_WidgetPv[Fl_Input_Choice::menu_cb(Fl_Widget*, void*)]+0x194): undefined reference to `Fl_Widget_Tracker::~Fl_Widget_Tracker()'
    libckobdfl.a(maindisplay.cxx.o): In function `Fl_Input_Choice::inp_cb(Fl_Widget*, void*)':
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice6inp_cbEP9Fl_WidgetPv[Fl_Input_Choice::inp_cb(Fl_Widget*, void*)]+0x1c): undefined reference to `Fl_Widget_Tracker::Fl_Widget_Tracker(Fl_Widget*)'
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice6inp_cbEP9Fl_WidgetPv[Fl_Input_Choice::inp_cb(Fl_Widget*, void*)]+0xea): undefined reference to `Fl_Widget_Tracker::~Fl_Widget_Tracker()'
    maindisplay.cxx:(.text._ZN15Fl_Input_Choice6inp_cbEP9Fl_WidgetPv[Fl_Input_Choice::inp_cb(Fl_Widget*, void*)]+0x105): undefined reference to `Fl_Widget_Tracker::~Fl_Widget_Tracker()'
    libckobdfl.a(logwindow.cxx.o): In function `OBDLogWindow::OBDLogWindow()':
    logwindow.cxx:(.text+0x258): undefined reference to `Fl_Text_Buffer::Fl_Text_Buffer(int, int)'
    logwindow.cxx:(.text+0x33c): undefined reference to `Fl_Text_Buffer::Fl_Text_Buffer(int, int)'
    libckobdfl.a(logwindow.cxx.o): In function `OBDLogWindow::OBDLogWindow()':
    logwindow.cxx:(.text+0x5cc): undefined reference to `Fl_Text_Buffer::Fl_Text_Buffer(int, int)'
    logwindow.cxx:(.text+0x6b0): undefined reference to `Fl_Text_Buffer::Fl_Text_Buffer(int, int)'
    collect2: ld 回傳 1
    make[2]: *** [../bin/obdgui] Error 1
    make[1]: *** [src/gui/CMakeFiles/obdgui.dir/all] Error 2
    make: *** [all] Error 2
    I've already referred http://www.mp3car.com/vbulletin/obdi...er-ubuntu.html, but it's useless.

    Do I loss something?

    Thanks for the effort.

  • #2
    That's weird. What version of ubuntu are you using?

    That problem is the linker not being able to link fltk into the GUI properly. Two things:

    1) If you run "make obdsim", do you see similar errors, or does it build? [obdsim has an fltk module in it too]
    2) If you don't care for the GUI, at least to start, re-run cmake with "-DOBD_DISABLE_GUI=ON" and it'll disable the GUI, allowing everything else to build.

    As for the specific problem, please could you let me know what version of ubuntu you're on [including architecture], and what the output of "fltk-config --version --prefix" is ?

    Gary (-;
    OBDGPSLogger, for logging OBDII and/or GPS data
    OBDSim, an OBDII/ELM327 software simulator
    mp3car forums: obdgpslogger, obdsim

    Comment


    • #3
      Thanks
      I build in ubuntu 9.04 and fltk 1.3.0, and "make obdsim" is OK.

      I want to test my obd reader program, so only needs the obdsim.
      Thanks!

      BTW, I have some questions.

      How to use bluetooth?
      Does the bluetooth support mean that I can use my OBD reader on my cellphone
      to read the information from the simulator through bluetooth interface?

      I already run obdsim successfully, but have no idea about
      how to test my obd reader program on my android cell phone.

      any suggestions?

      Thanks

      Comment


      • #4
        Does the bluetooth support mean that I can use my OBD reader on my cellphone
        to read the information from the simulator through bluetooth interface?
        It *should* be as simple as pairing your phone and your PC [on the PC, set the "enable find me via bluetooth" or whatever it's called, and get the phone to connect to it. Pair the two as described.

        In the source code, I seem to have made a note :
        Code:
        /*
        NOTE
        To use this on my system and advertise it correctly, I ran
           these commands [substitude the hwaddr of your bt chip]:
        
        sudo rfcomm bind 0 00:02:72:14:41:C4 1
        sudo sdptool add SP
        
        */
        Then from the command-line, just pass obdsim the "-b" option. It binds to the first bluetooth interface it can find

        Gary (-;

        EDIT I should probably move that note into the manpage or something - certainly it's not what I'd call easily-findable where it is now
        OBDGPSLogger, for logging OBDII and/or GPS data
        OBDSim, an OBDII/ELM327 software simulator
        mp3car forums: obdgpslogger, obdsim

        Comment


        • #5
          After setting the "enable find me via bluetooth" or whatever it's called, and get the phone to connect to it and enter the code
          sudo rfcomm bind 0 00:02:72:14:41:C4 1
          sudo sdptool add SP
          should I re-make obdsim?

          If needed, type "cmake ..".
          -- Looking for gps_stream
          -- Looking for gps_stream - not found
          -- Did not find gps_stream method in GPSD - assuming version 2 API
          -- Found GPSD: /usr/lib/libgps.so,/usr/lib/libgps.so
          -- Looking for ptsname_r
          -- Looking for ptsname_r - found
          -- Looking for include files HAVE_SIGNAL_H
          -- Looking for include files HAVE_SIGNAL_H - found
          -- Looking for sigaction
          -- Looking for sigaction - found
          -- Looking for signal
          -- Looking for signal - found
          -- Found FFTW3: /usr/lib/libfftw3.so
          -- Found ZLIB: /usr/lib/libz.so
          -- Looking for include files HAVE_SYS_SOCKET_H
          -- Looking for include files HAVE_SYS_SOCKET_H - found
          -- Looking for include files HAVE_NETDB_H
          -- Looking for include files HAVE_NETDB_H - found
          -- Looking for getaddrinfo
          -- Looking for getaddrinfo - not found.
          -- Looking for getaddrinfo
          -- Looking for getaddrinfo - found
          -- Found getaddrinfo. Building socket sim generator
          -- Looking for dlopen
          -- Looking for dlopen - found
          -- Found dlopen. Building dlopen sim generator
          -- Looking for posix_openpt
          -- Looking for posix_openpt - found
          -- Looking for gettimeofday
          -- Looking for gettimeofday - found
          -- Looking for BTPROTO_RFCOMM
          -- Looking for BTPROTO_RFCOMM - not found.
          -- Couldn't find libftdi, required for building obdftdipty
          -- Configuring done
          -- Generating done
          -- Build files have been written to: /home/mark/obdgpslogger-trunk/build
          It still can't find BTPROTO_RFCOMM. QQ
          Therefore, after "make obdsim", i execute "./obdsim -b -g Random 42".
          It shows
          ./obdsim: invalid option -- 'b'
          If not needed (i.e., not re-make), i execute "./obdsim -g Random 42".
          and try to use my android phone to connect computer through Bluetooth.
          It also doesn't work...

          By the way, I use the software, "Torque", which is a famous engine diagnostics application for Android.
          The following is the link for Torque.
          http://android-apps.com/applications/torque/
          Therefore, it may not the problem of software.

          P.S. If my OS is windows, any solutions to use obdsim through bluetooth interface?

          Many thanks for your help!

          Comment


          • #6
            Sorry, I'm a newer in Ubuntu.

            I've already executed the code
            Code:
            sudo rfcomm bind 0 00:02:72:14:41:C4 1
            sudo sdptool add SP
            P.S. What's the meaning of the hwaddr of your bt chip?
            Cellphone or PC?

            Then from the command-line, just pass obdsim the "-b" option. It binds to the first bluetooth interface it can find
            I re-make obdsim and run "obdsim -b -g Random 42".
            The screen says that it can't find this parameter "-b".

            If in Windows, any solution to run on bluetooth?

            Many many thanks for your help!

            Comment


            • #7
              Ah, it won't be able to find "-b" if the bluetooth code wasn't compiled in. You need to install the package "libbluetooth-dev", "bluez-utils" and "bluez" at least:
              Code:
              sudo aptitude install libbluetooth-dev bluez-utils bluez
              Once you've done that, you'll need to re-run the whole build process again [I actually usually recommend deleting your build directory and starting again]

              The hwaddr of your bt chip is the one in your PC, not the one in your phone. IIRC you get it in the output from the command "hcitool dev"

              I never got around to writing a bluetooth sim port for windows

              Gary (-;
              OBDGPSLogger, for logging OBDII and/or GPS data
              OBDSim, an OBDII/ELM327 software simulator
              mp3car forums: obdgpslogger, obdsim

              Comment


              • #8
                Many many thanks for your help!

                Now I can find "-b", but my phone can't connect to PC.
                Maybe the problem is the setting on PC.

                I have no idea about how to set
                on the PC, set the "enable find me via bluetooth" or whatever it's called, and get the phone to connect to it. Pair the two as described.
                .

                I've try send a simple file from my phone to PC through bluetooth, then it's fail.

                How to set PC to "whatever it's called, and get the phone to connect to it"?

                Thanks!

                Comment


                • #9
                  By the way I found after "./obdsim -b"

                  Code:
                  SimPort name: Not yet connected
                  Successfully initialised obdsim, entering main loop
                  10.000060 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000163 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000296 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000085 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000107 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000322 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.001037 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000051 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000323 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000080 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000852 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  10.000146 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                  "SimPort name: Not yet connected" means not connect to bluetooth port?

                  Comment


                  • #10
                    Thanks!
                    I solve the problems and can run!!!!

                    Many many thanks for your help.

                    Comment


                    • #11
                      How do you get this problem solved?

                      I see in the following message that you have solved this problem.
                      However, when I type the command: "./obdsim -b", I have similar output:

                      SimPort name: Not yet connected
                      ...

                      My phone and the laptop are already paired.
                      Would you please tell me how do you get this problem solved? Thanks.

                      Originally posted by markya0616 View Post
                      By the way I found after "./obdsim -b"

                      Code:
                      SimPort name: Not yet connected
                      Successfully initialised obdsim, entering main loop
                      10.000060 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000163 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000296 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000085 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000107 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000322 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.001037 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000051 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000323 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000080 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000852 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      10.000146 seconds. 0 samples, 0 queries. 0.00 s/s, 0.00 q/s
                      "SimPort name: Not yet connected" means not connect to bluetooth port?

                      Comment


                      • #12
                        You probably need to make sure that you've configured your bluetooth port to advertise it's capable of serial comms. It's described in the "bluetooth" section of the manpage:
                        http://icculus.org/obdgpslogger/manp...der/obdsim.txt

                        Gary (-;
                        OBDGPSLogger, for logging OBDII and/or GPS data
                        OBDSim, an OBDII/ELM327 software simulator
                        mp3car forums: obdgpslogger, obdsim

                        Comment

                        Working...
                        X