Configuration
The following is the js_siteConfig.js the configuration file for the WebClient. This file is used to configure the WebClient to connect to the correct server and to enable or disable features.
 /**
*
* SITE Configuration File
*
* Auth: Mohammad Hefny
*
*/
 /**
 * Communication Server
 */
 // Default Configuration
 export let CONST_TEST_MODE = false;
 export let CONST_PROD_MODE_IP = 'airgap.droneengage.com';
 export let CONST_PROD_MODE_PORT = '19408';
 export let CONST_TEST_MODE_IP = '127.0.0.1';
 export let CONST_TEST_MODE_PORT = '19408';
 export let CONST_TEST_MODE_ENABLE_LOG = false;
 export let CONST_TITLE = 'Drone Engage';
 /**
 * Links that are used in Header
 */
 export let CONST_HOME_URL = "https://cloud.ardupilot.org/";
 export let CONST_MANUAL_URL = "https://cloud.ardupilot.org/";
 export let CONST_FAQ_URL = "https://cloud.ardupilot.org/de-faq.html";
 export let CONST_CONTACT_URL = "https://droneengage.com/contact.html";
 // CHOOSE YOUR MAP SOURCE
 export let CONST_MAP_LEAFLET_URL = "https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiaHNhYWQiLCJhIjoiY2tqZnIwNXRuMndvdTJ4cnV0ODQ4djZ3NiJ9.LKojA3YMrG34L93jRThEGQ";
 //export let CONST_MAP_LEAFLET_URL = "https://airgap.droneengage.com:88/{x}_{y}_{z}.jpeg" //LOCAL MAP
 /**
 * Location of GCS are not sent over network. Only The existence of connected GCS are shared.
 */
 export let CONST_DONT_BROADCAST_TO_GCSs = false;
 /**
 * This is for disable experimental features.
 * If a feature is not explicitly mentioned or has a value of true, it is considered to be enabled.
 */
 export let CONST_FEATURE = {
     DISABLE_UNIT_NAMING: false,
     DISABLE_UDPPROXY_UPDATE: false,
     DISABLE_SWARM: false,
     DISABLE_SWARM_DESTINATION_PONTS: false,
     DISABLE_P2P: false,
     DISABLE_SDR: false,
     DISABLE_GPIO: false,
     DISABLE_VOICE: false,
 };
 /**
 * WEBRTC Video Streaming Settings
 */
 export let CONST_ICE_SERVERS = [
     { urls: 'turn:cloud.ardupilot.org', credential: '1234', username: 'andruav_ap' },
     { urls: "stun:stun1.l.google.com:19302" },
 ];
Fields Meaning
The following are the fields that are used in the configuration file.
Connection to the Server
| Field Name | Description | Example | 
|---|---|---|
| CONST_TEST_MODE | if true then use - if true then use CONST_TEST_MODE_IP and CONST_TEST_MODE_PORT for connection. | default is false. | 
| CONST_PROD_MODE_IP | IP of the production server. | “airgap.droneengage.com” | 
| CONST_PROD_MODE_PORT | Port of the production server. | “19408” | 
| CONST_TEST_MODE_IP | IP of the test server. | “ | 
| CONST_TEST_MODE_PORT | Port of the test server. | “19408” | 
| CONST_TEST_MODE_ENABLE_LOG | Enable log for the test server. | default is false. | 
| CONST_TITLE | Title of the WebClient. | “My Own Drone Engage Site” | 
Header Links
These are the links that are used in the header of the WebClient.
| Field Name | Description | Example | 
|---|---|---|
| CONST_HOME_URL | URL of the Home link. If you have your own server you need to change this link accordingly. | |
| CONST_MANUAL_URL | URL of the Manual link. If you have your own server you need to change this link accordingly. | |
| CONST_FAQ_URL | URL of the FAQ link. If you have your own server you need to change this link accordingly. | |
| CONST_CONTACT_URL | URL of the Contact link. If you have your own server you need to change this link accordingly. | 
Features
There are features that you can enable or disable in the WebClient. Some of these features are experimental and are disabled by default.
| Field Name | Description | Example | 
|---|---|---|
| DISABLE_UNIT_NAMING | This feature prevents the user from re-naming DroneUnit from WebClient. | false | 
| DISABLE_UDPPROXY_UPDATE | This feature enables and disables the ability to update the UDP proxy from the WebClient. | false | 
| DISABLE_SWARM | This feature enable and disable the ability to form swarms from webclient. It only hides the GUI interface from WebClient. | false | 
| DISABLE_SWARM_DESTINATION_PONTS | These are small drone icons that points to where follower drones should go. Related to DISABLE_SWARM feature. | false | 
| DISABLE_P2P | P2P module is an experimental module to for P2P drone communication. | false | 
| DISABLE_SDR | SDR module is an experimental module to run SDR on the drone. | false | 
| DISABLE_GPIO | GPIO module is a DroneEngage module that is used to control the GPIO pins on the drone unit. | false | 
| DISABLE_VOICE | Voice module is a DroneEngage module that is used to speak or play audi on the drone unit. | false | 
Some of the above features will not display any GUI unless the correspondent module is up and running on the unit.
Other Parameters
| CONST_DONT_BROADCAST_TO_GCSs | This is to disable the broadcasting of the location of the GCSs to the network. | false | 
|---|---|---|
| CONST_ICE_SERVERS | This is the ICE servers used for WebRTC. Donot change unless you know what you do or you might cannot establish video connection. | |
| CONST_MAP_LEAFLET_URL | This is a URL for the map. You can use your own map-server or use the default map server. | 
Config.json
This is a file exits in /public/config.json. It is a copy of the js_siteConfig.js file. You can overwrite all or some of the fields in the js_siteConfig.js file by changing the values in the config.json file without the need to rebuild WebClient code.
{
    "CONST_TEST_MODE": true,
    "CONST_PROD_MODE_IP": "cloud.ardupilot.org",
    "CONST_PROD_MODE_PORT": "19408",
    "CONST_TEST_MODE_IP": "127.0.0.1",
    "CONST_TEST_MODE_PORT": "19408",
/**
* This is for disable experimental features.
* If a feature is not explicitly mentioned or has a value of true, it is considered to be enabled.
*/
    "CONST_FEATURE" :{
        "DISABLE_UNIT_NAMING": false,
        "DISABLE_UDPPROXY_UPDATE": false,
        "DISABLE_SWARM": false,
        "DISABLE_SWARM_DESTINATION_PONTS": false,
        "DISABLE_P2P": false,
        "DISABLE_SDR": false,
        "DISABLE_GPIO": false,
        "DISABLE_VOICE": false
    },
// CHOOSE YOUR MAP SOURCE
"CONST_MAP_LEAFLET_URL": "https://api.mapbox.com/styles/v1/mapbox/satellite-v9/tiles/{z}/{x}/{y}?access_token=pk.eyJ1IjoiaHNhYWQiLCJhIjoiY2tqZnIwNXRuMndvdTJ4cnV0ODQ4djZ3NiJ9.LKojA3YMrG34L93jRThEGQ",
//export let CONST_MAP_LEAFLET_URL = "https://tile.openstreetmap.org/{z}/{x}/{y}.png";
//export let CONST_MAP_LEAFLET_URL = "https://airgap.droneengage.com:88/{x}_{y}_{z}.jpeg" //LOCAL MAP
//export let CONST_MAP_LEAFLET_URL = "http://127.0.0.1:9991/{x}_{y}_{z}.jpeg" //LOCAL MAP
/**
* WEBRTC Video Streaming Settings
*/
    "CONST_ICE_SERVERS": [
        { "urls": "turn:cloud.ardupilot.org", "credential": "1234", "username": "andruav_ap" },
        { "urls": "stun:stun1.l.google.com:19302" }
    ]
}
for example if you need to change connection string you can only write connection info and ignore writing other fields.
{
    "CONST_TEST_MODE": false,
    "CONST_PROD_MODE_IP": "myown.server.com",
    "CONST_PROD_MODE_PORT": "19408",
    "CONST_TEST_MODE_IP": "127.0.0.1",
    "CONST_TEST_MODE_PORT": "19408"
}