Tell us if this application works or not

2007-08-21
2013-05-02
<< < 1 2 3 4 > >> (Page 3 of 4)
  • Dirk Haase

    Dirk Haase - 2007-11-25

    Thanks for the info, but why i should spend money in this application if we have bt747. I think with some more tests it should run so well under MacOS as under Windows. But this app show me, that the USB-driver is not installed correct, because i don't have a 'SLAB_USBtoUART'.

     
    • Mario De Weerd

      Mario De Weerd - 2007-11-25

      Hello Dirk

      I agree - I am just providing information to the community.

      bt747 works for some people on a Mac, there is no reason that it can not be made to work for others.

      Concerning the port: I also agree that the driver is likely not installed correctly if you have no such port (or similar one).

       
    • Dale Morris

      Dale Morris - 2008-07-15

      The Travel Recorder Mac Utility seems to have several advantages over BT747 that might justify a non-zero price.  Travel Recorder has a much nicer and better designed interface.  And I easily got it to attach to my unmodified Qstarz BT-Q1000P via Bluetooth, and download a track from it - something that is supposedly possible under BT747 only if you hack your GPS tracking unit.

      I tried using BT747, but the USB serial driver that everyone talks about (http://www.silabs.com/tgwWebApp/public/web_content/products/Microcontrollers/USB/en/mcu_vcp.htm ) isn't there anymore (the page cannot be found).  I tried connecting to my Qstarz with BT747 using Bluetooth, but that didn't work (as expected).  So, the BT747 solution seems to be broken for new folks, unless someone has a pointer to another USB serial driver that will work.

      There are still a lot of settings in Travel Recorder that I don't understand, but the documentation isn't any worse than for BT747.  All in all, it seems that Travel Recorder is quite a bit better, and probably worth the price difference.

      Thoughts?

       
      • Mario De Weerd

        Mario De Weerd - 2008-07-15

        1) BT747's interface packs more functionality and it is the same for PDA and other platforms.
           Any concrete suggestions are welcome, but there is only little feedback on the J2SE interface proposal.
           BT747 has 'incremental download' and 'height correction'.
        2) Connection to a device follows the same rules for all SW.  If the TRMU can connect, BT747 can too.  The same low-level drivers are needed (see 3) ).
        3) Silabs reorganised their site.  You have to get the driver elsewhere: https://www.silabs.com/products/mcu/Pages/USBtoUARTBridgeVCPDrivers.aspx .

         
  • Mario De Weerd

    Mario De Weerd - 2007-11-27

    Info from Poti Giannakouros (potis)  [ I disabled the original message due to length ]

    On OSX, dialogs do not respond reliably to input. Check boxes and pulldown menus 
    require switching tabs to show results of user clicks, fill in boxes require multiple 
    clicks of undetermined pattern before they respond to allow character entry.

    This persists as of bt747 version 1.15.

    java version "1.5.0_06"
    Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_06-112)
    Java HotSpot(TM) Client VM (build 1.5.0_06-64, mixed mode, sharing)

    The following is my trace on doing the following simple task:
    1) Lauch the application
    2) go to the log tab
    3) click the geode difference box -- the box is not checked
    4) go back to the connection tab
    5) return to the log tab to confirm the box was clicked -- the box is checked.
    6) go to the application menu and select exit
    7) confirm exit dialog

    CPU SAMPLES BEGIN (total = 406) Mon Nov 26 20:56:07 2007
    rank self accum count trace method
    1 15.76% 15.76% 64 300675 apple.awt.OSXSurfaceData._finishLazyDrawing
    2 7.64% 23.40% 31 300711 java.io.UnixFileSystem.delete0
    3 4.43% 27.83% 18 300296 java.lang.ClassLoader$NativeLibrary.load
    4 3.69% 31.53% 15 300713 java.io.FileOutputStream.open
    5 3.69% 35.22% 15 300338 apple.awt.CGraphicsEnvironment.loadNativeDirFonts
    6 2.71% 37.93% 11 300686 java.lang.Object.wait
    7 2.71% 40.64% 11 300274 java.lang.ClassLoader.defineClass1
    8 2.46% 43.10% 10 300714 java.io.FileOutputStream.writeBytes
    9 1.97% 45.07% 8 300691 apple.awt.OSXSurfaceData._finishLazyDrawing
    10 1.72% 46.80% 7 300511 apple.awt.CGlobalCursorManager.findHeavyweightUnderCursor
    11 1.72% 48.52% 7 300275 java.lang.ClassLoader.findBootstrapClass
    12 1.23% 49.75% 5 300680 apple.awt.OSXSurfaceData.doLine
    13 1.23% 50.99% 5 300513 apple.awt.CWindow._setVisible
    14 1.23% 52.22% 5 300030 sun.nio.cs.UTF_8$Decoder.decodeArrayLoop
    15 0.74% 52.96% 3 300500 apple.awt.CGraphicsEnvironment.loadNativeFonts
    16 0.74% 53.69% 3 300329 java.util.zip.Inflater.inflateBytes
    17 0.74% 54.43% 3 300687 waba.sys.Vm.getTimeStamp
    18 0.74% 55.17% 3 300503 apple.awt.CWindow._setVisible
    19 0.74% 55.91% 3 300256 java.math.BigInteger.mulAdd
    20 0.49% 56.40% 2 300615 java.math.BigInteger.mulAdd
    21 0.49% 56.90% 2 300693 java.lang.Object.notifyAll
    22 0.49% 57.39% 2 300698 java.lang.System.currentTimeMillis
    23 0.49% 57.88% 2 300611 java.util.zip.ZipFile.getEntry
    24 0.49% 58.37% 2 300344 sun.font.FontManager.initIDs
    25 0.49% 58.87% 2 300679 waba.fx.Graphics.drawHLine
    26 0.49% 59.36% 2 300692 sun.awt.AWTAutoShutdown.setToolkitBusy
    27 0.49% 59.85% 2 300652 apple.awt.CRenderer.doLine

     
    • Poti Giannakouros

      Thank you for the edit Mario. I just wanted to be clear that the issue was not of speed (implying a excessive use of resources) but of no feedback at all unless there were extra interactions with the interface (implying something not happening or not updating in the right order). Maybe 'lag' has been a misleading word, especially given that there was apparently also a speed problem that you have fixed.

       
      • Mario De Weerd

        Mario De Weerd - 2007-11-27

        Hello poti

        It looks like I found something in the Waba environment.  I might go ask the developer of superwaba directly.
        In the following piece of code there is a 'repaintNow' in case of a key press, but a simple 'repaint' in the case of pen down:

           /** Called by the system to pass events to the check control. */
           public void onEvent(Event event)
           {
              if (event.target != this) return;
              switch (event.type)
              {
                 case KeyEvent.ACTION_KEY_PRESS: // guich@550_15
                    checked = !checked;
                    repaintNow();
                    postEvent(new ControlEvent(ControlEvent.PRESSED, this));
                    break;
                 case PenEvent.PEN_DOWN:
                    checked = !checked;
                    repaint();
                    PenEvent pe = (PenEvent)event;
                    if (0 <= pe.x && pe.x < width && 0 <= pe.y && pe.y < height)
                       postEvent(new ControlEvent(ControlEvent.PRESSED, this));
                    break;
              }
           }

         
      • Mario De Weerd

        Mario De Weerd - 2007-11-27

        Hello poti

        Does the application update if you update another field (e.g., trk sep) on the same tab (not changing tabs)?

         
        • Dirk Haase

          Dirk Haase - 2007-11-27

          Here yes. Clicking on another field or button in the same tab, update the geoid-field.

           
          • Mario De Weerd

            Mario De Weerd - 2007-11-27

            Thanks Dirk.  Then the application is at least partially right.

            I've added a timer event to the application in v1.16 that should result in an interface update every 55 ms (according to the documentation).  Let's see if that is true too.

            In the mean time, I did file a 'bug tracker' for SuperWaba (up to them to see if this is a feature or a bug).

             
            • Poti Giannakouros

              Thank you Dirk and Mario,
              The behavior on my machines is as Dirk reported.
              I tried V1.16 on a PowerPC G5
              java version "1.5.0_07"
              Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_07-164)
              Java HotSpot(TM) Client VM (build 1.5.0_07-87, mixed mode, sharing)

              Unfortunately, the behavior persists.

               
              • Mario De Weerd

                Mario De Weerd - 2007-11-28

                OK, then the SuperWaba documentation does not seem 100% correct.
                I'll use the timer to force a screen update on regular intervals.
                That will be in about 10 hours from now.

                 
              • Mario De Weerd

                Mario De Weerd - 2007-11-28

                I've uploaded V1.17 that should update the screen regurarly.

                 
                • Dirk Haase

                  Dirk Haase - 2007-11-28

                  No success here, sorry. :-(

                  Go from Log-Tab to Log, click on Geoid - nothing happens. Go back to Con-Tab again to Log-Tab. Now the field is checked.

                  Dirk

                   
                  • Mario De Weerd

                    Mario De Weerd - 2007-11-28

                    I've been analyzing the (Super)Waba environment.  I now better understand how it works and I do not see an obvious reason why it would not work.

                    The question remaining is, does this happen with all types of control?:

                    Check boxes     (geoid, log format, ... ).
                    Pull down menus (One file, one file/trk, one file/day)
                    Buttons      (Get log)
                    ButtonGroups (TrkPt/WayPt on Fltr tab)
                    Label (position & time on connection tab)
                    Progression bar (update of download status when downloading)

                    I can still imagine a solution, but do I need to implement it for all these controls?

                     
                  • Mario De Weerd

                    Mario De Weerd - 2007-11-28

                    I've changed the strategy a bit and forced a repaint for CheckBoxes and Buttons.
                    If that works, and other items still have problems, I can repeat the same thing for the other elements.

                     
  • Mario De Weerd

    Mario De Weerd - 2007-11-27

    Hello Poti

    I disabled your 'long' message because it was pretty long - I really only need the start of the CPU SAMPLES section.

    It looks like the gui update does not work well for you - I do not have a suggestion for that yet.  It looks like a repaint of the user interface must be force in somecases on MacOS.  I'll have a look at the waba code adn doc to see if that is really needed.
    In the mean time, can you confirm that when connected, the data received from the device appears automatically (especially the position & time on the con tab).

    The change I made in 1.15 does seem to help for Mac - Dirk Haase reported that it works normally without unzipping the jars in that version.

     
  • Chris

    Chris - 2008-11-20

    The J2ME version works on a SonyEricsson K800i phone.
    For details see GpsPasSion Forums, topic 'MTK Loggers - Configuration software - BT747' (starting at page 25 Posted - 11/15/2008 :  21:24:31)

    The PDA version of BT747 works on a HP rx5935.
    For details see GpsPasSion Forums, topic 'MTK Loggers - Configuration software - BT747' (starting at page 26 Posted - 11/18/2008 :  22:37:02)

     
  • Fernando Herrero Peletero

    The J2ME on Nokia N70 works up to version 0.2.22, the 0.2.24 and above do not work (not even start).

     
    • Mario De Weerd

      Mario De Weerd - 2008-11-22

      I am sorry to read that.
      Now the question is - where is the difference?
      Did you perform a delete of the application on your phone and then reinstall it.  I had to do so sometimes on my Nokia (for unknown reason).

       
      • Fernando Herrero Peletero

        The truth is that this is what I thought at first and did not work.

        I tried deleting and without deleting. The version 0.2.22 works both ways, from 0.2.24 to none.

        Unfortunately it does nothing, I try to open the application and it is as if he had not done anything.

         
        • Mario De Weerd

          Mario De Weerd - 2008-11-22

          Hi

          I am looking at the code changes between 0.2.22 and 0.2.24 (svn version 834 and 904, from the SVNVERSION.txt files in my packages).  I can't imagine what is the key difference for you.
          What I know is that in the latest 0.2.34 some of the changes were touched for other reasons.  I suppose that you did try 0.2.34.

          I'll try to find some other hints.

          Below are the differences in the code.  '-' indicates a removed line, '+' indicates an added line.

          Index: BT_J2ME.jad

          --- BT_J2ME.jad    (revision 834)
          +++ BT_J2ME.jad    (revision 904)
          @@ -8,7 +8,7 @@
          MIDlet-Name: BT_J2ME Midlet Suite
          MIDlet-Permissions-Opt: javax.microedition.io.Connector.bluetooth.client,javax.microedition.io.Connector.file.read, javax.microedition.io.Connector.file.write
          MIDlet-Vendor: Mario De Weerd
          -MIDlet-Version: 0.2.22
          +MIDlet-Version: 0.2.24
          MicroEdition-Configuration: CLDC-1.1
          MicroEdition-Profile: MIDP-2.0
          Mot-MIDlet-Idle-Icon: /Icon-2b-32.png
          Index: src/net/sf/bt747/j4me/app/ConvertToScreen.java
          ===================================================================
          --- src/net/sf/bt747/j4me/app/ConvertToScreen.java    (revision 834)
          +++ src/net/sf/bt747/j4me/app/ConvertToScreen.java    (revision 904)
          @@ -35,7 +35,7 @@
               /**
                * Select whether height must be corrected or not.
                */
          -    private CheckBox cbHeightCorrection;
          +    private RadioButton rbHeightCorrection;

               /**
                * Select the time in minutes that will separate a track.
          @@ -142,10 +142,26 @@
                       rbFiles.setSelectedIndex(c.getModel().getOutputFileSplitType());
                       append(rbFiles);

          -            cbHeightCorrection = new CheckBox();
          -            cbHeightCorrection.setLabel("Correct Height");
          -            cbHeightCorrection.setChecked(c.getModel().isConvertWGS84ToMSL());
          -            append(cbHeightCorrection);
          +            rbHeightCorrection = new RadioButton();
          +            rbHeightCorrection.append("Automatic height");
          +            rbHeightCorrection.append("Keep height");
          +            rbHeightCorrection.append("WGS84 to MSL");
          +            rbHeightCorrection.append("MSL to WGS84");
          +            switch(c.getModel().getHeightConversionMode()) {
          +            case Model.HEIGHT_AUTOMATIC:
          +                rbFiles.setSelectedIndex(0);
          +                break;
          +            case Model.HEIGHT_NOCHANGE:
          +                rbFiles.setSelectedIndex(1);
          +                break;
          +            case Model.HEIGHT_WGS84_TO_MSL:
          +                rbFiles.setSelectedIndex(2);
          +                break;
          +            case Model.HEIGHT_MSL_TO_WGS84:
          +                rbFiles.setSelectedIndex(3);
          +                break;
          +            }
          +            append(rbHeightCorrection);

                       tbTrackSeparation = new TextBox();
                       tbTrackSeparation.setForNumericOnly();
          @@ -177,7 +193,20 @@
                   ConvertToProgressScreen progressScreen;
                   c.getAppModel().setSelectedOutputFormat(getSelectedLogType());
                   c.setOutputFileSplitType(rbFiles.getSelectedIndex());
          -        c.setConvertWGS84ToMSL(cbHeightCorrection.isChecked());
          +        switch (rbHeightCorrection.getSelectedIndex()) {
          +        case 0:
          +            c.setHeightConversionMode(Model.HEIGHT_AUTOMATIC);
          +            break;
          +        case 1:
          +            c.setHeightConversionMode(Model.HEIGHT_NOCHANGE);
          +            break;
          +        case 2:
          +            c.setHeightConversionMode(Model.HEIGHT_WGS84_TO_MSL);
          +            break;
          +        case 3:
          +            c.setHeightConversionMode(Model.HEIGHT_MSL_TO_WGS84);
          +            break;
          +        }
                   c.setTrkSep(Integer.parseInt(tbTrackSeparation.getString()));
                   c.setBooleanOpt(Model.IS_HOLUXM241, rbDevice.getSelectedIndex() == 1);
                   int index = 0;
          Index: src/net/sf/bt747/j4me/app/MainScreen.java
          ===================================================================
          --- src/net/sf/bt747/j4me/app/MainScreen.java    (revision 834)
          +++ src/net/sf/bt747/j4me/app/MainScreen.java    (revision 904)
          @@ -9,8 +9,8 @@
          //***  INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY, FITNESS  ***
          //***  FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY    ***
          //***  EXCLUDED. THE ENTIRE RISK ARISING OUT OF USING THE SOFTWARE ***
          -//***  IS ASSUMED BY THE USER. See the GNU General Public License  ***
          -//***  for more details.                                           ***
          +//***  IS ASSUMED BY THE USER.                                     ***
          +//***  See the GNU General Public License Version 3 for details.   ***
          //***  *********************************************************** ***
          package net.sf.bt747.j4me.app;

          @@ -126,8 +126,8 @@
                   setMenuText("Logger Menu", "App Menu");

                   downloadLogScreen = new LogDownloadScreen(c, this);
          -        loggerInfoScreen = new DelayedDialog(LoggerStatusScreen.class, c,
          -                this, this);
          +        loggerInfoScreen = new DelayedDialog(LoggerStatusScreen.class, c, this,
          +                this);
                   logScreen = new LogScreen(this);
                   debugConfigScreen = new DebugConfigScreen(c, this);
                   initialiseGPSAlert = new InitializingGPSAlert(c, this);
          @@ -255,14 +255,14 @@
               /**
                * Get the application model
                *
          -     * @return Reference to applicaiton model object.
          +     * @return Reference to application model object.
                */
               private final AppModel m() {
                   return c.getAppModel();
               }

               /**
          -     * When true, the apllication waits until the erase is done (when erase is
          +     * When true, the application waits until the erase is done (when erase is
                * ongoing).
                */
               private boolean waitErase;
          @@ -447,60 +447,60 @@
                   if (keyCode == DeviceScreen.RIGHT) {
                       rootMenu.show();
                   } else {
          -            super.keyPressed(keyCode);
          +            switch (keyCode) {
          +            case DeviceScreen.KEY_NUM0:
          +                c.logImmediate(BT747Constants.RCR_APP0_MASK);
          +                hightlightLabel(0);
          +                break;
          +            case DeviceScreen.KEY_NUM1:
          +                c.logImmediate(BT747Constants.RCR_APP1_MASK);
          +                hightlightLabel(1);
          +                break;
          +            case DeviceScreen.KEY_NUM2:
          +                c.logImmediate(BT747Constants.RCR_APP2_MASK);
          +                hightlightLabel(2);
          +                break;
          +            case DeviceScreen.KEY_NUM3:
          +                c.logImmediate(BT747Constants.RCR_APP3_MASK);
          +                hightlightLabel(3);
          +                break;
          +            case DeviceScreen.KEY_NUM4:
          +                c.logImmediate(BT747Constants.RCR_APP4_MASK);
          +                hightlightLabel(4);
          +                break;
          +            case DeviceScreen.KEY_NUM5:
          +                c.logImmediate(BT747Constants.RCR_APP5_MASK);
          +                hightlightLabel(5);
          +                break;
          +            case DeviceScreen.KEY_NUM6:
          +                c.logImmediate(BT747Constants.RCR_APP6_MASK);
          +                hightlightLabel(6);
          +                break;
          +            case DeviceScreen.KEY_NUM7:
          +                c.logImmediate(BT747Constants.RCR_APP7_MASK);
          +                hightlightLabel(7);
          +                break;
          +            case DeviceScreen.KEY_NUM8:
          +                c.logImmediate(BT747Constants.RCR_APP8_MASK);
          +                hightlightLabel(8);
          +                break;
          +            case DeviceScreen.KEY_NUM9:
          +                c.logImmediate(BT747Constants.RCR_APP9_MASK);
          +                hightlightLabel(9);
          +                break;
          +            case DeviceScreen.KEY_STAR:
          +                c.logImmediate(BT747Constants.RCR_APPY_MASK);
          +                hightlightLabel(10);
          +                break;
          +            case DeviceScreen.KEY_POUND:
          +                c.logImmediate(BT747Constants.RCR_APPZ_MASK);
          +                hightlightLabel(11);
          +                break;
          +            default:
          +                super.keyPressed(keyCode);
          +                break;
          +            }
                   }
          -        switch (keyCode) {
          -        case DeviceScreen.KEY_NUM0:
          -            c.logImmediate(BT747Constants.RCR_APP0_MASK);
          -            hightlightLabel(0);
          -            break;
          -        case DeviceScreen.KEY_NUM1:
          -            c.logImmediate(BT747Constants.RCR_APP1_MASK);
          -            hightlightLabel(1);
          -            break;
          -        case DeviceScreen.KEY_NUM2:
          -            c.logImmediate(BT747Constants.RCR_APP2_MASK);
          -            hightlightLabel(2);
          -            break;
          -        case DeviceScreen.KEY_NUM3:
          -            c.logImmediate(BT747Constants.RCR_APP3_MASK);
          -            hightlightLabel(3);
          -            break;
          -        case DeviceScreen.KEY_NUM4:
          -            c.logImmediate(BT747Constants.RCR_APP4_MASK);
          -            hightlightLabel(4);
          -            break;
          -        case DeviceScreen.KEY_NUM5:
          -            c.logImmediate(BT747Constants.RCR_APP5_MASK);
          -            hightlightLabel(5);
          -            break;
          -        case DeviceScreen.KEY_NUM6:
          -            c.logImmediate(BT747Constants.RCR_APP6_MASK);
          -            hightlightLabel(6);
          -            break;
          -        case DeviceScreen.KEY_NUM7:
          -            c.logImmediate(BT747Constants.RCR_APP7_MASK);
          -            hightlightLabel(7);
          -            break;
          -        case DeviceScreen.KEY_NUM8:
          -            c.logImmediate(BT747Constants.RCR_APP8_MASK);
          -            hightlightLabel(8);
          -            break;
          -        case DeviceScreen.KEY_NUM9:
          -            c.logImmediate(BT747Constants.RCR_APP9_MASK);
          -            hightlightLabel(9);
          -            break;
          -        case DeviceScreen.KEY_STAR:
          -            c.logImmediate(BT747Constants.RCR_APPY_MASK);
          -            hightlightLabel(10);
          -            break;
          -        case DeviceScreen.KEY_POUND:
          -            c.logImmediate(BT747Constants.RCR_APPZ_MASK);
          -            hightlightLabel(11);
          -            break;
          -        default:
          -            break;
          -        }
               }

               /**
          @@ -517,7 +517,7 @@
                   resetLabels();
               }

          -    DeviceScreen interruptedScreen = null;
          +    private DeviceScreen interruptedScreen = null;

               /**
                * Call back from the GPS Model to provide data.
          Index: src_j4me/src/org/j4me/ui/DeviceScreen.java
          ===================================================================
          --- src_j4me/src/org/j4me/ui/DeviceScreen.java    (revision 834)
          +++ src_j4me/src/org/j4me/ui/DeviceScreen.java    (revision 904)
          @@ -796,7 +796,7 @@
                *            is the <code>Graphics</code> object to paint with.
                * @param left
                *            is the text to write on the left side of the menu bar. The
          -     *            left side is associated with dimissing input such as a
          +     *            left side is associated with dismissing input such as a
                *            "Cancel" button.
                * @param highlightLeft
                *            is <code>true</code> if the menu text <code>left</code>

           
    • Mario De Weerd

      Mario De Weerd - 2008-11-23

      I made a change that will hopefully show the error message (BT_J2ME_0_2_35.zip ).  And that hopefully helps us further.

       
      • Fernando Herrero Peletero

        I'm test the 0.2.35 and not work on my Nokia N70 :(

         
<< < 1 2 3 4 > >> (Page 3 of 4)

Log in to post a comment.