What is data logging?

posted 10 Apr 2017, 08:56 by Planet Coops   [ updated 3 Aug 2017, 05:40 ]

The data logging/tracking feature is described on pages 29-31 of the user guide, http://www.planetcoops.com/apps/taximeter/taximeter.pdf and is currently only available on Android devices. 
The data logging feature costs a $1 per registered device per month with a minimum monthly cost of $10.  This is to help towards our hosting and mapping costs.  We will invoice for this monthly in advance by PayPal.

Once registered, we will issue you with a:
  • log key which you enter into each device under Menu > Settings > Data log settings > Log key and then check Enable data logging to turn it on.  Set the AVL interval (GPS position updates) and Upload interval to appropriate values.  The shortest update interval is 30 seconds.
  • username and password which you can use to sign into the tracking website.

The tracking and logging history are available by signing into https://datalog.planetcoops.com/tracking with the username and password we provide.  Note that the server will automatically delete any data more than a week old.

Please remember to set values under Menu > Settings > Operator settings > Driver's badge number and Vehicle identification number (e.g. plate) so that you can distinguish each vehicle in the tracking and history logs.

Are there any settings needed to comply with the BC, Canada soft meter rule?

posted 19 Mar 2017, 05:54 by Planet Coops   [ updated 30 Mar 2017, 11:52 ]

In order to comply with the British Columbia Passenger Transportation Board's BC Taxi Soft Meter Rule, please set your Operator name (taxi company name) and Vehicle identification number (unique taxi ID) under Menu > Settings > Operator settings.  As of Taximeter version 1.1.59, this information will appear on receipts and in the fare announcements at the start and end of the hire when the fare is totalled.

Unable to send a test email: Bad email username or password

posted 7 Apr 2016, 12:16 by Planet Coops   [ updated 11 Apr 2017, 00:20 ]

If you receive the following error while testing your Gmail settings in Taximeter:

Unable to send a test email: Bad email username or password

and you are confident that you are using the correct <user>@gmail.com username and password, then head over to Account Security Settings (https://www.google.com/settings/security/lesssecureapps) for the Gmail account in question and enable "Access for less secure apps".  This allows you to use the Google SMTP mail server for clients other than the official ones and would appear to resolve this issue.  Note that Taximeter securely connects to the Gmail SMTP server on port 465 using a TLS encrypted link.  You might have to wait up to an hour for the setting to take effect as it's rolled out across Google's infrastructure.

Taximeter API - Final Fare

posted 17 Mar 2016, 12:23 by Planet Coops   [ updated 19 Mar 2017, 05:59 ]

Where integrators have made mistakes in the past is in the way in which they've tried to capture the final fare information at the end of the ride.  Developers made assumptions that STOPPED mode indicates the end of the ride.  A transition to STOPPED does not indicate the end of the hire.  When STOPPED the meter will continue to calculate the fare based on distance only.  STOPPED mode doesn't imply END, it simply turns the time meter off.  The meter can be placed back into HIRED mode resuming the time meter.  It is only the transition from STOPPED to FOR HIRE that confirms the end of the hire.  To make it easy to detect this transition, Taximeter broadcasts an intent with extras containing the final fare information.  The correct way to pick up the values at the end of the ride (at the transition from STOPPED to FOR HIRE mode) is to register a broadcast receiver for an intent with the "com.planetcoops.intent.action.TAXIMETER_CHARGE" action which is broadcast when the ride ends, see DemoActivity.java in the Taximeter API Sample Project, e.g.

private static final String TAXIMETER_CHARGE_BROADCAST = 
                                                "com.planetcoops.intent.action.TAXIMETER_CHARGE";
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {

@Override
public void onReceive(Context context, Intent intent) {
// currency, see ITaximeterService.getCurrency()
String currency = intent.getStringExtra("currency"); //NON-NLS

/*
* !! USE THIS TECHNIQUE TO CAPTURE THE FINAL VALUES CHARGED AT THE END OF THE HIRE !!
*
* The TAXIMETER_CHARGE Intent is broadcast when a charge is made (on transition
* from STOPPED to FOR HIRE modes) and will carry the final values for the hire.
*/
if (TAXIMETER_CHARGE_BROADCAST.equals(intent.getAction())) {
// TAXIMETER_CHARGE intent
Log.i(TAG, String.format(
                    "Taximeter Charge:
\nExtras: %s%.2f\nFare: %s%.2f\nTax: %s%.2f\n" +
                    "Total: %s%.2f
\nDiscount: %s%.2f\nTip: %s%.2f\n",
currency,
intent.getDoubleExtra("chargeable_extras", 0d),
currency,
intent.getDoubleExtra("chargeable_fare", 0d),
currency,
intent.getDoubleExtra("tax", 0d),
currency,
intent.getDoubleExtra("total_fare", 0d),
currency,
intent.getDoubleExtra("discount", 0d),
currency,
intent.getDoubleExtra("tip", 0d)
));
}
<snip/>
// Receive Taximeter updates
IntentFilter filter = new IntentFilter();
filter.addAction(TAXIMETER_CHARGE_BROADCAST); // Chargeable values
registerReceiver(mReceiver, filter);

How does the meter work?

posted 7 Mar 2016, 08:02 by Planet Coops   [ updated 7 Mar 2016, 08:05 ]

Let's explain how the soft meter works out the fare using the following tariff as an example.

    TARIFF 1
    BY DISTANCE for the first 220yds or part thereof ......$3.25
    For any succeeding 220yds or part thereof ................25c ($2.00 per mile)
    WAITING TIME - for every 29s or part thereof .............25c (52c per minute)


The meter charges for each section of the taxi ride in advance.  This is why the meter shows $3.25, the flag fall, even if you've not moved off yet.

In the conventional mode of operation when the meter is first put into HIRED mode, it charges $3.25, which buys either 220 yards of distance or 29 seconds of waiting time.

If you cover 220yds in less than 29s the meter will increment due to distance, if 29s pass before covering 220yds the meter will increment due to time.

Each subsequent 25c charge will buy either 220 yards or 29 seconds of waiting time.  Once again, if you cover 220yds in less than 29s the meter will increment due to distance, if 29s pass before covering 220yds the meter will increment due to time.

There is a speed at which your 25c is used up at exactly the same rate regardless of whether you calculate it by distance (220 yards) or time (29 seconds).  This is called the changeover speed and the meter uses up the 25c at the rate of 25c per 29 seconds below it, and 25c per 220 yards above it.

The changeover speed is worked out as:
   
    unit distance / unit time = 220yds / 29s = 7.59 yds/s to convert to mph we multiply by 2.04545 = 15.5 mph
   
What this means is that, above 15.5 mph, it doesn't make any difference what speed the taxi moves at, it costs 25c for each 220 yards.  However, below 15.5 mph, it costs 25c for each 29 seconds.

This is why the same journey can cost a slightly different amount, depending on any waiting time.

If you enable Menu > Settings > Custom preset settings > Charge distance and time concurrently, then every 220yds AND 29s the meter will increment.  In this mode of operation, the meter is charging for both distance AND time.  This setting is often used with the Use speed determined waiting time setting so that the time meter only ticks when travelling below a specified GPS/OBD speed threshold.

We hope that makes sense.

I am unable to get my OBD2 adapter to connect with the app it is blinking on SPD and says "Waiting for OBD...", do you have any help on this issue?

posted 30 Oct 2015, 08:21 by Planet Coops   [ updated 18 Jul 2017, 03:59 ]

The connection eventually timed out with the following message:


When we examined the diagnostic logs we found the following entries:

10-29 17:06:52.837 E/ObdCommand(28156): 01 0D
10-29 17:06:52.837 E/ObdCommand(28156): SEARCHING...
UNABLETOCONNECT


This indicates that the adapter was unable to connect to the vehicle's ECU.  Usually this is the result of not having had the ignition turned to position 2 but in this case the ignition was in position 2 with the engine running so what went wrong?

It transpires that the majority of cheap Chinese OBD2 adapters you will find on eBay are missing the components needed to support the pre-2008 OBD2 protocols SAE J1850 VPW, and SAE J1850 PWM.  In this case the vehicle was a 2006 Dodge Caravan which uses the SAE J1850 VPW protocol.

All cars sold in the US from 2008 onwards must support the ISO 15765-4 CAN protocol so these adapters generally work with these vehicles but before then, GM/Chrysler/Dodge and Ford tended to make use of the J1850 VPW and J1850 PWM protocols respectively.  You can read about the missing components here:  http://torque-bhp.com/forums/?wpforumaction=viewtopic&t=5155.0

If you are considering purchasing a cheap Chinese adapter and your car is pre-2008, check with the supplier that it is compatible with your make, model, and year of vehicle.

How does volume licensing work?

posted 22 Oct 2015, 03:09 by Planet Coops   [ updated 25 Aug 2017, 04:55 ]

Please note that volume licensing is only available for the Android™ version of Taximeter.  Unfortunately, Apple will not permit us to provide a similar facility for the iOS™ version.

How it works
We supply you with a volume license key (VLK) and the current version of the Taximeter APK file which you would then install on each device (see http://www.cnet.com/uk/how-to/how-to-install-apps-outside-of-google-play/) .  The VLK is simply a case-sensitive string of characters which needs to be entered on each device.  The VLK will activate a predetermined number of devices which can be increased as and when required.  The activation is associated with each device and is not transferable.
  Warning: Performing a factory reset or installing the app under a new user account (on devices which support multiple users) will cause its device identifier to be regenerated.  Reinstalling the app on a device which has been OTA upgraded to Android O or later may also generate a new device identifier.  As a consequence, a previously activated device will no longer be recognized by our licensing server and a new activation will be required.

Before entering the VLK, make sure you that you have an active internet connection, Wi-Fi or mobile data.  When you first run the app after installing the APK, the app will display the following alert complaining that the license check failed:


At this point, press the Enter key button and enter the VLK.  Once you've correctly entered the key, you will need to exit and restart the app.

If you have already downloaded and installed Taximeter from the Google Play Store or install the APK using a licensed Google account and want to run it simultaneously on multiple devices, then the procedure is slightly different.  With an active internet connection, open the app on each device and navigate to Menu > Settings > Operator settings > Set volume license key (VLK).  Enter the key here then exit (Menu > Exit) and restart the app.

You can easily check whether a device has been successfully activated.  We append a "+" to the version information in the Menu > About screen to indicate that the app is volume licensed.

As per Google Play Licensing, the app will need to be started once a week with an active Wi-Fi/data connection present to avoid the "Application not licensed" alert appearing see http://www.planetcoops.com/faqs/notlicensed.

Payment
We will invoice separately for the VLK using PayPal.

Why does Taximeter exit with a "Concurrent session detected!" alert? I've paid for the app and I'm furious!

posted 15 Oct 2015, 09:19 by Planet Coops   [ updated 20 May 2016, 10:50 ]

The End User License Agreement (EULA) which you either accept or refuse when the app is first run, states that, "You may not: use the software on more than one device at a time".  For each app purchased from the Google Play Store, you may install it on multiple devices but you may only run it on one device at a time.  If Taximeter detects that you are using a single license on more than one device at a time, it will exit with the message, "The license is being used by another device. This session will now exit".

We appreciate that this will be fraustrating for those of you who have been using Taximeter in breach of the EULA but please try and see it from our point of view. If you paid once for the app and then use it in 10 cabs we're simply not going to survive.  Please contact us to discuss volume licensing options.  We can issue you with a volume license key which you can enter under Menu > Settings > Operator settings > Set volume license key (VLK).  Thank you for your understanding.

Can I run Taximeter on multiple devices?

posted 15 Oct 2015, 08:49 by Planet Coops   [ updated 23 Feb 2016, 03:16 ]

The End User License Agreement (EULA) which you either accept or refuse when the app is first run, states that, "You may not: use the software on more than one device at a time"For each app purchased from the Google Play Store, you may install it on multiple devices but you may only run it on one device at a time.

If you would like to run Taximeter concurrently on multiple devices, you could either purchase the app using different Google accounts from the Google Play Store or contact us at sales@planetcoops.com to purchase a volume license key, see How does volume licensing work?.

Why is Taximeter "Waiting for a valid GPS fix..." when I have a GPS position fix in Google Maps?

posted 4 Jul 2014, 04:06 by Planet Coops   [ updated 19 Mar 2017, 06:30 ]

Taximeter requires a much higher GPS accuracy than Google Maps to get going.  Regular inaccurate position updates within Google Maps are of no consequence (does it really matter if your position is out by up to 100 meters?), but the same cannot be said about a meter app which has to sum the distance between those inaccurate position updates.  This is why you may have a position fix but if the accuracy of that position is worse than 20m, it's just not good enough for an accurate GPS taximeter.

Make sure your handset has a clear view of the sky.  Inside a vehicle, it helps if the handset is placed in a windscreen mount.  Once the accuracy of the fix has reached the initial GPS accuracy the message will clear.  Taximeter can then be placed into HIRED mode.

If you use the free GPS Status app, https://play.google.com/store/apps/details?id=com.eclipsim.gpsstatus2&hl=en  , what value does it give you for the Error field?  Taximeter needs an Error of between 1m and 20m to have a "valid fix" (a value of 0 means your particular device has no GPS accuracy value).

If the Error value is between 20m and 40m, you could lower the initial accuracy needed from within Taximeter using Menu > Settings > GPS settings > Initial GPS accuracy to 40m, although we wouldn't recommend that you do this.  With the U.S. government’s removal of Selective Availability (SA) back in May 2000, all GPS devices should be capable of achieving an accuracy of 20 metres or better.

If the built in GPS receiver cannot provide updates of a high enough quality, i.e. an error of 20m or better and the device is still under warranty we would suggest that you ask your supplier for a replacement.  Unfortunately some of the cheap Chinese devices either have inherently poor quality GPS hardware or radios which suffer from interference with other components.  If your device supports Bluetooth, another option would be to try an external Bluetooth GPS receiver or Bluetooth OBD-II adapter.  These can be added under Menu > Settings > GPS settings > GPS Bluetooth device and Menu > Settings > OBD settings > Bluetooth device respectively.  We have tested GPS receivers from Garmin,
Holux, Navilock, Qstarz, and TomTom.  Ideally look for a GPS receiver that offers a 10Hz mode and is SBAS enabled (supports WAAS, EGNOS, MSAS) as this will offer the best position accuracy.

1-10 of 12