< i

Your Questions for Us

This page is intended to facilitate communication and provide support to development partners for GPSoverIP/DATAoverIP and HLD.

Please use it to communicate directly with the GPSoverIP GmbH development team. Inquiries submitted through this page will be processed with higher priority.

Feel free to ask us questions
here

Creating a web share succeeds—editing a returned web share fails—create a new web share instead

Creating a web share succeeds—editing a returned web share fails—create a new web share instead

Hello,

As part of my own web platform, I manage a database for a client who has been regularly retrieving data via API for years.

Now a new idea has come up:

1. Use “Create/Edit Web Share” to create a one-time web share for each database user, and store the ticket, webaccessid, and key in the master data.

2. Throughout the season, repeatedly update these entries with device ID entries so that the user can, for example, access the data for the vehicle they’ll be taking over next for 24 hours.

According to the documentation, this should be possible. The difference between “New” and “Edit”:

> webaccessid: ID of the web access to be edited. Leave blank to create a new web access.

If the webaccessid field is left blank, a new ticket and a new webaccessid are correctly created, and the email is sent. Creating a new entry works.

However, any attempt to update using the provided `webaccessid` and `key` results in a new entry being created instead of updating the existing one: a new `webaccessid` and a new `key` are returned.

This would lead to various problems over the course of the season. The URL for the request would constantly change.

Is my request incorrect, so that the webaccessid and/or key were not recognized? Or is this simply not possible in principle?

P.S.: Just tested it again (11:29): First ticket: 195543477. Second call with the new ticket and the key—new ticket 195543603 instead of updating the first ticket.

Best regards
, Jürgen Auer

 

Hello Mr. Auer,
thank you for your inquiry. You have encountered an error in our API documentation. The parameter was incorrectly documented there as "webaccessid." However, it is simply called "id." We have updated the documentation accordingly and thank you for bringing this to our attention!

If you pass the ticket/WebAccess ID via “id,” updating an existing WebAccess should work.

Best regards,
the GPSoverIP team!

Sending Routes Without Coordinates

Sending Routes Without Coordinates

Dear Sir or Madam,
we would like to send routes to our GPSauge IN1 devices. However, we don’t have coordinates for the tour stops—we “only” have the mailing addresses. How should we proceed to send the tours to the devices in their entirety? Where do we need to enter the addresses? And do they need to be broken down?

 

Hello!

If no coordinates are provided for the route points (rtept) in the GPX package, you typically need to specify address components via
extensions->[street|houseNumber|city|code|country]. These components are then used for geocoding.

It’s also possible to perform geocoding of the addresses via extensions->address. Using this extension, you can provide an address string such as “Schweinfurt Central Station” or “Hauptbahnhofstraße 2, 97424 Schweinfurt.”

Of course, the more precise the address string, the more accurate the geocoding will be.

Feel free to test the tour dispatch using the “extensions->address” option and provide us with feedback. You can find a sample GPX file in the Job/Tour API documentation or at the following link:

media.24stundenonline.de/repo/tour.xml

This file illustrates all possible ways to pass in tour stops (with coordinates but no addresses, with addresses but no coordinates, etc.).

Best regards,
Your GPSoverIP Team.

General Use of the API + Address Management

General Use of the API + Address Management

Hello,
I'm having trouble understanding how to use your API. What is apiutils.php, and where can I find it? How should API requests be structured, for example, in PHP? As a first step, I'd like to establish a simple connection and test the API's general functionality. In the next step, I’d like to import our address database into your system. How should I go about this?

Thank you and best regards!

 

Hello,

APIUtils is not required per se to use the GPSoverIP API documented at www.stage.gpsauge.de/anbindung/api. It can be easily accessed via HTTP requests with the appropriate parameters (e.g., module, action, user, device, ...).

For example, the list of all GPS devices associated with a GPS account can be retrieved via the following URL:

www.apioverip.de

Please note the placeholders in square brackets, which must, of course, be replaced accordingly.

Parameter tip
: - nozlib=1|0 enables/disables GZip compression of the response (recommended: 1)
- format=json returns the response in JSON format

Saving an Address:

To save an address, please follow these steps:

Send a POST request to www.apioverip.de, e.g., via CURL

Key-value parameters:

module:geoobject
action:set
nozlib:1 1 = Response without additional GZip compression (recommended)
format:json Response in JSON format
user:[YOUR_GPS_ACCOUNT]
pwd:[YOUR_GPS_ACCOUNT_PASSWORD]
type:address
name:R1BTb3ZlcklQIEdtYkg= Matchcode, required field, base64, freely selectable name, e.g., the company name
address1:R1BTb3ZlcklQIEdtYkg= Company name, optional, base64, freely selectable
street:SGF1cHRiYWhuaG9mc3RyYd9l Street name, required field, base64
housenumber:2 house number, required field, base64
city: U2Nod2VpbmZ1cnQ= city, required field, base64
code:97424 ZIP code, required field, base64
country:DE country, required field, base64
uniqueid:QUJDMTIzLTQ1Ng== External ID, optional, base64, freely selectable. Here you can specify
the ID of the address in your system geoobjectid:195429487 GEO object ID, optional. Set: The GEO object with this ID is updated; not set: A new GEO object is created

Response:

{
"return": -1,
"success": true,
"data": {
"id": 195429487
}
}

The ID returned under "data" can then be used to subsequently modify the created GEO object (see above) or delete it (via geoobject->delete).

Listing all addresses:

To obtain a list of all saved addresses, please proceed as follows:

GET request www.apioverip.de]

Deleting an address:

To delete a saved address, please follow these steps:

GET request www.apioverip.de]

Please note: If you plan to create a large number of addresses this way initially, I recommend taking a short "breather" of perhaps 500–1,000 milliseconds (or even longer) between individual requests, as otherwise you may be blocked by our API security mechanisms due to an excessive number of requests in too short a time.

Best regards,
Your GPSoverIP Team

Theft Protection Rule Is Being Eliminated

Theft Protection Rule Is Being Eliminated

Hello!
I created an anti-theft rule for my vehicles in GPS-Explorer Web. It triggered reliably, but then disappeared without a trace. Why did this happen? Is this a bug?

 

Hello!

The anti-theft rules are intentionally deleted as soon as they’ve been triggered. This means they can’t be reactivated because they disappear after being triggered. So the theft protection must be set up again each time. This makes sense because only you, as the user, can specify the vehicle’s location that should be monitored.

However, setting up the rule only takes a few steps:

1. Vehicle list, context menu: "Alarms and Rules..." -> "Theft Protection"
2. Enter
rule name, cell phone number, and/or email address 3. Save

--> Notes:

- The “Time-Based Activation” option does not need to be enabled. It is only needed if the rule is to be active only during specific times. If it is to monitor 24/7, the option can simply be set to “off.”

- The cell phone numbers to be notified can all be entered in a single rule, separated by commas

Best regards,
Your GPSoverIP GmbH Team

Problems Retrieving Vehicle Locations via the API

Problems Retrieving Vehicle Locations via the API

Dear Sir or Madam,
In the absence of other information, I am basing my inquiry on an example from your website:
www.stage.gpsauge.de

Integration --> API --> Public Modules --> Devices, Vehicle Tracking, and Status --> More Info --> Retrieve Location Including Driver and Status (mode=cars|contacts|positions)

<?php
include("./include/gpsapi/apiutils.php";
$arr = array();
$arr["module"] = "devices";
$arr["action"] = "get";
$arr["user"] = "user";
$arr["pwd"] = "secret";
$arr["mode"] = "positions";
$arr["deviceid"] = "123456";
$arr["nameonly"] = "0";
$arr["format"] = "json";
$arr["plainpos"] = "1";
$result = apiGetData($arr);
$result = apiUnzip($result);
if (apiReturn($result))
echo "SUCCESS!";
else
echo "ERROR";
?>
I integrated this API into a small program and noticed the following:
The following parameters do not work:
$arr["action"] = "get";
$arr["mode"] = "positions";
$arr["deviceid"] = "213059";
$arr["nameonly"] = "0";
$arr["plainpos"] = "1";
Service URL according to your website: live.apioverip.de
This URL is incorrect!
The correct URL is: www.apioverip.de
Here is an excerpt from a PHP program that works:
<?php
$url = "https://www.apioverip.de/";
$user = "253483";
$pwd = $GPSAUGEKEY;
$arr = array();
$arr["module"] = "devices";
$arr["action"] = "list";
// $arr["action"] = "get"; // doesn't
work $arr["user"] = $user;
// $arr["mode"] = "positions"; // doesn't work//
$arr["plainpos"] = "1"; // doesn't
work $arr["pwd"] = $pwd;
$arr["nozlib"] = "1";
$arr["format"] = "json";
$qs = http_build_query($arr);
$url = $url . '?' . $qs;
echo $url . PHP_EOL . PHP_EOL;
// get the JSON response
$resp_json = file_get_contents($url);
$myfilename = 'GPSauge_test.json';
file_put_contents($myfilename, $resp_json);
?>

However, this program returns all sorts of information, but the specific data I need is missing
: the current position of each vehicle in latitude and longitude:
lat=49.27193
lon=7.16456
49.27193, 7.16456

This allows me to view the location and navigate using Google, OpenStreetMap, Bing, and HERE. I can even easily search within a certain radius and calculate the optimal route. With 20 stops on the route, the Traveling Salesman Problem isn’t an issue.
Is it possible to obtain a valid description of the API parameters, since the information on your website is incorrect?
Is it possible to retrieve the current longitude and latitude for each vehicle in the JSON file, as described above?

Sincerely,
Dieter S.

 

Dear Mr. S.,
the live positions of your GPSaugen can be retrieved as described in the
documentation via:

live.apioverip.de

This URL provides the current location of all GPSaugen devices in
your GPS account. The domain live.apioverip.de is correct.

If you are not using the APIUtils helper library, you
can simply add another URL parameter to the URL:

&nozlib=1

This parameter ensures that the response is not compressed and
can therefore be parsed directly.

Using the optional parameter

&deviceid=[GPS-TrackerID]

you can limit the query to a specific GPSauge. Please note
that this GPSauge must, of
course, be assigned to your GPS account.

Best regards,
Your GPSoverIP Development Team.

www.apioverip.de / The API action hld->list cannot be filtered by "read status"

www.apioverip.de / The API action hld->list cannot be filtered by "read status"

Hello

.We are already using APO with our customers to import tachograph data into our TachoPlus software.
The process we’ve been following so far is as follows:
We first retrieve
all files using the Action list.We download the individual files using get
. We then delete the file using delete so that it won’t be

retrieved again the next time. In my opinion, there should be an Action method called set_read that marks the file as read. Unfortunately,however, the `list` method does not include a filter to exclude files that have already been read.
How was this intended to work?


Best regards

,Marcel W.

 

Hello Mr. W.,
as you correctly surmised, the “set_read” action can be used to mark a record as “read.” The “list” action filters the result set according to the parameter value using the additional parameter “&read=0” (0 = unread, -1 = read).

Best regards,
Your GPSoverIP Team

 

Hello

It works as described. Thank you very much!

Best regards
, Marcel W.

API Interface

API Interface

Good morning

I’m working on API integrations here at our company for providers that our customers use. Yours is one of them, but I’ve run into the following problem:

The examples you’ve listed on stage.gpsauge.de in the various languages appear to use a custom API class, which sends the request to the API via a hash table. However, we use a software called Lobster_data to manage our interfaces, and it is URI-based, so a hash table cannot be sent as such with an HTTP GET request.

Is there a way to send the corresponding values as parameters?

 

Welcome to the forum!

The API parameters can be specified in the URL as standard "key=value" parameters, e.g.,

www.apioverip.de.

APIUtils is simply a wrapper class that is not required to work with the API.

apiutils.php, api_utils in C#

apiutils.php, api_utils in C#

Dear Sir or Madam,

On your website www.stage.gpsauge.de, under the menu item:
Integration --> API --> Public Modules --> Devices, Vehicle Location and
Status --> More
Info --> Retrieve Position Including Driver and Status
(mode=cars|contacts|positions),

the following PHP code
:
<?php
include("./include/gpsapi/apiutils.php";
$arr = array();
$arr["module"] = "devices";
$arr["action"] = "get";
$arr["user"] = "user";
$arr["pwd"] = "secret";
$arr["mode"] = "positions";
$arr["deviceid"] = "213059";
$arr["nameonly"] = "0";
$arr["format"] = "json";
$arr["plainpos"] = "1";
$result = apiGetData($arr);
$result = apiUnzip($result);
if (apiReturn($result))
echo "SUCCESS!";
else
echo "ERROR";
7?>

The first line in the PHP program reads
`include("./include/gpsapi/apiutils.php";
` However, the file `apiutils.php` is missing. It is not present in the PHP
installation and cannot be found online either.

On your website, I read:
"Structure of API Requests
": "In the documentation, you will find descriptions of the individual modules,
their actions, and the available parameters you can use during development
. For each module, code examples,
gateway responses, and possible error messages are provided."

Where can I find this documentation? Where is the apiutils.php file?

The C# example looks like this:

using System;
using System.Windows.Forms;
using System.Collections;

namespace API_cs
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
api_utils API = new api_utils();
Hashtable arr = new Hashtable();
string result;
arr.Add("module", "devices";
arr.Add("action", "get";
arr.Add("user", "user";
arr.Add("pwd", "secret";
arr.Add("mode", "positions";
arr.Add("deviceid", "213059";
arr.Add("nameonly", "0";
arr.Add("format", "json";
arr.Add("plainpos", "1";
result = API.apiGetData(arr);
if (result == ""
{
result = "return:=-1";
}
else
{
MessageBox.Show(API.apiUnzip(result));
}
}

}

On the line
`api_utils API = new api_utils();
`, I get the error message:
"The type or namespace name 'api_utils' could not be found (are you
missing a using directive or an assembly reference?)
" This message is not surprising, since a reference to a
library is missing. The library is called api_utils.
It is either a DLL, or I can compile the DLL myself if I
have the source code.
I cannot find either of these on your website.

Summary:

How can I access the API interface description, the `apiutils.php` file
(including all dependencies), the `api_utils.dll
` file, or the C# source code?

Is the C# library a .NET application using .NET Framework 4.8 or a
.NET Core application using .NET Core 6.0 (Long-Term Support)?

Best regards,

Steffen

 

Hello Mr. Steffen,
Thank you very much for your inquiry regarding the "apiUtils" helper library!

Strictly speaking, you do not need it. Our API, as described on the website, can be easily called via HTTP GET requests with the appropriate request parameters (e.g., module, action, user, device, ...).

The `apiUtils` library simply wraps the HTTP call in the respective programming language (e.g., via CURL in the case of PHP). An example URL would be:

www.apioverip.de

(Please note the placeholders in square brackets, which must, of course, be replaced accordingly.)

This URL returns a list of all GPSaugen registered in the GPS account.

Parameter tip
: - nozlib=1|0 enables/disables GZip compression of the response -
format=json returns the response in JSON format

Best regards,
Your GPSoverIP GmbH Development Team.

Occasional error when retrieving telematics data

Occasional error when retrieving telematics data

Dear Sir or Madam,
we retrieve the telematics data from our GPSaugen devices via the URL live.apioverip.de.

We receive the following error message:

Incorrect header check
for input string: "0.0000000000"

This happens occasionally with different IDs. Can you tell us what’s going wrong here?

 

Hello,
it appears you have encountered a rare bug in our Live API. Our team is already working on resolving the issue. Until then, we’d like to ask you to switch your application to a different, more up-to-date system for retrieving live data. To do so, please change the request URL to the following:

api.gpsoverip.de/positions/live]

Please note that some parameters in the API response have changed. If the new response structure is not suitable for you for specific reasons, you have the option of forcing a response in the old format for the time being by using the additional parameter `legacy=1`. However, we advise against this, as legacy mode is not intended to be permanent and will very likely be discontinued at some point.

We hope this has been helpful.

Best regards,
Your GPSoverIP Support Team

Orders with Attachments via the API Interface

Orders with Attachments via the API Interface

Hello,

A mutual customer would like us to collect the file(s) associated with the transferred order and send them to you along with the
route or order.
In the description of the setfile module, I can’t find a parameter for assigning the documents to a specific
order.
For example, we would send the driver two orders to process. After transferring each
order, we would transfer the associated files using setfile.
How can we ensure that the driver assigns the documents correctly?
Does the driver see the documents “somehow” when accepting the order or when starting to process it?
I’m not familiar enough with the process on the device to explain to the customer how the driver should handle
the data or how the driver can find the documents for the second order once he has completed the first
one.
Is there a guide available on this topic?

Please feel free to contact me if you have any further questions.
________________________________________
Best regards
, Michaela Federbein

 

Hello Ms. Federbein.

There is also the option to assign an attachment to a route stop.
The driver can identify this in the stop list by a paperclip icon in front of the stop number.
Double-clicking the paperclip opens the corresponding PDF or image file, depending on the attachment.

This is documented in the API documentation under “Job -> send.” It just needs to be added to the API documentation for “Tour.” You can download a sample XML file
via the link “https://media.gpsoverip.de/repo/tour.xml,” which also shows how the attachments must be passed.

Best regards

Your GPSoverIP Support Team

 

Hello,

Thank you very much for the information.

I have 1-2 more questions about this
: - Since there is a parent "attachments" tag in the structure, I assume that there can be multiple "attachment" blocks
within the "attachments" tag. Is that correct?
- ID
: Is this ID relevant, or can we specify any numeric value from our system here?
- Are there any size limitations for integrating the documents as base64?

Please feel free to contact me if you have any further questions.
________________________________________
Best regards
, Michaela Federbein

 

Hello Ms. Federbein,

Please find the answers below.

Since there is a parent “attachments” tag in the structure, I assume that there can be multiple “attachment” blocks
within the “attachments” tag. Is that correct?
--> Correct

- ID
: Is this ID relevant, or can we provide any numerical value from our system here?

--> Not relevant.
- Are there any size limitations for integrating the documents as base64?
--> There is a device-side transfer limit of 150 kb.

Best regards

Your GPSoverIP Support Team

Retrieving GPS location data in the fms module / Format of GPS coordinates

Retrieving GPS location data in the fms module / Format of GPS coordinates

Dear Sir or Madam,

I am currently working on the API for retrieving archive data from our recently acquired GPSauge MI6 BLE. Using the fms module and the get action, I was already able to retrieve FMS/CAN data for a specific time period directly from your servers using Python.

1. In your API documentation, under the `getvalue` action, it states: “You can also retrieve the GPS coordinates (GPS_LAT/GPS_LON) at any time.”https://www.gpsoverip.de/entwickler/api-referenz/actions/parameter/?tx_repomodule_pi1%5Bmoduleid%5D=88578975&tx_repomodule_pi1%5Bactionid%5D=99042731

How does that work? Is it possible to retrieve the GPS coordinates directly along with the FMS/CAN data for each time step? What parameters do I need to pass to do this? Currently, my Python function for retrieving data looks like this:

Which ultimately returns the data for each time step in a dictionary:

That works very well for me so far. However, I’d like to see GPS longitude and GPS latitude included as additional values here as well. Is this possible?

2. I also have a question about the format of the GPS coordinates you’re using. Using the “devices” module, I retrieved the coordinates for a single time step (2021-05-13 00:00:00) via the “getonepos” action. Now I’m
getting 5131.9788 for GPS latitude and 951.2851 for GPS longitude. In your documentation, you state that the values are output as degrees and minutes (decimal). But how do I convert these to decimal degrees? Simply dividing by 60 doesn’t work here. The result should be something like 51.532982, 9.854752.

Thank you very much for your assistance.

Sincerely,
on behalf of Markus
Worbs----------------------------------------------------------------------
R&D Center FH Kiel GmbH
Markus Worbs, M.Sc.
– LaTech40 Project –
Schwentinestr. 24
24149 Kiel
, Germany

 

Dear Mr. Worbs,

Thank you very much for your inquiry! Unfortunately, I must inform you that the ability to determine the GPS coordinates directly from the CAN/FMS data has not been available for some time. We simply failed to update the documentation accordingly. We have just done so.

Retrieving GPS Data

There are three ways to determine the position of a GPS device at a specific point in time. First off: Option 3 is our recommendation.

1. Use the "devices -> getonepos"
API 2. Use the "devices -> get, mode=packagelist" and "devices -> get, mode=package"
APIs 3. Use our brand-new API at api.gpsoverip.de to retrieve all of the vehicle’s positions over a specific time period

Regarding 1:
This API is only suitable if the number of timestamps to be queried is small. Bulk queries are not possible with this method, as your program could otherwise hit query limits and become blocked.

Regarding 2:
Here, you must use `mode=packagelist` to load the packet list for the day containing the timestamps you’re looking for. You must then determine which of the returned packets contains the timestamps you’re looking for. Using the corresponding packet ID, you must then load the GPS positions for that packet. Finally, the position corresponding to the desired timestamp must be determined programmatically.

Re 3:
This API is currently under development, although GET /positions has already reached its final version. With this API, you can efficiently load all positions of one or more vehicles within the desired time period and then programmatically determine the coordinates corresponding to the specific time you’re looking for.

The example URL for this is: api.gpsoverip.de/v1/positions/

Here’s a tip:
Use the binary search algorithm to find coordinates in the result set. This ensures fast results. In addition to the API’s strong performance, another advantage is that it returns GPS coordinates directly in the desired decimal format.

If you’d like to follow our recommendation, please use this Option 3. The advantages are clear: performance, stability, and minimal complexity.

Retrieving FMS/CAN Data

Important:
The new API also allows you to retrieve FMS/CAN data! This interface is also already stable. Example URL:

api.gpsoverip.de/v1/fms/list

We recommend using this one here as well.

Notes on the new API at api.gpsoverip.de:

- In the response, you’ll find a “meta” section that provides detailed explanations of the individual response fields
.- Due to the large amounts of data—depending on the parameter settings—we recommend keeping the time periods being queried and/or the number of device IDs as small as possible, or only as large as is actually necessary.
- Specifying "v1" ensures that you benefit from all features and patches in the current major version 1, while remaining protected from any breaking changes in a future major version 2. In the response parameters, under “API Version,” you’ll find the version actually being used (if “v1” is specified, this is currently v1.3.3).

If you have any further questions, please don’t hesitate to ask. You may also find answers to some of your questions in our forums.

Best regards,

Your GPSoverIP Support Team

 

Hello,

Thank you very much for your feedback.

I think Method 3—using the new API as an HTTPS request—is a good and convenient approach.

I have a few questions about this
: - In the links you attached, the password is transmitted in plain text. I’m no security expert, but is this really the final solution?
—Is it possible with the FMS query to retrieve all available fields at once, rather than having to specify each field individually in the query?
—Is there already publicly available documentation for the new API?

Best regards
, on behalf of Markus
Worbs----------------------------------------------------------------------
R&D Center FH Kiel GmbH
Markus Worbs, M.Sc.
– LaTech40 Project –
Schwentinestr. 24
24149 Kiel
, Germany

 

Hello Mr. Worbs,
regarding your questions:

- Since you are using the API via a secure connection (https), transmitting the password in plain text does not pose a security risk. This is standard practice
.- The GET /fms/list query requires the “fields” parameter. Here, you can pass one or more identifiers (separated by commas). Limiting the query to specific identifiers makes sense, not least because of the volume of data and the associated performance implications on both the GPSoverIP side and the client/API consumer side. Experience has shown that, as a rule, our customers are rarely interested in all identifiers; instead, their interest is usually focused on just a few identifiers.
—You can find the API documentation at docs.gpsoverip.de

Best regards,

Your GPSoverIP Support Team

API Interface - Job Module

API Interface - Job Module

Hello,

You spoke with Mr. Doll last week regarding our mutual client “DK – Transporte.” I have a few more questions about the interface:

1) The examples for sending the route list and receiving the order status are listed on your site in several programming languages, such as PHP or Java. In each case, an additional module called “APIUTILS” is called by you, using methods such as “apiGetData” and “apiUnzip.”

Since we do not use any of the standard programming languages on your list (we use the 1C:Enterprise platform from 1C), we have to execute the HTTP requests ourselves. Do you have a brief description of what we need to keep in mind so that we can implement the functionality from your “APIUTILS” module ourselves?

2) We’re considering how we can receive a weight via the interface. In the “Query Order Status” module, there is a response parameter “cmt” containing a detailed message. We can likely use this parameter. Can this parameter be linked to a specific status number from the “name” parameter?

Thank you in advance

Best regards

Dmytro Chakhoyan
, Programming

 

Hello Mr. Chakhoyan,

Re 1) The API requests are sent as standard HTTP requests to www.apioverip.de. By passing the parameters "nozlib=1" and "format=json," the API responses are typically returned as an unzipped JSON string. The JSON can then be parsed using standard language-specific tools.

Re 2) The weight can only be sent as a message from the job application on the telematics device.
You can therefore use the status number -1 for the “name” parameter.

Best regards

Your GPSoverIP Support Team

 

Hello,

Thank you very much for the quick responses!

I have a few more questions.

1) If a route was sent using the “Route -> Send Route List” method, is it correct that the response messages for that route can be retrieved via “Job -> getstatus”? Or can “Job -> getstatus” only be used to check the status of jobs that were sent via the “Job” module?

Does the “uniqueid” parameter in the “Route -> Send Route List” method correspond to the “jobid” parameter in the “Job -> getstatus” method?

2) What is the maximum length of the “uniqueid” parameter? Can it be 36 characters long?

3) How can a tour be canceled if it was sent to the device by mistake? Can this be done via “Job -> Delete”?

4) The “gpxpackage” field in the “Tour -> Send Tour List” method

What do the XML fields
<src>2</src>
, <webaccess>0</webaccess>
, and <reminder>5</reminder> mean?

5) Do you have a predefined “Crisis” status so that drivers can report a problem such as a breakdown or traffic jam?

6) Did I understand correctly that your HTTP requests are POST requests?
Thank you in advance

I hope you have a wonderful evening

Best regards

Dmytro Chakhoyan

 

Hello Mr. Chakhoyan,

1) In this case, it doesn’t matter whether “job” or “tour” is used. The two modules run together internally and still exist today for compatibility reasons.

When sending a tour via “Send Tour List,” the response contains an ID, which can then be used as the value for “jobid” in the job->getstatus call.

2) The “uniqueid” parameter may be up to 50 characters long.

3) Yes. Using `job -> delete` deletes a tour from the database. This deletion is transmitted to the GPSauge, and the driver receives a corresponding notification.

4) src: The GPS account ID of the sending account
; webaccess: If > 0, a web share for the tour station is automatically created. The number represents the validity period for the web share in hours.
reminder: Value in minutes indicating when a reminder for the tour start should be sent (e.g., 15 -> automatic reminder 15 minutes before the tour starts); however, to the best of my knowledge, this functionality is not currently implemented. If the customer requires this feature, I would need to conduct further research.

5) There is no “Crisis” status, but there is an “Abort” status.

In addition, there are predefined status messages (see attachment) that are available on every device.
The “Auftragsmeldungen.txt” file can be customized as needed and then distributed to the devices.
Please make sure to adhere to the format. The status number must be greater than 1000.

On the end device, one of the statuses from the “Auftragsmeldungen.txt” file can then be selected for an entire tour or a single tour item in the Status Window > Message.

6) In principle, it does not matter which of the request methods—POST or GET—is used. However, we recommend using them according to their intended purpose: POST for “write” requests (e.g., tour->send), GET for “read” requests (e.g., tour->getstatus).

Best regards

Your GPSoverIP Support Team

Bluetooth Tags - API Request

Bluetooth Tags - API Request

Hello,

I’ve been using several BT tags in conjunction with the GPSauge for about 3 weeks now. I’d like to integrate the data from the BT tags into another program and was wondering if it’s possible to retrieve the data from the BT tags via an API?

Best regards

Simon Sternbart

 

Dear Mr. Sternbart,

You can retrieve the Bluetooth tags (hereinafter “BT tags” icon_wink.gif) associated with your account, including their current location, via the following interface:

www.apioverip.de

This is a standard HTTP GET request. You can find instructions on how to send this request in your programming language in just a few minutes online. In C#, for example, you can send a request using the WebRequest class.

If successful, you’ll receive a response with the following structure:

{
return: -1,
success: true,
data: {
00:0B:57:7D:45:AA: {
id: 5172,
macaddress: "00:0B:57:7D:45:AA",
name: "B 300",
lat: "49.920601",
lng: "10.135823",
icon: "include/images/markerIconManager/food/candy.png",
device_id: 231092,
device_ts: "2019-10-23 17:01:32",
created: "2019-05-02 08:46:01",
modified: "2020-10-25 19:00:09"
}, ...
}

The fields that are not self-explanatory are:

id: Unique ID of the BT tag
icon: The icon used in GPS-Explorer Web to display the BT tag. To get the full URL, prefix it with "https://web.gps-explorer.de/".
device_id: The ID of the GPS Eye from which the BT tag was last "seen". Important: This GPS Eye does not necessarily have to be one from your account. All active GPSauges report all BT tags, enabling more comprehensive and accurate positioning. The information is anonymized and linked to the BT tag.
device_ts: The timestamp indicating when the BT tag was last seen by a GPSauge.

I hope this has been helpful. If you have any further questions, please feel free to reply to this email.

Best regards,

Your GPSoverIP Support Team

 

Hello,

Thank you very much for your assistance.
Everything is working as described.

Wonderful.

Best regards

Simon Sternbart

Change to the interface

Change to the interface

Hello,

We hadn’t used our GPS-Auge with our database (Access with VBA)—and thus with our interface—for several months (May through August).
Now that we wanted to use the device again, we discovered that the connection no longer works.
The transfer is aborted right at the “HttpReq.Send” stage with the following error message:
“-2147012739: An error occurred in the secure channel support.”

I’m not exactly the “chief programmer” here and am just doing this “on the side”…
But… why did it work until May and now it doesn’t?!?

For reference, here’s our source code:
' Open
HTTP connection HttpReq.Open "GET", Server & Action, False'Encode
in
UTF-8 HttpReq.Option(WinHttpRequestOption_URLCodePage) = "UTF-8"
HttpReq.setRequestHeader "Content-Type", "text/xml; charset=UTF-8"
' Send HTTP request.
HttpReq.Send 'Action HERE: IMMEDIATE
TERMINATION' Wait for the server response.
HttpReq.
waitForResponse 'Return
the result GPSAuge_HTTPRequest = (HttpReq.responseText)

The provided URL works perfectly in a browser!
Here is our request (server and action):
live.apioverip.de

I would LOVE to avoid using the API for compatibility and installation reasons!

Unfortunately, I’ve been waiting for the promised call from support for a whole week now...

Thank you very much for your help

, Frank Dunsche

 

Dear Mr. Dunsche,

please accept our apologies for the delayed response.
We will forward your request to the development team immediately.

Best regards,

Your GPSoverIP Support Team

 

Dear Mr. Dunsche,

According to our development team, there is an issue here with TLS (Transport Layer Security).

Here are a few helpful links:
stackoverflow.com/questions/44045305/vba-an-error-occurred-in-the-secure-channel-support/51118932

support.microsoft.com/en-za/help/3140245/update-to-enable-tls-1-1-and-tls-1-2-as-default-secure-protocols-in-wi

Best regards

Your GPSoverIP Support Team

Special ID?

Special ID?

Hello,

Is there a specific Client_ID we should use to log in with a username and password? If there isn't one, that's fine, of course.

Best regards,

Magdalena Werb

 

Hello Ms. Werb,

We do not require our customers to use a specific Client ID or anything similar.

Best regards

Your GPSoverIP Support Team

 

Thank you very much for the quick help

Best regards

Magdalena Werb

Modul Devices - Reverse Geocoding

Modul Devices - Reverse Geocoding

Dear Sir or Madam,

We use the Devices API extensively and have a feature request:
For our internal software products, we need not only the vehicle’s location in longitude and latitude, but also in a “human-readable format” (e.g., A3, Cologne, Deutz, Deutz-Kalker Str.). We currently use reverse geocoding from OpenStreetMap, but the latency is too high for our needs.

Could you retrieve this reverse geocoding data via your Google Maps license and integrate it into the Devices module? That would be a great help to us.

Best regards,
Gustav Quade

 

Dear Sir or Madam,

please accept our apologies for the delayed response.

We have forwarded this information to the development team and will try to incorporate the change you requested in the next API release.

Best regards

Your GPSoverIP Support Team

 

Great,

that feature would be a huge help to us.

Thank you,
Gustav Quade

NFC Tag - Popup Configuration

NFC Tag - Popup Configuration

To customize the NFC functionality pop-up, you can select the appropriate option under "Administration > NFC."

For checking employees’ driver’s licenses in GPS-Explorer Web, we recommend the setting:
“DB: Start/End of Work/Scheduled Time/Break/Driver/Passenger”

 

The icons within the pop-up have been redesigned to be more user-friendly.

 

In rare cases, clicking too quickly or double-clicking could result in a duplicate transmission.

This issue has now been resolved in the new update.

 

Update 03/05/2018:

- Optimizations to data transfer

Order Management - Configuration

Order Management - Configuration

We have expanded the job management configuration and updated the help texts accordingly.

For example, on the fifth page of the configuration, there is now the option “Execute on Stop.”

"If this option is enabled, the status window pop-up will not appear until the vehicle stops within the target radius. If the vehicle does not stop within the target radius at all, the pop-up will not appear until the vehicle exits the radius.

 

There was a minor bug with this feature, which has already been fixed.

 

The job management configuration has been revised again, and the help texts have been updated accordingly.

FMS Module with Java

FMS Module with Java

Good morning,

We have a problem with the module fms.

My Code:

aParam.put("user", user);
aParam.put("module", "fms" );
aParam.put("action", "get" );
aParam.put("pwd", API.md5(pass));
aParam.put("deviceid", deviceid);
aParam.put("mode", "" );
aParam.put("from", "01-04-2012 10:00:00" );
aParam.put("to", "01-01-2020 11:00:00" );
aParam.put("fields", "betriebsstunden,bitwert,brake_sw" );

and the response is:
IOException: java.io.IOException: Server returned HTTP response code: 400 for URL: www.apioverip.de 10:00:00&to=01-01-2020 11:00:00&pwd=xxxx&fields=betriebsstunden,bitwert,brake_sw&user=xxxx&deviceid=xxxx

but on your web www.gpsoverip.de/entwickler/api-referenz/actions/parameter/

the response is valid.

 

Good morning,

this problem is fixed in our newest Java API files.

Please download and try it with the newest apiutils.java.

The Download to the Java API files can be found here:

www.gpsoverip.de

Marker App - Bluetooth

Marker App - Bluetooth

The latest version of the Marker app can detect and transmit Bluetooth tags. If a Bluetooth tag is attached, for example, to a trailer, a vibrating plate, or other objects, its position is detected and updated by an InOne v2, provided the InOne v2 is within range of the Bluetooth tag.

 

A new version with minor bug fixes and performance improvements has been released. The update is automatically pushed to InOne v2 devices via an over-the-air update.

 

New version as of November 20, 2017:

- Update interval
adjusted - Minor change to the display of BT LE tags

 

New version as of December 4, 2017

- Improved accuracy of BT tag location tracking

API query for the telemetry value "wind speed"

API query for the telemetry value "wind speed"

After implementing telemetry for wind speeds on construction cranes, the transmitted value should be retrieved via the API.
What is the command for this?

 

In the API documentation under "Module - FMS," there is an action called "Read CAN/FMS Interface (Live Data)" to retrieve the most recent value from one or more GPS sensors.
The documentation can be found here:

www.gpsoverip.de/entwickler/api-referenz/actions/parameter/

You can use the "Execute" button to test the API call before implementing it in your system.

In your case, the required field name is "wind_speed," which can also be found using the GPS Explorer. The system searches for the required value in your device’s FMS-CAN data. Clicking the "i" icon opens a small pop-up in the lower right corner that reveals the internal field name for the API. This can also be seen in the attached screenshot.

The following API call retrieves the wind speed:

action = get
module = fms
fields = wind_speed
format = json
user = GPS account ID
pwd = password
deviceid = device IDs

 

If you want all values sent during a specific time period, you can also specify the start and end timestamps in the API call. Note that only one device ID is allowed per call in this scenario:

action = get
module = fms
fields = wind_speed
format = json
user = GPS account ID
pwd = password
deviceid = device ID (only one ID is allowed in this mode)
from = '01-12-2017 00:00:00'
to = '01-01-2018 15:00:00'

API - Timeout

API - Timeout

Dear Sir or Madam,

I’ve been trying to retrieve data from the www.apioverip.de site for quite some time now, but I keep getting a timeout. I’m using port 8001.

Can anyone tell me what I’m doing wrong??

Thank you

Best regards

Mike Donkeyboner

 

Dear Sir or Madam,

Please always access our API via www.apioverip.de using the default port 80 instead.

Best regards

Your GPSoverIP Support Team

Disable Power-Save Mode

Disable Power-Save Mode

Hello,

Is it possible to disable or pause power-save mode in my external
application? The application
(C# via SD card) works perfectly, but unfortunately, after a certain amount of time, a message appears stating that the device will enter sleep mode in 30 seconds. I’d like to prevent this from happening.

Best regards

 

Dear Mr. Lindemann,

You can disable Power-Save Mode using an admin code. Simply enter the following code in the main menu under System > Administration and click the "Next" button:

325488540 – Power-Save OFF

To re-enable Power-Save mode:
325488541 – Power-Save ON

Best regards

Your GPSoverIP Support Team

New Feature - Remote Maintenance

New Feature - Remote Maintenance

To make it easier for GPSoverIP GmbH Support to troubleshoot issues or provide training on GPS-Explorer Web, you have the option here to connect with a support representative via remote access. The representative can then quickly and accurately assist you with your issue.

 

The remote support feature will be revised again over the next two weeks and should be available by the end of April or beginning of May 2017.

 

The new version of the remote support feature was uploaded today.

 

New version available:

Changelog:

- Fixed connection issues with slow connections

Integrate gps explorer

Integrate gps explorer

Hello,

we would like to integrate gps explorer (web) into our website for expo.

We don't have enough time to use api and create integration using api.
One of the solution. We will add web.gps-explorer.de into frame, but I think that login session will expire in some time, and we need relogin sometime to recover connect.
How we can get any long session ?

Maybe, you have some hints.

--
Best Regards,
Alexey Rymkevich

 

Hello Alexey Rymkevich,

our GPS-Web-Explorer has a heartbeat via JavaScript that keeps the session alive. As long as your frame has JavaScript enabled your login session should not expire.

An alternative would be to manually refresh the session (by reloading the website for example).

Kind regards,

Your GPSoverIP support team

API - Expense Report - Query

API - Expense Report - Query

The expense report can now also be retrieved via our API:

module: expensereport
action: get
user: [USER] pwd: [PASSWORD] objectid: [DEVICE_ID;CONTACT_ID]
objecttypeid: [1 = VEHICLE; 2 = CONTACT]
from: YYYY-MM-DD
to: YYYY-MM-DD
nozlib: 1

If you have any questions, please contact our Customer Support.

Your GPSoverIP Support Team

 

The performance and structure of the response have been improved in this module.

 

Several enhancements and bug fixes have been implemented and are already active in the production environment.

Set Geo-Object - Missing Type

Set Geo-Object - Missing Type

Hello,

Unfortunately, the "Set Geo-Object" function isn't working right now. I always get the error message "Missing Type"

return:=0;reason:=Missing type;

This error also occurs when you call the example from the API reference directly in the browser.

 

Dear Mr. Quade,

Which GeoObject were you trying to set?
Marker, Address, Polygon, Circle, Boundary, or Corridor?

Please provide us with a few more details.

Thank you very much

Best regards

Your GPSoverIP Support Team

 

Hello,

thank you for the quick response. We have the longitudes and latitudes for each of our customer addresses and would now like to transfer them as markers via the API.

We’re following your PHP example very closely when structuring the request. I’m not aware that I can specify the type of a GeoObject—such as an address or marker—in the request.

Here is an array that I’d like to send (username and password have been changed). I think I’ve filled in all the required fields?:

Array
(
[module]=> geoobject
[action]=> set
[user]=> xxx
[pwd]=> xxx
[lat]=> 50.9451
[lon]=> 6.95269
[name]=> NDAw
[address1]=> RHJvZ2VuaGlsZmUgS8Eru2bG4gR21iSA==
[address2]=> TlQzMA==
[street]=> VmljdG9yaWFzdHJhw59lIDEyLCA1MDY2OCWLw7ZsbiwgR2VybWFueQ==
[description]=> TlQ=
)

 

Hello Mr. Quade,

The information you provided is currently being reviewed by the development department. We hope to be able to offer you a solution shortly.

Thank you very much for your understanding

Best regards,

Your GPSoverIP Support Team

 

Hello Mr. Quade,

The expansion of our Geo-Object module has added many new options for storing geo-objects.

However, this change now requires you to specify the type of the geo-object.

The API reference has been updated and now lists all the options for the new "type" parameter.

The API example can now also be run with this parameter.

Thank you very much for your feedback and for helping us improve our documentation!

 

Hello Support Team,

Thank you very much for the quick solution. It’s working perfectly now!

Best regards,
Gustav Quade

JSON Responses from the GPS Gateway

JSON Responses from the GPS Gateway

Hello everyone,

I have a question about the responses from the GPS gateway.

If there’s an error when querying the extensions, a standard response is returned instead of a JSON string.

That means the response looks like this:

return:=0; reason:=Wrong JobID;

Is this intended?

R. Karper

 

Hello Mr. Karper,

For compatibility reasons, the return value must still be sent as PLAIN in the event of an error. However, this function will be modernized bit by bit in the near future along with the rest of the API, and such legacy elements will be resolved in the process.

Best regards

Your GPSoverIP Support Team

Data isn't being retrieved—API?

Data isn't being retrieved—API?

Hello,

I just sent several files to different devices using our software.
However, the devices aren't retrieving the data.

What could be causing this?

My account ID is 32026

Best regards,

Michael Treter

 

Hello Mr. Treter,

We have reviewed today’s files and found the following: The files were already marked as read when they were sent, which is why the devices did not retrieve them.

Please check the parameters and actions you provided.

Best regards

Your GPSoverIP Support Team

API - Tours

API - Tours

Dear Sir or Madam,

I am currently developing an application that sends tours via your API.

Are there any other use cases besides the standard "Tour" API reference?

 

Hello,

You can find additional use cases at

www.gpsoverip.de/infos/anwendungsbeispiele/

If you still have questions, please feel free to contact our Customer Support.

Best regards

Your GPSoverIP Support Team

 

Thank you very much

GPS Package - API

GPS Package - API

Dear Sir or Madam,

When I retrieve data using PHP scripts (API module replication), I am only receiving raw GPS data from December 12, 2014. Could you please check to see where the error is?

Best regards,

Michael Peterson

 

Hello Mr. Peterson,

Regarding the issue with the “Replication” module, I can confirm that the module is functioning correctly.
The reason you are only receiving positions dated December 12, 2014, is that after retrieving (downloading) the data packages, you must then confirm (acknowledge) them.

If you only run the “gpsgetnewpos.php” script, you’ll keep getting the same data until you tell the API that you already have the data.
By calling the PHP script “gpsverpos.php,” you verify/confirm that you already have the data and that it can be removed from the interface.

Rule->set without a URL

Rule->set without a URL

Customer inquiry:

Hello Mr. Kiesewetter,

I’m passing a rule via the API, but the specified URL isn’t showing up in Web Explorer. What can I do?

Best regards
, T**** P*****

 

Hello Mr. P****,

at first glance, I see that the URL isn’t Base64-encoded.
Could you please correct that? If you still have issues after that, I’ll take a closer look.

Best regards
,Kiesewetter

 

Hello Mr. Kiesewetter,

thank you very much for the information—it’s working now!

Best regards,

T***** P*****

HLD - File is not being transferred

HLD - File is not being transferred

Hello,

I'm having trouble transferring a specific file.
The file is recognized (in the directory), and then HLD attempts to transfer it.
When debugging, your GetData function returns the following WebException—500—Internal Server Error:

Does anyone have any idea what’s causing the error on your end?

I edited the file and changed “Frau” to “Herrn,” and then it transferred???

Thank you very much

Manfred Kasko

 

Hello Mr. Kasko,

Could you send us the call parameters?
Then we’ll debug this.

 

Hello,

Here’s my current function: You can populate the variables f1 through f19 with the data from the TXT files.

Dim result As String
Dim arr As New Dictionary(Of String, String)

Dim byt As Byte() = System.Text.Encoding.Default.GetBytes(f14 & " " & f15 & " " & f16 & Chr(10) & f10 & Chr(10) & f11 & Chr(10) & f12 & Chr(10) & f13 & Chr(10) & f17 & Chr(10) & "Business Partner ID: " & f18)
Dim format As [String] = "yyyy-MM-dd hh:mm:ss"
Dim str As [String] = DateAdd(DateInterval.Hour, 2, Now).ToString(format)

Dim _f7 As String =
f7_f7 = Replace(_f7, "ä", "ae"
_f7 = Replace(_f7, "ü", "ue"
_f7 = Replace(_f7, "ö", "oe"
_f7 = Replace(_f7, "ß", "ss"
_f7 = Replace(_f7, "Ä", "Ae"
_f7 = Replace(_f7, "Ü", "Ue"
_f7 = Replace(_f7, "Ö", "Oe"

Dim _f19 As String =
f19_f19 = Replace(_f19, "ä", "ae"
_f19 = Replace(_f19, "ü", "ue"
_f19 = Replace(_f19, "ö", "oe"
_f19 = Replace(_f19, "ß", "ss"
_f19 = Replace(_f19, "Ä", "Ae"
_f19 = Replace(_f19, "Ü", "Ue"
_f19 = Replace(_f19, "Ö", "Oe"

arr.Add("module", "job"
arr.Add("action", "save"
arr.Add("mode", "manual"
arr.Add("type", "plain"
arr.Add("user", pv_Account)
arr.Add("pwd", pv_Password)
arr.Add("templateid", ""
arr.Add("uniqueid", f1 & " " & f2 & " " & f3)
arr.Add("name", _f19)
arr.Add("description", Convert.ToBase64String(byt))
arr.Add("street", f8)
arr.Add("housenumber", f9)
arr.Add("code", f6)
arr.Add("city", _f7)
arr.Add("district", ""
arr.Add("state", ""
arr.Add("country", "DE"
arr.Add("sms", ""
arr.Add("email", ""
arr.Add("reminder", ""
arr.Add("duetime", str)
arr.Add("geofencing", ""
arr.Add("geomessage", ""
arr.Add("geoemail", ""
arr.Add("geosms", ""
arr.Add("lat", ""
arr.Add("lon", ""
arr.Add("extensions", ""

result = ApiGetData(arr)
If result = "" Then
result = "return:=-1"
Else
result = ApiUnzip(result)
End If

 

Could you send us the string?

Convert.ToBase64String(byt))

If I recall correctly, there was an issue where .NET occasionally has problems with Base64.

 

TVAgV9xMIDAwMDEKRnJhdQpIZWR3aWcgS+RmZXJi9mNrCktpcmNocGxhdHogNAo5NzIyOCBSb3R0ZW5kb3JmCgpHZXNjaORmdHNwYXJ0bmVySUQ6IDAwMDcxNjM0Mzk=

 

The problem is the + character in the Base64 string.

The string must be URL-encoded using the `get` method so
that the data is transmitted completely.
Otherwise, the + sign would be converted to a space, which would interrupt the Base64 string.

 

Ahhhh, got it.

Thanks so much for the info.

Data Transfer to GPSauge - Problem

Data Transfer to GPSauge - Problem

Hello,

we had a problem today (which I can't explain) with data transmission to our GPS-Auge.

The outbound trip to an outpatient appointment could not be transmitted (the return value was "").
The return trip, however, was successful (practically the same data).
The problem seems to lie in the (encoded) “Description” data field, since the outbound trip could be transmitted using the “Description” from the return trip.
Here are the two HttpReq requests that were sent using ‘HttpReq.Open “POST”, Server & Action, False’:
1. Did NOT work:
www.apioverip.de=
250068&pwd=570668ee10b7b499e650903bae0dbcec&deviceid=605456&uniqueid=4&name=
4: Am/si Manteuffel,
Renate&description=V0IgMSwgMSBPRywgS+R0aGUtRW5nZWxoYXVwdC1TZW5pb3JlbnplbnRyd
W0gDQpaaWVsOlJhZGlvbC4sIFN0LiBWaW5jZW56LUtyYW5rZW5oYXVzLCBEYXR0ZWxuIA0KNDU3M
TEgRGF0dGVsbiAvIFJvdHRzdHJh32UgMTENClN0dWZlbjogIC8gR2V3aWNodDogS2cNCkJlbWVya
3VuZzog&street=Dortmunder
Straße&housenumber=146&code=45731&city=Waltrop&country=DE&district=&state=&s
ms=&email=&reminder=&duetime=2013-06-14
16:00:00&geofencing=500&geomessage=&geoemail=&geosms=&lat=&lon=

2. Works:
www.apioverip.de=
250068&pwd=570668ee10b7b499e650903bae0dbcec&deviceid=605456&uniqueid=5&name=
5: Rü/si Manteuffel,
Renate&description=UmFkaW9sLiwgU3QuIFZpbmNlbnotS3JhbmtlbmhhdXMsIERhdHRlbG4gD
QpaaWVsOldCIDEsIDEgT0csIEvkdGhlLUVuZ2VsaGF1cHQtU2VuaW9yZW56ZW50cnVtIA0KNDU3M
zEgV2FsdHJvcCAvIERvcnRtdW5kZXIgU3RyYd9lIDE0NmENClN0dWZlbjogIC8gR2V3aWNodDogS
2cNCkJlbWVya3VuZzog&street=Rottstraße&housenumber=11&code=45711&
city=Datteln&country=DE&district=&state=&sms=&email=&reminder=&duetime=2013-06-14
16:30:00&geofencing=500&geomessage=&geoemail=&geosms=&lat=&lon=

What could be causing this?

Here are the two “Description” entries in plain text:
1.:
“WB 1, 1st floor, Käthe-Engelhaupt Senior Center Destination: Radiology, St. Vincenz Hospital, Datteln
45711 Datteln / Rottstraße 11
Steps: / Weight: kg
Note: "

2.:
"Radiology, St. Vincenz Hospital, Datteln Destination: WB 1, 1st floor, Käthe-Engelhaupt Senior Center
45731 Waltrop / Dortmunder Straße 146a
Steps: / Weight: kg
Note: "

Best regards

Peter Drasser

 

Hello Mr. Drasser,

Because you’re passing your parameters via the URL, the values are interpreted as URL-encoded.
Your Base64-encoded description contains a plus sign, which is interpreted as a space.
In general, replace + with %2B (the URL encoding for plus +).
V0IgMSwgMSBPRywgS%2BR0aGUtRW5nZWxoYXVwdC1TZW5pb3JlbnplbnRydW0gDQpaaWVsOlJhZGlvbC4sIFN0LiBWaW5jZW56LUtyYW5rZW5oYXVzLCBEYXR0ZWxuIA0KNDU3MTEgRGF0dGVsbiAvIFJvdHRzdHJh32UgMTENClN0dWZlbjogIC8gR2V3aWNodDogS2cNCkJlbWVya3VuZzog

That should do it.

Best regards

Your GPSoverIP Support Team

Taxi App - Vehicle "Moves" When Stationary

Taxi App - Vehicle "Moves" When Stationary

Hello,

I have an MI6 with an input box that’s configured for taxi mode.
When I park the vehicle for an extended period, it doesn’t stay in one spot but “drifts” back and forth several meters over time. This is also clearly visible in the driving path.
Otherwise, the device works perfectly and I have no complaints—what could be causing this “drifting”?

 

Dear Sir or Madam,

Are you using a HALE taximeter?
With HALE taximeters and odometers, an unfavorable combination of parameter settings (HALE) and the status line being used can cause a pulsed signal on the status line when the HALE enters standby mode.

These unintended bit value changes can be prevented by entering the value “256” in parameter “292” (UC Mode HALE). (Automatic shutdown disabled)

Your GPSoverIP Support Team

 

Thanks for the tip! I changed the parameter and it worked great. Problem solved!

http-Request

http-Request

Hello,

If I could execute the HTTP request myself, I’d be happy to do so to avoid having to integrate the OCX file.

However, it seems that both the password sent and the request response are encoded in some way.
("&pwd=570668ee10b7b499e650903bae0dbcec&"

If I could just figure out how to encode the password and decode the response, I would have solved the “problem.”

Best regards

Thorsten Metzger

 

Hello Mr. Metzger,

You can find the respective encoding in the documentation.
The password is encoded using MD5.
Larger texts are encoded using Base64 www.motobit.com/tips/detpg_base64/ so
that special characters do not interfere with the parsing of the response.

Best regards

 

It works.

Thank you very much

PHP - Implementation

PHP - Implementation

Hello,

I just set up the PHP implementation on our test server. Communication seems to be working in principle, but I always get the following response:

Notice: Use of undefined constant LIVEAPI_SERVER_URL - assumed 'LIVEAPI_SERVER_URL' in C:\xampp\htdocs\routenplan\gpsoverip\include\gpsapi\apiutils.php on line 3

Notice: Use of undefined constant API_SERVER_URL - assumed 'API_SERVER_URL' in C:\xampp\htdocs\routenplan\gpsoverip\include\gpsapi\apiutils.php on line 5

Deprecated: The split() function is deprecated in C:\xampp\htdocs\routenplan\gpsoverip\class_cURL\cURL.class.php on line 112
return:=0;reason:=Wrong ObjectID;

The constants and the split function can certainly be ignored, but as you can see in the last line, I’m not receiving a correct response from the server. Could it be that the device ID is incorrect?

$arr['deviceid'] = "201345";

The device ID 201348, which is specified in other programming languages, doesn’t work either?!?
Perhaps you could shed some light on this…

Best regards,

Michael Schwarz

 

Hello Mr. Schwarz,

Simply define the two servers in your configuration:

define('LIVEAPI_SERVER_URL', 'live.apioverip.de');
define('API_SERVER_URL', 'www.apioverip.de');

Then everything should be fine.

Best regards

Your GPSoverIP Support Team

GPS-OverIP and Access Database Communication

GPS-OverIP and Access Database Communication

Hi,

since I haven't yet come up with a satisfactory approach to "offloading" queries to a server (Perl or similar), I'm continuing to tinker with the Access solution...

Aside from the fact that there have been repeated freezes and crashes over the last few days (on Saturday, only the first "Start" event was reported. None of the subsequent status messages ever arrived—not even on web.gps-explorer.de!), I’m (once again) having a problem with a newly implemented communication feature (retrieving messages here).
Presumably, there’s just something (crucial) missing again that isn’t mentioned in the online documentation...
Here’s my source code:

...
'fixed parameters
Set moAX = Forms("frmEinsatzblatt".GPSoverIP_APIAccess_AX.Object
Set oParameter = New clsParameter
oParameter.Server = "live.apioverip.de"
oParameter.AddModule ("message"
oParameter.AddAction ("list"
oParameter.AddMode ("1"
oParameter.AddUser gsCStr(rst("Username")
oParameter.AddPwdRaw gsCStr(rst("Password")
'variable parameters
oParameter.AddParam "deviceid", gsCStr(rst("DeviceID")
oParameter.AddParam "limit", ("6"
lRet = moAX.POST(oParameter) <= Error here
If lRet <> 1 Then
GoTo Error
End If
Do While moAX.Waiting
DoEvents
Loop
lRet = moAX.Result
If Left(lRet, 10) <> "return:=-1" Then GoTo Server
...
Error 13 (incompatible types) occurs at the marked location!
I set the user and other variables as usual:
rst("username" = "250068"
,rst("password" = "xxxxxx"
,rst("deviceid" = "605456"
).The rest I got from the online documentation!

Where might the problem be this time?

Best regards
 

 

Hello,

Could this possibly be a missing or incorrect declaration of `oParameter`?

Dim lRet As Long
Dim oParameter As clsParameter
Set oParameter = New clsParameter

Is there actually anything "inside" that object on your form, or is it empty?

By the way, I’ve moved the sending functionality to a separate module. To do this, I encapsulated the necessary functions in a module, created a form where I declared the functions for calling and returning data as public. Now, when I call the communication methods in the module, I open the form invisibly, pass the parameters via the public functions, handle the communication, close the window again, and the module then returns the result.

This might be one approach so that you don’t have to reprogram everything from scratch in every single form where you need to communicate…

Instructions for Connecting the IN1 to ActiveSync

Instructions for Connecting the IN1 to ActiveSync

Hello,

Is there a guide on how to set up the IN1 to work with ActiveSync? When I connect the device to the PC, it asks for a driver. On a hunch, I tried using the one from the firmware update tool. However, the PID and VID don’t match those of the IN1, so the file isn’t accepted.

Thank you in advance

Mike Werner

 

Hello Mr. Werner,

To connect the device to ActiveSync, you’ll need the driver from the download page:

www.gpsoverip.de

In addition, you must enter the password "230685" in the System/Administration menu to activate ActiveSync on the device.

A few questions about my project

A few questions about my project

Hello,

I have a few questions about a project:

1. Since I’ve never worked with the GPSOverIP API before, I need more information about it. I already have a developer account on your website, but I’m not sure what information I need. Am I in the right place here: www.gpsoverip.de/portale/entwicklerportal/entwicklerdokumentation/inhaltsverzeichnis/devices/?

2. What values can the specified parameters (bit value, pressure, voltage, temperature) take? Is this documented anywhere?

3. What does the “bit value” indicate?

4. Am I correct in understanding that for each parameter, only “less than,” “equal to,” or “greater than” is possible (or disabled as the default setting)? A range of values would therefore not be possible (e.g., minimum AND maximum temperature).

5. How should the “equal to” setting be interpreted? Does the alarm trigger when the value deviates from the specified value or when it is exactly reached?

6. Does the server handle triggering the alarm, or does the app have to manually monitor the values and react when they go above or below the threshold?

7. What do “zm3f1” and “zm3d1” mean, and what exactly do I need them for?

Best regards,

Felix Engelmann, M.S. in Computer Science

 

Hello Mr. Engelmann,

Re 1.
Yes, this is the correct section: www.gpsoverip.de/portale/entwicklerportal/entwicklerdokumentation/inhaltsverzeichnis/devices/devices-status/

Re 2.
The bit value ranges from 0 to 255; the resulting values—such as pressure, voltage, temperature, etc.—are calculated using the formula y = a*x + b.

Re 3.
The bit value represents the “x” in the equation.

Re 4.
That is correct; we do not currently support tolerance or value ranges.

Re 5.
If the value is exactly at the threshold, the alarm is triggered.

Re 6:
The server handles this.

Re 7:
zm3f1 represents the slope (i.e., “a”), and zm3d1 represents the y-intercept (“b”) of the equation above.

Best regards,
Patric Brand

 

Hello Mr. Brand,

thank you for your answers; they were very helpful!

While testing, I noticed that the server responds with “return:=-1;geofencingid:=”, meaning an ID is missing!? Do I need the ID in my app?

Best regards,

Felix Engelmann

 

Hello Mr. Engelmann,

please try the query again; it should be fixed now.

Best regards

Patric Brand

Actual Position Request

Actual Position Request

Hi Guys,

could you please tell me how I can get the actual position out of my deviceapplication?

BR from Taiwan
Jerry

 

Hi Jerry,

you can find your answer in post from Ekol "Device ID & GPS Data" via message queue.

Or you can use sharedmemory.

you can do it
BR Heiko

Thoughts on the New GPS Explorer

Thoughts on the New GPS Explorer

GPS Explorer does not set markers at the beginning or end of a trip, but apparently at certain points in time.

Example: I drove to the taxi stand and pulled up at the taxi stand. However, the start marker was already set at the corner of Rotenturmstrasse and Fleischmarkt, even though I didn’t leave until the corner of Rotenturmstrasse and Schwedenplatz with a passenger!

Actually, the only thing that really matters is the trip from the moment the meter is turned on until it’s turned off. Any other markers are, in principle, of only minor importance for taxi operations. The statistics also overwhelm you with far too many start and stop points, which, however, are often just empty runs.

The passengers got out at Währingergürtel and Canisiusgasse. But there’s no start or stop marker visible anywhere here.
What I conclude from this is that the trips aren’t ended exactly when you stop, but that the end of the trip isn’t recorded until later! It would be great if the program could determine when the trip began—based on the taximeter—and at which point it ended when the taximeter was turned off again.
This is possible because Signal 2 always indicates a taximeter that’s turned off, and Signal 1 indicates a taximeter that’s turned on. The display showing the switch from Signal 1 to 2 and vice versa works just fine!

Many aspects of GPS Explorer have improved.

Is it actually possible to receive the XML trip data in the form of multiple files, and is this planned?

Best regards,

Roger Alexander Kief

 

Hello Mr. Kief,

By default, the start/stop intervals are set to 3 minutes, meaning you’d have to be stationary for at least that long for a “marker” to be set. However, this time window is customizable; I’ll review the settings used by other taxi companies and adjust your setting to the average.

If you’d like to view trips based on the taxi light status, you can create a trip log and select the “Taxi Log” option there—this log is not generated based on start and stop information but directly on the status of the “Available/Occupied” indicator.

We do not hide empty trips because the system is not only used for billing but also for monitoring by most customers. Many of our customers want to see exactly where and why drivers made empty trips and whether these were actually customer trips after all.

You can download the transaction data via the Local Explorer (save history locally) or via the API interface (programming knowledge required).

Best regards,

Patric Brand

Reading News

Reading News

I'm having trouble reading the messages that were sent to an IN1.

Here are the results:

return:=-1;count:=8;count2:=5;id1:=XXXXXX;data1:=12/28/2010 15@@4@@23 Hello Mr. Waespy, MESSAGE 02 ;ts1:=2010-12-28 15:23:25;gel1:=-1;id2:=XXXXXX;data2:=12/28/2010 15@@4@@22 Hello Mr. Waespy, MESSAGE 01 ;ts2:=2010-12-28 15:22:38;gel2:=-1;id3:=XXXXXX;data3:=12/27/2010 19@@4@@33 Line1 Line2 Line3;ts3:=2010-12-27 19:36:37;gel3:=-1;id4:=XXXXXX;data4:=Dec 26, 2010 11@@4@@05 Hello, please bring the signed delivery slips back with you! ;ts4:=2010-12-26 11:07:15;gel4:=-1;id5:=XXXXXX;daten5:=scgnoirhgioqhgioqerjhg;ts5:=2010-12-25 15:48:14;gel5:=-1;

return:=-1;count:=8;count2:=5;id1:=XXXXXX;data1:=Dec 28, 2010 15@@4@@22 Hello Mr. Waespy, MESSAGE 01 ;ts1:=2010-12-28 15:22:38;gel1:=-1;id2:=XXXXXX;data2:=12/27/2010 19@@4@@33 Line1 Line2 Line3;ts2:=2010-12-27 19:36:37;gel2:=-1;id3:=XXXXXX;data3:=Dec 26, 2010 11@@4@@05 Hello, please bring the signed delivery slips back with you! ;ts3:=2010-12-26 11:07:15;gel3:=-1;id4:=XXXXXX;daten4:=scgnoirhgioqhgioqerjhg;ts4:=2010-12-25 15:48:14;gel4:=-1;id5:=XXXXXX;data5:=12/25/2010 15@@4@@37 Hi Dad, call me when you're done!!;ts5:=2010-12-25 15:38:19;gel5:=-1;

1) @@4@@ appears; this is probably a ":", but it isn’t described

in the documentation. 2) If there are 8 messages, then with `Limit=1` the result should only contain 3 messages; however, there are 5, and they’re even duplicates!!

3) The arrays for the query look like this:
`array(7)` { ["module"]=> string(7) "message" ["action"]=> string(4) "list" ["mode"]=> string(1) "1" ["user"]=> string(8) "XXXXXX" ["pwd"]=> string(32) "XXXXXX" ["deviceid"]=> string(6) "6XXXXX" ["limit"]=> string(1) "0" }
array(7) { ["module"]=> string(7) "message" ["action"]=> string(4) "list" ["mode"]=> string(1) "1" ["user"]=> string(8) "XXXXXX" ["pwd"]=> string(32) "XXXXXX" ["deviceid"]=> string(6) "6XXXXX" ["limit"]=> string(1) "1" }

Can you help me with this?

Thanks and best regards,

Manfred Waespy

 

The issue with the limit has been resolved: it always increases in increments of 5.

Best regards,

Manfred Waespy

 

The @@4@@ was added very recently and is therefore not yet documented; I’ll update that.

With Limit=1, you should receive messages 1–5; with Limit=6, you should receive only messages 6–8, unless there are more on the server.

Best regards
, Patric Brand

GPSauge InOne E-Mail Account

GPSauge InOne E-Mail Account

Can email accounts such as 6XXXXX@gpsauge.mobi also be accessed via POP3?
If so, what are the login credentials needed to set them up in Outlook, for example?

 

Hello,

No, the account is not accessible, because all email addresses would be routed to a single account; otherwise, you would have access to other customers’ data.

Are API utilities planned for Delphi?

Are API utilities planned for Delphi?

Hello,

In the Download section, there are handy libraries for several languages that provide access to the Gateway API (api_utils.*)

Unfortunately, these aren’t available for Delphi yet, even though some examples in the online documentation already refer to them.

It would be possible to adapt the C# utilities, but since I’m more comfortable working in Delphi, I’d be happy if something ready-to-use were already available.

Best regards
, D. Metzinger

 

I’ll answer my own question, since I’ve already received a response from support (this might be of interest to other Delphi users).

An `api_utils.pas` file for Delphi (2009/10, and with minor adjustments, also compatible with Delphi 7 and later) is already in the works and will certainly be made available in the download section in a few weeks.

Display pixel dimensions

Display pixel dimensions

Hello,

What are the dimensions of the IN1 display?

Best regards

D. Sauerbrei

 

Dear Mr. Sauerbrei,

It is a 480 (H) x 272 (V) widescreen display.

Best regards from Schweinfurt
, Patric Brand

Application Design

Application Design

Hello,

Is there actually a skin you can use for Visual Studio to replicate the look of IN1 in your own application?

It would certainly improve usability if additional programs had the same visual layout.

Best regards from Marienfeld
, Markus Paus

 

Hello Mr. Paus,

I can’t offer a skin directly, but at the following link you’ll find all the buttons, windows, etc., that are used in our applications.

https://www.stage.gpsauge.de/die-gpsoverip/technologie/gui

Best regards
, Patric Brand

UniqueID in Order and Route Dispatch

UniqueID in Order and Route Dispatch

Dear Sir or Madam,

How consistent does the UniqueID need to be?

Is it sufficient for it to be unique to the account? In that case, I could simply include the delivery note numbers with the orders, since these are consistent across the system.

Best regards from Marienfeld
, Markus Paus

 

Hello Mr. Paus,

As a customer, you are free to define the UniqueID as you see fit. Like you, the majority of our customers use their own delivery note or order number for this purpose to establish a link to the system.

Best regards
, Patric Brand

FMS Data Retrieval

FMS Data Retrieval

Dear Sir or Madam,

Could you please assign me an active device with a device ID for testing purposes?
Specifically, one that can be used to retrieve the FMS data?

Thank you very much and best regards,

Manfred Waespy

 

Hello Mr. Waespy,

For this purpose, you can use, for example, the virtual “Demo Plane” (ID 899994) from the demo account.

Best regards
, Patric Brand

Questions About the Development Environment

Questions About the Development Environment

Hello,

We’ve taken a close look at your products. I’m more impressed than ever. To prepare a quote, I need a few more details that I couldn’t find directly in the documentation:

- Is this software integrated into the base system as an extension? If so, how exactly—as a plugin, etc.?
- Is there a standardized GUI framework used to present the user interface and implement recurring tasks, such as
wizards, dialog boxes, and visual elements?
- How is your base system tested? Is there a system in place to automate the tests?
—Which development environment should be used (including extensions)?

Here are some general questions
: - How exactly do you ensure the security and integrity of data during transmission and storage in your data center?
- Do you have access to customer data?
- Could a potential attacker gain access to customer data, e.g.
, by eavesdropping on the GSM connection?

Best regards

Mike
Werner________________________

 

Hello Mr. Werner,

I’ll address your points directly:

[color=FF9933]- Is this software integrated into the base system as an extension? If so, how exactly—as a plugin, etc.?[/color]

The software is included as a standalone executable on the SD card and is then launched from the “Application” menu item under “System.” Communication takes place via the IN-OUT box on the device.

[color=FF9933]- Is there a standardized GUI framework used to present the user interface and implement recurring tasks, such as wizards, dialogs, and display elements?[/color]

Unfortunately, there is nothing available for this at the moment; however, we plan to completely overhaul the menu from a technical standpoint in the future and may incorporate something along these lines then.

[color=FF9933]- Is there a testing framework for unit tests? [/color]

No

[color=FF9933]- How is your core system tested? Is there a system for automating the tests?[/color]

We do not have an automated test; we have internal and external testers who are provided with the latest beta versions and test them in real-world conditions.

[color=FF9933]- Which development environment should be used (including extensions)?[/color]

MS Visual Studio is currently used by all developers; we could provide you with the relevant settings, etc.

[color=FF9933]
Here are some general questions:

- How exactly do we ensure the security and integrity of the data during transmission and storage in your data center?[/color]

Integrity is ensured through various checksums and verifications before, during, and after the transmission and storage of data. Data records cannot be modified (written, saved, or read) without authentication.

[color=FF9933]- Do you have access to customer data?[/color]

Access to customer data is only granted via the API interfaces with the appropriate authentication, which ensures that users only have access to their own data.

[color=FF9933]- Could a potential attacker gain access to customer data, e.g., by eavesdropping on the GSM connection?[/color]

We do not use standard protocols, so an attacker would need to have detailed knowledge of, for example, DATAoverIP to access the data. Furthermore, the attacker would be able to access “only” this one “mailbox.”

Best regards

Patric Brand

Type of Application

Type of Application

Hello,

A question came up yesterday regarding the GUI library being used.

Are the IN1 applications WPF or WinForms applications?

Best regards,
Roger

 

Hello,

Our programmers use C++; in this case, we rely on the Windows API.
However, if you’d like to program in C#, you can choose which framework to use (WinForms or WPF).

Best regards

Patric Brand

Connecting External Signals

Connecting External Signals

Dear Sir or Madam,

I am a student at Ostfalia University of Applied Sciences, formerly the Braunschweig/Wolfenbüttel University of Applied Sciences.
As part of a project at the university, I am currently writing my term paper, which focuses on a GPS system that transmits not only the current route and speed but also the vehicle’s fuel consumption.
I learned from my instructor, Mr. Thomas Cerbe—with whom you have previously been in contact—that your company has already provided two vehicle tracking systems (GPSauge) to the university. My goal now is to upgrade these GPS systems so that I can also receive data on the vehicle’s charge level (fuel consumption).
What options do you offer me? On your website, I saw the GPSauge IN1 navigation device, which apparently allows for the transmission of a larger volume of data.

I would appreciate it if you could provide me with more detailed information about the IN1 and send me further details regarding my project.

Sincerely,

Vanessa Wrobel

 

Hello Ms. Wrobel,

On the GPSauge MI-6 (device without a display), you can freely configure two inputs—for example, to transmit one analog signal and one digital signal. The connection is made via the input box.

Furthermore, with the MI-6, you would have the option to tap into the FMS bus. Although this is a data bus for trucks and buses, companies such as Squarell offer CAN diodes/CAN converters for most current vehicle types that convert signals from the CAN interface to the FMS bus.

Best regards,

Patric Brand

 

Hello Mr. Brand,

Could you briefly provide the technical specifications for the Inputbox?

Best regards, Peter Conradi

 

Dear Mr. Conradi,

In its standard configuration, the Input Box has two 12/24V digital ports. Alternatively, you can choose an analog port instead of the second digital port.
Both inputs are protected against overvoltage and reverse polarity.

Best
regards, Patric Brand

Connecting a Construction Compressor

Connecting a Construction Compressor

Hello,

We would like to monitor our construction compressors. These are 10-cubic-meter compressors, and we would like to track their speed, pressure, and runtime.

Thank you in advance for your feedback.

 

Hello,

Implementation shouldn’t be a problem—if your compressor has electronic pressure sensors, you can connect them directly to your GPSauge using the digital/analog cable.
You would then just need to send us a data sheet for the pressure sensor so we can configure the appropriate conversion (from bit value to pressure).

If your compressor does not have electronic pressure sensors, you would need to retrofit one accordingly.

Best
regards, Patric Brand

 

-Note-

Unfortunately, the customer is required to retrofit pressure sensors; we will integrate the pressure display into our Explorer by mid-March (similar to the temperature/operating voltage display).
The compressor’s runtime is displayed in the status bar (digital signal).

Questions About the Logbook

Questions About the Logbook

Hello Mr. Brand,

When I generate a trip log using the selection variant and select “Taxi Log” under “Type of Evaluation,” I notice the following:

Question 1.
I never see a color in the taxi indicator under the “Ptaxi” column. Does that mean this is an occupied trip?

Question 2.

In taxi mode, shouldn’t the number 3—not the 1—be highlighted in yellow in the input box? Also, on the status board, I only ever see the color green, which indicates a commute or an unoccupied trip. Shouldn’t the color “blue” also appear for a trip, indicating a business trip? But I can’t see that in the report! This makes me feel like there’s still some wiring issue in the taxi!

 

Good morning, Mr. Kief,

Re 1.

You must first activate the taxi indicator; you can do this using the “Taxi” button at the top center of the trip log screen.

The “P” stands only for “private trip” and has nothing to do with the taxi icon below it.
Use P/WA/G to set the trip type—i.e., “Business,” “Private,” or “Commute.”

Re 2.

The status board is completely separate from the taxi sign; for the status board, you must actively change the status within the device. With the taxi sign or the input box, the switch happens fully automatically, so to speak.

You can easily verify this by changing the status, for example, from green to blue; within 3–4 seconds, the color in the Web Explorer or the bar in the local Explorer should also change.

Best regards
, Patric Brand

 

Hello Mr. Kief,

I just took another look at the debug files from your device. Since your device is constantly switching back and forth between Digital 1 and 3, the taxi light is likely connected to Signal 1 on the input box… However, Signal 1 is intended for an alarm button.

The taxi light should always be connected to Signal 2—this could be the reason why the taxi light isn’t displayed correctly in the trip log.

Account Check

Account Check

Dear Sir or Madam,

Please help me determine why our account is currently not recording the routes traveled.

Could this be due to the use of IE6?
The timeline is also inactive, as indicated by: undefined.

What should I do to resolve this issue?

Thank you!

Best regards,

Christian Hahn

 

Good morning, Mr. Hahn,

As you correctly suspected, the issue is due to IE6; WebExplorer is only compatible with IE7 and later versions.

To use WebExplorer, you must use a newer or different browser such as Safari, Chrome, Firefox, or IE7+.

Best regards
, Patric Brand

DATAoverIP Files

DATAoverIP Files

Hello,

We’re trying to send a file to the end device. We’re getting the response “return:=-1,” but nothing is reaching the end device. I’ve attached a test program for you. Perhaps you could tell us what we’re doing wrong, or is the problem possibly with the gateway?

Best regards

 

Hello Mr. Holterbosch,

Sorry for the late reply.&nbsp;
We noticed the following in your example:<br />
<br />
Line 233 in api_utils.vb should read

Dim buffer() As Byte = myWebClient.UploadFile(ServerURL, "POST", Filename)

So ServerURL instead of URLPost.

With this change, we were then able to successfully upload the files to the gateway.

Best regards
, Patric Brand

 

Oh, that’s embarrassing. But since it was always returning -1, I didn’t even look there.

Thank you very much, and my apologies

 

No problem,

the -1 thing is really misleading, since the code says `if Return="" Return=-1`.

We should probably remove that from our examples J.

Best regards
, Patric Brand

Starting a tour

Starting a tour

Dear Guys,

I’ve attached a sample tour file which is copied from www.gpsoverip.de/portale/entwicklerportal/entwicklerdokumentation/inhaltsverzeichnis/tour/tour-send/

I have 4 GPS satellites online. When I drop the file in \DataoverIP\IN folder I receive the notification.

But when I click Details I don’t see any information from the rte file. If I accept the tour it launches the navigator, but it just waits on the main screen.

I don’t think this is the normal behavior, so do we need an update? Or is there a problem with the file?

Actually we would prefer to bypass the notification and the accept screens, because we will trigger this function from our software. Any chances for that?

Best regards

Emre Sebat
Software Supervisor
Yaz&#305;l&#305;m Sorumlusu

 

Hi Emre,

I know about this Problem, lots of customers ask me about that.

The tour is empty when the encoding of the file is wrong; the file you have sent is coded in ANSI so the WinCE can’t interpret it the right way.

If you convert it to UTF-16 equals UCS2 little endian it works.

Best regards
Patric

 

Hi Patric,

Ok, now I can see the message on details screen but when I accept it, navigator doesn’t do anything. It still waits on the main screen. Shouldn’t it start a navigation automatically?

 

Hi Emre,

no sorry. The navigator only starts automatically when he gets a job, on a tour you have to select the tour manually via –Navigation –Tourlist

Best regards
Patric

 

Hi Emre,

I am happy to give you a solution for this problem.
We created a new API where you have the opportunity to start a tour automatically.

Please add the parameter "mode=auto" to your http post and the tour will start without the detour through the tourlist in M&G.

BR
Patric

Send Navigation Request

Send Navigation Request

Hello,

we’re having the following issue: We send a job to a device. We receive the response “result:=-1” from the gateway, and the device also displays a “new job” message. However, when you open the job, the number and text are missing from the message. Only a few “===” symbols are displayed. If you then click “Accept,” map&guide opens, but no route is calculated.

The request looks like this:

\\http://www.apioverip.de/?module=job&action=send&deviceid=600197&gpxpackage=<gpxversion="1.1" creator="GPSoverIP WebExplorer" xmlns="http://www.topografix.com/GPX/1/1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 \\http://www.topografix.com/GPX/1/1/gpx.xsd"><name>242130</name><desc>JOB</desc><uniqueid>a4e56d7c</uniqueid><author><name>GPSoverIP GmbH</name><email>support@gpsoverip.de</email><link>www.gpsoverip.de</link></author><copyright>GPSoverIP GmbH</copyright><rte><name>Testjob</name><cmt>Please drive Thorsten home!</cmt><src>242130</src><number>1</number><type>JOB</type><rtept lat="51.2794003" lon="6.3782601"></rtept></rte></gpx>&user=242130&mode=3&pwd=xxxxx

 

Hello,

please check the encoding; this error usually occurs when the wrong encoding is used.

Please make sure the data (gpxpackage) is encoded in UTF-8.

 

Hello,
the data is now being sent as UTF-8, but unfortunately, we’re still having the same problem. We’ve also switched from HTTP GET to HTTP POST. Unfortunately, that didn’t work either.

We’re slowly running out of ideas.

 

Hello Mr. Holterbosch,

Thank you very much for your example; it helped us pinpoint the error more quickly.

Your source code with the changes is absolutely correct and functional;
the problem was in our database.

We had recently expanded the database, and adding several new tables and modules caused a conflict with the GPX package during order dispatch.
We fixed this issue immediately and ran some tests using your example.

Order dispatch should now work without any issues.

Thank you very much

Best regards

Patric Brand

Questions About Programming

Questions About Programming

I'm currently having major problems with your interface.

I have listed the queries below along with your responses:

1. Why do I get the same response for queries 1 and 2????? For query 2, I set Mode=0 and, according to your documentation, should only receive messages coming from the vehicle.

2. Why aren’t the messages transmitted to the device today being sent to me???

3. Why do I get an error message when there are umlauts? It can’t be due to the encoding, since query 3 was also encoded in UTF-16 and I didn’t receive an error message.


Query 1:

www.apioverip.de

Response 1:
return:=-1;count:=6;count2:=5;id1:=115833;data1:=016000001Date: 2009-08-21 11:55:41 +0100
Content:0-26: UTF8

ABCDEFGHIJKLMNOPQRSUUVWXYZ.;ts1 := 2009-08-21 11:55:47; gel1 := 0; id2 := 115829; data2 := 016000001Date: 2009-08-21 11:52:42 +0200
Content:0-64: UTF8

Message from 08/21/2009 11:52 successfully transmitted to IN1.;ts2:=2009-08-21 11:52:43;gel2:=0;id3:=115821;data3:=016000001Date: 2009-08-21 11:45:50 +0200
Content:0-64: UTF8

Message dated August 21, 2009, 11:26 successfully transmitted to IN1;ts3:=2009-08-21 11:45:50;gel3:=0;id4:=115820;data4:=016000001Date: 2009-08-21 11:45:24 +0200
Content:0-64: UTF8

Message from August 21, 2009, 11:26 successfully transmitted to IN1;ts4:=2009-08-21 11:45:24;gel4:=0;id5:=115816;data5:=016000001Date: 2009-08-21 11:43:39 +0200
Content:0-64: UTF8

Message dated August 21, 2009, 11:04 successfully transmitted to IN1;ts5:=2009-08-21 11:43:39;gel5:=0;

Query 2:
www.apioverip.de

Response 2:
return:=-1;count:=6;count2:=5;id1:=115833;data1:=016000001Date: 2009-08-21 11:55:41 +0100
Content:0-26: UTF8

ABCDEFGHIJKLMNOPQRSUUVWXYZ.;ts1 := 2009-08-21 11:55:47; gel1 := 0; id2 := 115829; data2 := 016000001Date: 2009-08-21 11:52:42 +0200
Content:0-64: UTF8

Message from 08/21/2009 11:52 successfully transmitted to IN1.;ts2:=2009-08-21 11:52:43;gel2:=0;id3:=115821;data3:=016000001Date: 2009-08-21 11:45:50 +0200
Content:0-64: UTF8

Message dated August 21, 2009, 11:26 successfully transmitted to IN1;ts3:=2009-08-21 11:45:50;gel3:=0;id4:=115820;data4:=016000001Date: 2009-08-21 11:45:24 +0200
Content:0-64: UTF8

Message from August 21, 2009, 11:26 successfully transmitted to IN1;ts4:=2009-08-21 11:45:24;gel4:=0;id5:=115816;data5:=016000001Date: 2009-08-21 11:43:39 +0200
Content:0-64: UTF8

Message dated August 21, 2009, 11:04 successfully transmitted to IN1;ts5:=2009-08-21 11:43:39;gel5:=0;

Query 3:
www.apioverip.de with ue

Response 3:
return:=-1;


Query 4:
www.apioverip.de with "ü

" Answer 4:
"Error in Webdienste.szGetResponseVonRequest
The remote server returned an error: (500) Internal Server Error."

 

Dear Mr. Herold,

Thank you very much for the information.

We have reviewed the situation and can provide the following information:

API queries are case-sensitive, which means that the parameters in the requests must be in lowercase. In this specific case, this means that “Mode” (since it is capitalized) is an invalid parameter and therefore cannot be mapped. Once the request has been adjusted, there should be no further issues.

Here is a sample code snippet:

www.apioverip.de

or

www.apioverip.de

Regarding points 3 and 4.

It is essential to adhere to HTTP conventions. We have noticed that the URL string you provided contains unencoded spaces and umlauts. Text containing such characters must be properly encoded before being posted. We recommend that you always use HTTP posts for the examples you send us.

We hope this post has been helpful. Please feel free to contact us with any further questions.

Sincerely,
Patric Brand

Send Tour to GPSauge

Send Tour to GPSauge

Dear Sir or Madam,

I am currently in the process of programming the interface between "Gehr Dispo SP" and your system.

I have no problems retrieving the account and the location. However, whenever I try to send a route, I receive a 500 "Internal Error.

" Can you tell me what the problem is with my data?

\\http://www.apioverip.de/?module=tour&action=send&user=50006&pwd=FE01CE2A7FBAC8FAFAED7C982A04E229&deviceid=201345&gpxpackage=<gpx Version = "1.1" creator = "GPSoverIP WebExplorer"
xmlns = "http://www.topografix.com/GPX/1/1" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.topografix.com/GPX/1/1 \\http://www.topografix.com/GPX/1/1/gpx.xsd">
<name>Gehr Dispo SP</name> <desc>TOUR</desc> <uniqueid>1893</uniqueid>
<author><name>Gehr Dispo Sp</name>
<email>support@gpsoverip.de</email>
<link>www.gpsoverip.de</link>
</author><copyright>GPSoverIP GmbH</copyright><rte><name>CIBA Chemie GmbH</name><cmt></cmt><src>Gehr Dispo Sp</src><number>1</number><type>TOUR</type><rtept lat= " 49.25019 " lon= " 7.35406 ">
<description>Gasstrasse 1/D 66482 Zweibrücken</description>
</rtept></rte><rte><name>Dynamit Nobel GmbH</name>
<cmt></cmt><src>Gehr Dispo Sp</src><number>2</number><type>TOUR</type><rtept lat= " 49.75616 " lon= " 6.6489 "><description>Ostallee 7-13/D 54290 Trier</description></rtept></rte></gpx>

Best regards
, M. Herold

 

Hello Mr. Herold,

I briefly reviewed your example and found a few errors (marked in red):

[color=red]http://www.apioverip.de/?module=tour&action=send&user=50006&pwd=FE01CE2A7FBAC8FAFAED7C982A04E229&deviceid=201345&gpxpackage=[/color]
<gpx version="1.1" creator="GPSoverIP WebExplorer"
xmlns="http://www.topografix.com/GPX/1/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.topografix.com/GPX/1/1
\\http://www.topografix.com/GPX/1/1/gpx.xsd">
<name>Gehr Dispo SP</name>
<desc>TOUR</desc>
<uniqueid>1893</uniqueid>
<author><name>Gehr Dispo Sp</name>
<email>support@gpsoverip.de</email>
<link>www.gpsoverip.de</link>
</author><copyright>GPSoverIP GmbH</copyright><rte><name>CIBA Chemie GmbH</name><cmt></cmt><src>Gehr Dispo Sp</src><number>1</number><type>TOUR</type>
<rtept lat= " 49.25019 " lon= " 7.35406 ">
<description>Gasstrasse 1/D 66482 Zweibrücken</description>
</rtept>
[color=red]</rte>
<rte><name> </name>
<cmt></cmt><src>Gehr Dispo Sp</src><number>2</number><type>TOUR</type>[/color]
<rtept lat= " 49.75616 " lon= " 6.6489 ">
<description>Ostallee 7-13/D 54290 Trier</description>
</rtept>
</rte></gpx>

The post should look like this

<gpx Version = "1.1" creator = "GPSoverIP WebExplorer"
xmlns = "http://www.topografix.com/GPX/1/1" xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation = "http://www.topografix.com/GPX/1/1
\\http://www.topografix.com/GPX/1/1/gpx.xsd">
<name>Gehr Dispo SP</name>
<desc>TOUR</desc>
<uniqueid>1893</uniqueid>
<author>
<name>Gehr Dispo Sp</name>
<email>support@gpsoverip.de</email>
<link>www.gpsoverip.de</link>
</author>
<copyright>GPSoverIP GmbH</copyright>
<rte>
<name>Enter tour name</name>
<cmt>Information text about the tour for the driver</cmt>
<src>Gehr Dispo Sp</src>
<number>1</number>
<type>TOUR</type>
<rtept lat= "49.25019" lon= "7.35406">
<description> CIBA Chemie GmbH Gasstrasse 1/D 66482 Zweibrücken</description>
</rtept>
<rtept lat= "49.75616" lon= "6.6489">
<description> Dynamit Nobel GmbH Ostallee 7-13/D 54290 Trier</description>
</rtept>
</rte>
</gpx>

You must not include multiple rte entries or tours in the GPX file; unfortunately, Map&Guide Navigator does not support this.

Instead, all destinations must be grouped into “one tour,” which eliminates the need for the additional `cmt`, `src`, and `number` tags.

Please make sure to submit the GPX data set via HTTP POST rather than HTTP GET.

Best regards

Patric Brand

 

Hello Mr. Brand,

I’ve changed the transmission method, but I’m still getting the internal error (500).

The first part is the header—I do have to include that with every GET request, right?

Best regards

, M. Herold

 

Hello Mr. Herold,

I meant that you should avoid using GET, since the HTTP GET request has a relatively small character limit. Therefore, you must use HTTP POST for tours, orders, and long messages.

Best regards
, Patric Brand

External Interfaces

External Interfaces

Hello,

I checked the website http://www.stage.gpsauge.de/inone, but unfortunately I can’t find any information about the digital and analog ports on that page.

The reason is that I’d like to use or market the navigation system in the public safety sector (emergency services, etc.).

The vehicles’ locations should then be displayed on the screen and transferred directly to the navigation system.

However, BOS uses FMS, so I need an external interface.

Best regards,

Horst Gebhardt

 

Hello Mr. Gebhardt,

The ports have a voltage range of 0 V – 3.3 V; I’ll send you the exact threshold voltages and the datasheet for the analog input’s A/D converter via email.

Access to Map&Guide Navigator would also be easily possible, as M&G provides a relatively good API through which you can supply the Navigator with information and also retrieve status information.

Greetings from Schweinfurt
, Patric Brand

Device ID & GPS Data

Device ID & GPS Data

Hi,

I have 2 questions for you:

1. How do I retrieve the device ID from my application? I need to use the device ID in my web service calls.

2. How do I retrieve the GPS info on the device? Since datacom.exe is running I think it will read the GPS com port so I can’t share it. I don’t need to read it in an interval, when a driver updates an order state I’ll need the current GPS info.

I hope I can get this data, it would make my job easier.

Best regards.

Emre

 

Hi Emre,

1.
That’s the definition:

BOOL MISC_Read_Raw_Flash(DWORD sect, LPBYTE pBuf, DWORD numSects,LPBYTE pSectInfo );

Here is how we use it:

MISC_Read_Raw_Flash(64, pBuf, 1,0); // parameter1:what is page?, 2:save to the point of Byte(At lease 256), 3:The number of page, 4:NULL

When everything work’s fine you’ll get a “ return 1;”

2.
First use the following:

HANDLEhHLD=CreateEvent(NULL,FALSE,FALSE,L"HLD_get_gps";

CloseHandle(hHLD);

after that you'll find the GPS-Data in the registry

HKEY_CURRENT_USER/HLD/GPS_Latitude REG_SZ-String
HKEY_CURRENT_USER/HLD/GPS_Longitude REG_SZ-String
HKEY_CURRENT_USER/HLD/GPS_current REG_DWORD 0 <=> no actual position , 1 <=> position updated
HKEY_CURRENT_USER/HLD/GPS_Time REG_DWORD 191410.000 => 19:14:10 Time UTC
HKEY_CURRENT_USER/HLD/GPS_Date REG_DWORD 180709 => Date 18.07.09

Is this all you need?

best regards
Patric

I'm not getting a reply to my post

I'm not getting a reply to my post

Hello,

I’ve posted a “job” request several times now.
Unfortunately, I always just get

<html><body>GPSoverIP<br />LIVEAPI Version 2.0<br/></body></html>

in response to my post.
<br />
Bernd Ott<br />

 

Dear Mr. Ott,

The response:

<html><body>GPSoverIP<br />LIVEAPI Version 2.0<br/></body></html>

is generated if the corresponding module is not available at the specified address.

Unfortunately, the "Job Module" cannot be accessed via the URL live.apioverip.de; instead, you must post to the URL http://www.apioverip.de.

The address to which the request must be posted is always listed in the orange section at the very top under “Service.”

 

Hello,

can you tell me why the following POST request:

apioverip.de/?module=job&action=send&pwd=xxxxxxxxx&user=241787&deviceid=600241&data=ComeToBullshitCastle&Longitude=0.00&Latitude=0.00
<br />

is acknowledged, but nothing happens on GPSINONE? Is there something that needs to be activated?
<br />
Bernd Ott<br />

 

Hello Mr. Ott,

The order submission isn’t working because the GPX data set is missing from the post shown.

For example:

“<gpx
version="1.1"
creator="GPSoverIP WebExplorer"
xmlns="http://www.topografix.com/GPX/1/1"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.topografix.com/GPX/1/1
\\http://www.topografix.com/GPX/1/1/gpx.xsd"><name>50006</name><desc>JOB</desc>
<author>
<name>GPSoverIP GmbH</name><email>support@gpsoverip.de</email> <link>www.gpsoverip.de</link>
</author>
<copyright>GPSoverIP GmbH</copyright>
<rte>
<name>Job Name</name>
<cmt>Please pick up the container from Company XY </cmt>
<src>50006</src>
<number>1</number>
<type>JOB</type>
<rtept lat=”47.948151” lon=”91.618986”>
</rtept>
</rte>
</gpx>“;

The gateway responds with return=-1 because a valid module with an action and the other required parameters was recognized.
The contents of the individual parameters are only checked for “user” and “pwd.”

VB.net -> Questions with the unzip

VB.net -> Questions with the unzip

We made some tests with the API and I have some questions for you :

1. I tried Devices – Get - PackageList module to retrieve the GPS log. The response is compressed as you told me, but although I tried eveything I couldn’t uncompress it using zlib library.
I replaced the @@1@@, @@3@@, @@4@@ strings, skipped the first 4 characters. If I don’t do these I receive “Unknown compression method” from zlib. If I do the replacements I receive “Dictionary needed” exception fro mzlib. So do you have an example for any .net languauge?

2. I tried Devices –Get - Position API to retrieve the current position of the device but always received “return:-1” result from http://www.apioverip.de address.

Best regards
Emre

 

Hi Emre,

1. My colleague will make an example for you. But normally you did everything the right way -replace and skip the first characters- have you tried some other unzips?

2. Please use the URL live.apioverip.de for the post, because all the live-data comes through this url. Thats why you didn't get any other answer.
You'll find the URL on top of the orange part in the API documentation.

Best regards
Patric

 

Good Morning Patric,

Your system runs on php, so you’re using gzcompress and gzuncompress methods. I was confused about these special character replacements.

For @@1@@ your example uses chr(0) replacement. chr(0) is empty (null) and chr(32) is space (‘ ‘). So we’re replacing @@1@@ with an empty string, not a space. Is this the correct replacement?

Another thing is the zlib exception, I receive an exception like “need dictionary”.

According to zlib (http://www.zlib.net/manual.html#inflateSetDictionary) you can use a inflateSetDictionary method if you received and “Z_NEED_DICT” error. So this means deflateSetDictionary was used before the compression so the client needs the same dictionary to decompress the data. Is there a special string which used?

Best regards

 

Hi Emre,

we developed a little example for the use with VB .Net.
First we faced the same problems you explained.
Problem is a matter of letter encoding.

The bold line in the code seems to be the solution.

Replacement of @@1@@ has to be done with chr(0) not with ‘’.

Writing the stream to a file is not the smartest solution, but this another task.

If there are further questions, to not hesitate to contact us.

Please keep us up-to-date. Thanks.

++++++++++++++++++++++++++++++++++++++++++++++++
Public Shared Sub CopyStream(ByRef input As System.IO.Stream, ByRef output As System.IO.Stream)

Dim num1 As Integer
Dim buffer1 As Byte() = New Byte(2000 - 1) {}
num1 = input.Read(buffer1, 0, 2000)
Do While (num1 > 0)
output.Write(buffer1, 0, num1)
num1 = input.Read(buffer1, 0, 2000)
Loop
output.Flush()
End Sub

Private Sub button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim outFileStream As New System.IO.FileStream("C:\decompressed.txt", System.IO.FileMode.Create)

Dim zStream As New zlib.ZOutputStream(outFileStream)

'Dim inFileStream As New System.IO.FileStream(inFile, System.IO.FileMode.Open)

Dim request2 As Net.HttpWebRequest = Net.HttpWebRequest.Create("...URL..."

request2.Method = "GET"

Dim response2 As Net.HttpWebResponse = request2.GetResponse

Dim reader2 As IO.StreamReader = New IO.StreamReader(response2.GetResponseStream, System.Text.Encoding.Default)

Dim TextFromServer As String = reader2.ReadToEnd

Dim strToReplace As String = ""

strToReplace = TextFromServer
strToReplace = Strings.Replace(strToReplace, "@@1@@", Chr(0))
strToReplace = Strings.Replace(strToReplace, "@@3@@", ";"
strToReplace = Strings.Replace(strToReplace, "@@4@@", ":"
strToReplace = Strings.Right(strToReplace, Strings.Len(strToReplace) - 4)

FileOpen(1, "C:\temp.txt", OpenMode.Binary, OpenAccess.Write)
FilePut(1, strToReplace)
FileClose(1)

Dim inFileStream As New System.IO.FileStream("C:\temp.txt", System.IO.FileMode.Open)

Try
Form1.CopyStream(inFileStream, zStream)
Finally
zStream.Close()
inFileStream.Close()
outFileStream.Close()
End Try

MsgBox("Fertig"
End Sub

++++++++++++++++++++++++++++++++++++++++++++++++
Regards
Matthias

 

Hi Matthias,

Thanks for the example, I’m not in the office today so I’ll inform you about the results tomorrow.

Actually I’m surprised because I think I tried all encoding options, but if it works then I missed something before.

Best regards.

Emre

 

Hi Emre,

The silly thing is that you have to set the option “default”.
It was also not really the option I would have been selected.
Shouldn’t it be the default anyway?! But it worked afterwards

Have a nice day.
Matthias

 

Hi,

I’ve successfully got the API response.
I’ll try more API methods and inform you if I’m stuck.

Thanks for the support.

Best regards.

Ask us a question

Presse Formular

Presse Formular (Inhalt)
Die Sicherheit Ihrer persönlichen Daten hat für uns höchste Priorität. Weitere Einzelheiten finden Sie in unserer Datenschutzerklärung.

Please contact us

< div
+49 9721 796 973 30
+49 9721 796 973 59

Please provide your phone number if you would like us to call you back.

Suche
Hardware-Komponenten
Software-Komponenten
Mediathek
E-Mail
Telefon
Support
Zum Online-Shop
Zum GPS-Explorer
Sprache wählen
ENGRITESFRTR
Seite drucken