Skip to main content

Windows

Contents

Windows Installation Guide

Installing CoPilot Windows version

  1. You will need to download the CoPilot application and SDK files from the CoPilot Portal.

  2. Unzipping the downloaded packages you will need to install CoPilot to your device, see below relevant sections for basic install instructions. Once installed the first run will require a product key to be entered and on these devices map data is usually preloaded (maps would be downloaded from the CoPilot Portal), but can be downloaded in the application.

  • Windows 10 Laptop

    • Extract the application .zip file and run the setup.exe

    • Map data can be preloaded or downloaded from within the CoPilot application if required

Note: You can return to the CoPilot Portal at any time for the latest SDK and to install the latest CoPilot app updates.

CoPilot SDK Contents

CoPilot SDK for Windows can be used for C#, VB.NET and C++.

The CoPilot SDK Package contains the following:

Content Description
C#/Header Header files for C++ and .NET Integration
C++/Header Header files for C++ and .NET Integration
Library/POCKETPC_ARMV4WM6 LibraryWin32 Link (.LIB) and Runtime (.DLL) files to support required platforms
SDK Sample Application Sample applications in C#, with source code and project

Note: SDK API details contain API declaration, parameter description, and functional description, sample code and relevant platform support for all SDK API’s. The API declaration is in C/C++, so it can be used for C++ integration. However, .NET developer can get the syntax of API declaration from AlkMsg.cs.

SDK Library

  1. alksdk.dll is a static library and can be used on supported platforms.

  2. SDK and CoPilot communicate using TCP/IP connection with localhost. Messaging between Client and CoPilot can be started by using function Msg_StartUp.

  3. Before using any API make sure you use Msg_IsConnected to ensure that the connection is established between client and CoPilot. The only exception to using Msg_IsConnected before an API is when using Msg_StartUp and Msg_HasStarted.

  4. Client application can use Msg_UpdateOption to add callback function for given message. Client application needs to make sure that they remove the callback when they no longer need it.

Note: It is recommended to update the alksdk.dll with each update of CoPilot, keeping the version numbers consistent between CoPilot and the SDK library

Third Party Application Development

  1. Following are the build configuration for C++ application

    1. Include ALKMsg.h into project from C++Header directory.

    2. Link appropriate Alksdk.lib according to the platform with your application code.

    3. Make sure the alksdk.dll and user.cfg reside in the same directory as your application.

  2. Following are the build configuration for .NET application

    1. Include ALKMsg.cs into project from C#Header directory.

    2. Make sure the alksdk.dll and user.cfg reside in the same directory as your application.

    3. Client application will need to define the “NET_COMPACTFRAMEWORK” in project properties. (Project -> Properties-> Build-> Conditional compilation symbols)

  3. During runtime, make sure that alksdk.dll and user.cfg file is available on same directory as your application .exe present. If either alksdk.dll or user.cfg is missing then SDK will not work.

SDK Sample Application

SDK App (project name SDKApp) is a sample application developed in C#.NET using Visual Studio 2005 and using .net compact framework 2.0 or visual studio 2012/2015 to demonstrate integration between SDK and CoPilot.

How to test functionalities

  1. Make sure that CoPilot is installed on the device and activated. It should contain SDK feature in product key in order to test the SDK functionalities.

  2. Copy “SDK Sample Application sdkapp” folder to device or desktop based on platform.

  3. Make sure that you copied relevant platform alksdk.dll from Library{Relevant Platform} location to sdkapp folder.

  4. Sdkapp.config file contain the path where CoPilot is installed. Please amend the “CoPilot Path” variable to relevant path.

  5. Once alksdk.dll is copied and SDK path has changed, launch the SDKApp.exe.

  6. Click on Start CoPilot, it will launch the CoPilot if not previously running otherwise it will show CoPilot. Now click MenuHide CoPilot to hide the CoPilot and show SDK App.

  7. Once messaging is connected, you can use the rest of the SDK functionalities by using different button and menus.

  8. To exit CoPilot, press Exit CoPilot button.

Troubleshooting

Error Connecting to Internet Explorer and CoPilot SDK

If you are having problems when connected to CoPilot SDK and using Internet Explorer on the device using GPRS it does not appear to affect WLAN. When you launch Internet Explorer you receive a warning message

This appears to be an issue with a Microsoft API, it is not allowing any other server connection once you use Connection Manager API.

We have three possible workaround solutions to resolve this issue please choose which ever one you feel is suitable for your integration:

Workaround 1

This solution should work in majority of cases, please test this implementation first.

Current architecture:

Your application is working as a server

CoPilot is working as a client.

We need to swap the client server relationship, so that your application can use GPRS connection and connect to CoPilot. In order to do so please use following settings:

In user.cfg (CoPilot)

[ConnectionInfo1]
"Enabled"=1
"ListenForSockets"=1

In User.cfg (Your application or SDK App)

[ConnectionInfo1]
"Enabled"=1
"ListenForSockets"=0

Workaround 2

Both CoPilot SDK and the GPRS connection are using http​:​//127.0.0.1 this is the cause of the conflict.

Changing the configuration to “LocalHost” for CoPilot and the SDK will resolve.

In user.cfg (CoPilot)

[ConnectionInfo1]
"Enabled"=1
"ListenForSockets"=1
"ListenerIP"="localhost"

In User.cfg (Your application or SDK App)

[ConnectionInfo1]
"Enabled"=1
"ListenForSockets"=0
"ListenerIP"="localhost"

Workaround 3

Although not perfect solution our testing shows that by first opening and keeping the SDK connection open throughout the device usage, it appears as though this works around the issue.

Last updated August 20, 2024.
Contents