Base64 image
JSON API Documentation
v1.0

System Interface Guide

This guide provides an overview of the system's web interface, including how to query for data and send commands to the system. The system's web interface allows you to interact with the system remotely, providing telemetry data and control over various system functions.

There are two access levels for all the API endpoints and commands:

Querying For Data

To retrieve telemetry data from the system's web UI, you can query the Telemetry Endpoints. The system will return a specific JSON payload from the given URL. Below is an example of how to make the request using both curl and Python.

Using cURL

You can use curl to send a request with Digest Authentication and bypass SSL certificate checks. The command below retrieves the telemetry data:


JSON=$(curl -k --digest -u admin:nextmove https://192.168.1.222/positionStatus.json)
echo $JSON

This will store the JSON response in the JSON variable and then print it to the console.

Using Python

If you prefer to perform the same request in Python, you can use the requests library with Digest Authentication. Here's how you can do it:


import requests
from requests.auth import HTTPDigestAuth
json = None
response = requests.get("https://192.168.1.222/positionStatus.json", auth=HTTPDigestAuth("admin", "nextmove"), verify=False)
if response.status_code == 200:
    json = response.json()
print(json)

This Python code does the same as the curl command, returning and printing the JSON response from the endpoint. The complete list of endpoints you can pull telemetry from are as follows:

JSON endpoint URL Description
positionStatus.json Provides real-time status information about the current state of the device, including position / velocity data in various coorindate systems, compassing data, radio and motor status, along with various track state information.
GPSAPStatus.json Returns the status of the GPS satellite connection, and fix status, then the autopeak settings for the current scan and peak configuration.
update_settings.json Endpoint to update various system or device settings. It typically contains key-value pairs for configuration parameters.
settings.json Retrieves the current system or device settings. This includes configuration details such as user preferences, network settings, and operational modes.
stored_locations.json Provides a list of locations that have been previously stored, including their coordinates and relevant metadata.
list_track.json Returns the names of all the stored list tracks currently in the system
Satellite_Data.json Returns an array of all the stored satellite ephemerous data in the system broken out into their components
autoPeakSettings.json Endpoint that retrieves the current autopeak settings, but specifically the ones related to radio connectivity such as SNMP or IP settings.

Sending Commands

All commands are sent to the endpoint parse_post.json as POST requests with the JSON payloads documented below under API Endpoints and Commands. Some commands require that the user type be ADMIN_WEB_USER, and some of them can be sent as a READONLY_WEB_USER. The default admin nextmove user is already an admin. Using cURL You can use curl to send a POST request with Digest Authentication, bypassing SSL certificate checks. The command below sends a simple command to the endpoint:

curl -k --digest -u admin:nextmove -H "Content-Type: application/json" -X POST -d '{"goto_stow": true}' https://192.168.1.222/parse_post.json
Using Python You can perform the same POST request in Python using the requests library. Here’s how to do it:

import requests
from requests.auth import HTTPDigestAuth

payload = {"goto_stow": True}
response = requests.post("https://192.168.1.222/parse_post.json", json=payload, auth=HTTPDigestAuth("admin", "nextmove"), verify=False)

if response.status_code == 200:
   print("successfully sent stow command")

API Endpoints and Commands

Basic Movements

stop

Description:
Stops the current operation of the system.
Input:
No input is required; it simply stops the system.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "stop": "boolean"
}

Back to Top

goto_stow

Description:
Sends the system to the stow position.
Input:
No input is required; it simply commands the system to stow.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "goto_stow": "boolean"
}

Back to Top

set_ped_target

Description:
Sets the pedestal axis target position.
Input:
JSON object specifying Az, El, or Ux target values.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_ped_target": {
    "Az": "float",  // e.g., 46.23 (absolute pedestal position in degrees)
    "El": "float",
    "Ux": "float"
  }
}

Back to Top

set_geo_target

Description:
Sets the geodetic target position for the pedestal.
Input:
JSON object specifying Az, El, or Ux geodetic values.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_geo_target": {
    "Az": "float",  // e.g., 324.3 (absolute geodedic position in degrees)
    "El": "float",
    "Ux": "float"
  }
}

Back to Top

set_lat_lng

Description:
Sets the latitude and longitude coordinates for the target.
Input:
JSON object specifying lat, lng, and altitude values.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_lat_lng": {
    "lat": "float",  // e.g., 34.5678 (in degrees)
    "lng": "float",
    "alt": "float"   // e.g., 1500.0 (in meters)
  }
}

Back to Top

set_slot

Description:
Sets the current slot for the system.
Input:
JSON object specifying the slot number.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_slot": {
    "slot": "float"  // e.g., (-42.5 is 42.5W)
  }
}

Back to Top

perform_step

Description:
Performs a step movement based on azimuth (Az), elevation (El), or user-defined (Ux) values.
Input:
JSON object specifying Az, El, or Ux step adjustments.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "perform_step": {
    "ped_geo": "ped" // ("ped / "geo" are the valid options)
    "Az": "float",  // e.g., 0.1234 (incremental step in degrees)
    "El": "float",  // e.g., -0.5678 (incremental step in degrees)
    "Ux": "float"
  }
}

Back to Top

set_slew

Description:
Sets the slew speed and direction for the system.
Input:
JSON object specifying slew commands.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_slew": {
    "Az": "float",  // e.g., 1.0 (slew speed in degrees per second)
    "El": "float",   // e.g., -2.5 (slew speed in degrees per second)
    "Ux": "float"
  }
}

Back to Top

set_speed

Description:
Sets the movement speed for the system in azimuth, elevation, or user-defined axes.
Input:
JSON object specifying speed values for each axis.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_speed": {
    "Az": "int",   // e.g., (10 - 100 as a percentage of the max pwm)
    "El": "int",
    "Ux": "int",
    "persist_speed": "boolean" // (Save this speed in the database to persist across reboots)
  }
}

Back to Top

Track & Ephemerus

enter_sun_track

Description:
Activates the sun tracking mode of the system.
Input:
No input is required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "enter_sun_track": "boolean"
}

Back to Top

add_tle_elements

Description:
Adds TLE (Two-Line Element) Ephem data for tracking satellites.
Input:
JSON object specifying TLE headers, strings, and formatting options.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "tle_data": {
    "delete_before_upload": "boolean",  // e.g., true
    "format": "int",  // e.g., (2 = Two line element set, 3 = Three line element sets)
    "update_if_newer": "boolean",
    "tle_headers": "array",   // ["O3B MPOWER F1", "O3B MPOWER F2"]
    "tle_strings": "array"    // ["1 54755U 22174A   24262.27452340 -.00000018  00000+0  00000+0 0  99932 54755   0.0547 345.5480 0006583 187.0962 157.7353  5.00113373 33491","1 54756U 22174B   24263.22370837 -.00000019  00000+0  00000+0 0  99912 54756   0.0508 344.0761 0005519 197.1668 178.7583  5.00113863 33614"]
  }
}

Back to Top

set_track_target

Description:
Sets the tracking target by providing target ID and optionally TLE data.
Input:
JSON object specifying the target ID and TLE elements.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "progTrackTgt": {
    "target_id": "int",     // NORAD ID of the Ephem data, e.g., 12345
    "tle_headers": "array", // Optional: ["O3B MPOWER F1", "O3B MPOWER F2"]
    "tle_strings": "array"  // Optional: ["1 54755U 22174A   24262.27452340 -.00000018  00000+0  00000+0 0  99932 54755   0.0547 345.5480 0006583 187.0962 157.7353  5.00113373 33491","1 54756U 22174B   24263.22370837 -.00000019  00000+0  00000+0 0  99912 54756   0.0508 344.0761 0005519 197.1668 178.7583  5.00113863 33614"]
  }
}

Back to Top

set_track_object_name

Description:
Sets the name of the object being tracked.
Input:
JSON object specifying the NORAD ID and new name of the tracked object.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "trackObjName": {
    "norad_id": "int",   // NORAD ID of the Ephem data, e.g., 12345
    "new_name": "string" // e.g., "NewObjectName" to update the display name
  }
}

Back to Top

constellation_list

Description:
Loads a constellation list for the system.
Input:
JSON object specifying the constellation parameters.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "constellation_list": [
    "norad_id": "int",  // NORAD ID of TLE already in the system
    "priority": "int"   // What priority level to set this NORAD ID
  ]
}

Back to Top

goto_constellation_mode

Description:
Sets the system to constellation tracking mode.
Input:
No input required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "goto_constellation_mode": {}
}

Back to Top

delete_satellite

Description:
Deletes a satellite ephemerous record by NORAD ID.
Input:
JSON object specifying the NORAD ID.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "delete_sat": {
    "norad_id": "int"  // NORAD ID of the satellite in the database
  }
}

Back to Top

run_list_track

Description:
Runs a pre-configured list track.
Input:
JSON object specifying the name of the list track.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "run_list_track": {
    "name": "string"   // e.g., "my_list_track"
  }
}

Back to Top

remove_list_track

Description:
Removes a pre-configured list track.
Input:
JSON object specifying the name of the list track to be removed.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "remove_list_track": {
    "name": "string"   // e.g., "my_list_track"
  }
}

Back to Top

rename_list_track

Description:
Renames an existing list track.
Input:
JSON object specifying the old and new names of the list track.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "rename_list_track": {
    "old_name": "string",   // e.g., "old_track_name"
    "new_name": "string"    // e.g., "new_track_name"
  }
}

Back to Top

set_proximity_track

Description:
Sets the proximity tracking mode for the system.
Input:
state to point at the closest stored location or not
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_proximity_track": {
    "state": "boolean" // e.g., (true = point to nearest LLA stored location every 10 seconds, false = disable)
  }
}

Back to Top

set_peer_track

Description:
Sets peer tracking mode.
Input:
state, points to connected peer system or not
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_peer_track": {
    "state": "boolean" // e.g., (true = point towards registered peer system, false = disable pointing towards registered peer system)
  }
}

Back to Top

update_track_vars

Description:
Updates the Ephem tracking variables (e.g., azimuth/elevation offsets, time offset).
Input:
JSON object specifying the tracking variables.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "trackVars": {
    "az_offset": "float",  // e.g., 0.1234 (in degrees)
    "el_offset": "float",
    "time_offset": "float",
    "entry_el": "float",  // (entry elevation)
    "exit_el": "float"    // (exit elevation)
  }
}

Back to Top

Stored Locations

store_location

Description:
Stores a location in the system's memory.
Input:
JSON object specifying the location's parameters (Az, El, Ux, etc.).
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "store_location": {
    "idx": "int",      // Location database index (null means ADD NEW, integer index means UPDATE)
    "type": "int",     // Location type (0 = LLA, 1 = ped, 2 = geo, 3 = sat slot)
    "name": "string",  // Name of the location (50 chars max)
    "az_lat": "float", // Azimuth or Latitude value
    "el_lng": "float", // Elevation or Longitude value
    "ux_alt": "float", // Polarization or Altitude value
    "default": "boolean" // Whether this is the default location (LLA only, moves on startup)
  }
}

Back to Top

set_default_stored_location

Description:
Sets the default stored location for the system.
Input:
JSON object specifying the index of the location.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_default_stored_location": {
    "idx": "int"  // Location index (LLA only, moves on startup)
  }
}

Back to Top

delete_location

Description:
Deletes a stored location from the system.
Input:
JSON object specifying the index of the location.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "delete_location": {
    "idx": "int"  // Location index to delete
  }
}

Back to Top

Sensor Calibration

compass_cal

Description:
Initiates a compass calibration process.
Input:
JSON object specifying the calibration options (start, oneshot, etc.).
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "comp_cal": {
    "start": "int",   // e.g., 1 for starting the calibration
    "oneshot": "int", // e.g., 1 for one shot calibration
    "apply_trk_off_to_cmp_ovr": "boolean" // e.g., true
  }
}

Back to Top

accel_calibration

Description:
Initiates the accelerometer calibration process.
Input:
No input required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "accel_calibration": {}
}

Back to Top

gyro_calibrate

Description:
Initiates the gyroscope calibration process.
Input:
No input required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "gyro_calibrate": {}
}

Back to Top

Autopeak / Radio

update_ap_state

Description:
Updates the state of the auto-peak system.
Input:
JSON object specifying the AP state and offset clearing options.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "ap_state": {
    "apState": "int",   // AP State to set the system into (0 = Reset, 1 = Scan & peak, 2 = Stop, 3 = Pause, 4 = Restart, 5 = Peak Only, 6 = Scan Only)
    "clear_offsets": "boolean"  // Clear track offsets
  }
}

Back to Top

update_ap_settings

Description:
Updates the settings for the auto-peak system, including SNMP configuration, scan, peak, and tracking parameters.
Input:
JSON object specifying various AP settings like SNMP configuration, scan width, peak width, signal thresholds, and more.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "ap_settings": {
    "SNMP_Radio_Config": [
      {
        "idx": "int",           // e.g., 1 (index of the SNMP radio config)
        "mfg_id": "int",        // e.g., 4 (manufacturer ID)
        "OID_String": "string", // e.g., "1.3.6.1.4.1.17713.9.12.12.0" (SNMP OID string)
        "period": "float",      // e.g., 0.1 (polling period in seconds)
        "divisor": "int",       // e.g., 10 (divisor for the result)
        "oid_function": "int",  // e.g., 0 (SNMP function type)
        "one_time": "boolean"   // e.g., false (whether this is a one-time SNMP operation)
      }
    ],
    "SNMP_OID_Function": [
      {
        "idx": "int",           // e.g., -1 (function index)
        "name": "string",       // e.g., "None" (function name)
        "deletable": "boolean"  // e.g., false (whether this function can be deleted)
      }
    ],
    "radio": {
      "connType": "int",          // e.g., 1 (connection type 0 = Analog, 1 = SNMP)
      "RadioMfg": "int",          // e.g., 11 (radio manufacturer ID Should always be 13 = Custom Receiver)
      "RadioIP": "string",        // e.g., "192.168.1.55" (radio IP address)
      "communityStr": "string",   // e.g., "public" (SNMP community string)
      "SNMPVer": "int",           // e.g., 0 (SNMP version 0 = SNMPv1, 1 = SNMPv2c, 2 = SNMPv3)
      "analog_slope": "float",    // e.g., 1.0 (analog slope if conn type is Analog)
      "analog_intercept": "float" // e.g., 1.0 (analog intercept if conn type is Analog)
    },
    "scanDwell": "float",       // e.g., 1 (scan dwell time in seconds)
    "Scan_Step_Az": "float",    // e.g., 0.5 (scan step in azimuth, in degrees)
    "Scan_Step_El": "float",    // e.g., 0.5 (scan step in elevation, in degrees)
    "Peak_Step_Az": "float",    // e.g., 0.1 (peak step in azimuth, in degrees)
    "Peak_Step_El": "float",    // e.g., 0.1 (peak step in elevation, in degrees)
    "ScanWidth": "float",       // e.g., 50.0 (scan width, in degrees)
    "PeakWidth": "float",       // e.g., 1.0 (peak width, in degrees)
    "TrackType": "int",         // e.g., 1 (track type)
    "PeakType": "int",          // e.g., 2 (peak type)
    "DwellTime": "float",       // e.g., 1 (peak dwell time in seconds)
    "signal_lock_lvl": "float", // e.g., -999.9 (signal lock level in RSSI Units)
    "tr_enable": "boolean",     // e.g., false (whether threshold repeak is enabled)
    "tr_sig_start": "float",    // e.g., -70.0 (signal start threshold in RSSI Units)
    "tr_sig_stop": "float",     // e.g., -100.0 (signal stop threshold in RSSI Units)
    "tr_side": "int",           // e.g., 1 (tracking side)
    "tr_interval": "int",       // e.g., 180 (tracking interval in seconds)
    "Raster_Height": "float",   // e.g., 11.2 (raster height in degrees)
    "Raster_Stop": "float",     // e.g., 14.0 (raster stop in degrees)
    "min_rssi": "int",          // e.g., 0 (minimum RSSI level)
    "max_distance": "int",      // e.g., 0 (maximum distance)
    "beam_width": "float",          // e.g., 10.0 (beam width in degrees)
    "rssi_drop_thresh": "float",    // e.g., -4.0 (RSSI drop threshold in dBm)
    "min_rssi_step": "float",       // e.g., 2.0 (minimum RSSI step in dBm)
    "SideLobeCheck": "boolean",     // e.g., false (whether side lobe check is enabled)
    "continuous_scan": "boolean",   // e.g., false (whether continuous scanning is enabled)
    "max_runtime": "float",       // e.g., 54000 (maximum runtime in seconds)
    "radius": "float",          // e.g., 2.0 (radius in meters)
    "num_points": "int",        // e.g., 7 (number of points for scanning)
    "track_speed": "float",     // e.g., 1.0 (tracking speed in degrees per second)
    "scan_speed": "float",      // e.g., 0.0 (scanning speed in degrees per second)
    "scan_stop_threshold": "null" // Scan stop threshold (stop scan on threshold in RSSI units)
  }
}

Back to Top

reset_radio

Description:
Sends a reset command to the radio system.
Input:
JSON object specifying whether to reset the radio.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "reset_radio": {
    "reset": "boolean"  // e.g., true (reset the radio)
  }
}

Back to Top

set_rssi

Description:
Sets the RSSI (Received Signal Strength Indicator) value and lock state for the system.
Input:
JSON object specifying RSSI value and lock state.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_rssi": {
    "value": "float",  // e.g., -70.5 (dBm)
    "lock": "int"      // e.g., 1 (modem lock locked) or 0 (modem lock unlocked)
  }
}

Back to Top

User Management

add_user

Description:
Adds a new user to the system with a specified username, hash, and authorization level.
Input:
JSON object specifying the username, password hash, and authorization level.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "add_user": {
    "user_name": "string",  // e.g., "new_user"
    "hash": "string",       // e.g., "5f4dcc3b5aa765d61d8327deb882cf99" (MD5 hash)
    "auth_level": "int"     // e.g., 1 (READONLY_WEB_USER)
  }
}

Back to Top

delete_user

Description:
Deletes a user from the system by providing the user ID.
Input:
JSON object specifying the user ID.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "delete_user": {
    "userID": "int"  // e.g., 1001
  }
}

Back to Top

update_user_password

Description:
Updates the user's password by providing the user ID and hash.
Input:
JSON object specifying the user ID and password hash.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "update_password": {
    "user_id": "int",  // e.g., 1001
    "hash": "string"   // e.g., "5f4dcc3b5aa765d61d8327deb882cf99" (MD5 hash)
  }
}

Back to Top

validatePassword

Description:
Validates the user's password by providing the user ID and hash.
Input:
JSON object specifying the user ID and password hash.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "validatePassword": {
    "user_id": "int",  // e.g., 1001
    "hash": "string"   // e.g., "5f4dcc3b5aa765d61d8327deb882cf99" (MD5 hash)
  }
}

Back to Top

update_web_user_authorization

Description:
Updates the authorization level of a web user.
Input:
JSON object specifying the user index and new authorization level.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "update_web_user_authorization": {
    "idx": "int",           // User index
    "authorization": "int"  // New authorization level (e.g., 0 for READONLY, 1 for ADMIN)
  }
}

Back to Top

Geo Configuration

update_aux_axis

Description:
Updates the auxiliary axis configuration.
Input:
JSON object specifying auxiliary axis settings (type, enable state, etc.).
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "update_aux_axis": {
    "type": "int",   // e.g., (0 = None, 1 = NMT Polarization, 2 = Cross Elevation, 3 = MPSP Pol Idx, 4 = Custom Polarization)
    "aux_en": "boolean"  // e.g., true (enable auxiliary axis)
  }
}

Back to Top

gps_override

Description:
Overrides the GPS coordinates of the system.
Input:
JSON object specifying lat, lng, alt, and magnetic declination.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "gps_override": {
    "lat": "float",   // e.g., 34.5678 (latitude in degrees, null disables)
    "lng": "float",   // e.g., -123.456 (longitude in degrees, null disables)
    "alt": "float",   // e.g., 150.0 (altitude in meters, null disables)
    "mag_dec": "float"  // e.g., -13.5 (magnetic declination in degrees, null disables)
  }
}

Back to Top

comp_override

Description:
Overrides the compass heading or enables one-shot compass adjustments.
Input:
JSON object specifying compass override options.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "comp_override": {
    "enabled": "boolean",  // e.g., true
    "override_angle": "float",  // e.g., 123.45 (degrees relative to ped 0)
    "one_shot_on_geo_move": "boolean"  // e.g., true (compass is oneshotted if not overriden before first geo move)
  }
}

Back to Top

set_heading_source

Description:
Sets the heading source for the system.
Input:
JSON object specifying the heading source.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_heading_source": {
    "heading_source": "int"  // e.g., (1 = magnotometer, 2 = on-axis GHU, 3 = off-axis GHU, 3 = AIS)
  }
}

Back to Top

set_ghu_mount_offset

Description:
Sets the mount offset for the GHU (Ground Handling Unit).
Input:
JSON object specifying the GHU mount offset.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_ghu_mount_offset": {
    "ghu_mount_offset": "float"  // e.g., (0 degrees, or 90 degrees)
  }
}

Back to Top

pitch_and_roll

Description:
Sets pitch, roll, and deadband values for the attitude control system.
Input:
JSON object specifying pitch, roll, and deadband values.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "pitch_roll": {
    "clear": "boolean",   // e.g., true (clears pitch/roll overrides)
    "pitch": "float",     // e.g., 0.1234 (in degreees)
    "roll": "float",
    "yaw": "float",
    "pitch_dead_band": "float",
    "roll_dead_band": "float",
    "yaw_dead_band": "float",
    "oneshot": "boolean",     // One shot the IMU
    "enable": "boolean",      // Enable pitch and roll compensation
    "stabilize": "boolean",   // Active pitch and roll stabalization from IMU
    "stabilize_oneshot": "boolean" // Oneshot the IMU for fixed platform (fixed angular plane)
  }
}

Back to Top

update_limits

Description:
Updates the limits for azimuth, elevation, and user-defined axes.
Input:
JSON object specifying the minimum and maximum limits for each axis.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "limits": {
    "az-min": "float",  // e.g., -180.0 degrees
    "az-max": "float",  // e.g.,  220.0 degrees
    "el-min": "float",
    "el-max": "float",
    "ux-min": "float",
    "ux-max": "float"
  }
}

Back to Top

update_stow_angles

Description:
Updates the stow angles for azimuth, elevation, and user-defined axes.
Input:
JSON object specifying the stow angles.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "stow_angles": {
    "az": "float",  // e.g., 45 (in degrees)
    "el": "float",
    "ux": "float"
  }
}

Back to Top

set_geo_offset

Description:
Sets geodetic offsets for the system’s movement in azimuth, elevation, and UX axes.
Input:
JSON object specifying the offsets in degrees.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_geo_offset": {
    "Az": "float",   // e.g.,  0.1234 (azimuth offset in degrees)
    "El": "float",   // e.g., -0.5678 (elevation offset in degrees)
    "Ux": "float"    // e.g.,  0.9876 (polarization offset in degrees)
  }
}

Back to Top

set_anemometer_threshold

Description:
Sets the wind speed threshold for the anemometer.
Input:
JSON object specifying the maximum wind speed.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_anemometer_threshold": {
    "max_wind_speed": "float"  // e.g., 15.0 (maximum wind speed in m/s)
  }
}

Back to Top

set_ais_config

Description:
Sets the AIS (Automatic Identification System) configuration parameters.
Input:
JSON object specifying AIS configuration details.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_ais_config": {
    "ip_addr": "string",  // e.g., "192.168.1.100" (AIS system IP address)
    "port": "int",        // e.g., 8080 (AIS system port)
    "mmsi": "int"         // e.g., 123456789 (AIS system MMSI number)
  }
}

Back to Top

elevation_payload_correction

Description:
Sets the elevation payload correction values.
Input:
JSON object specifying the elevation correction angles and offsets.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "elevation_payload_correction": {
    "angles": {
      "10": "float",  // (10° means 0° offset, also same value set for actual 0°)
      "20": "float",  // (20° means 0° offset)
      "30": "float",  // (30° means 0° offset)
      "40": "float",  // (40° means 0° offset)
      "50": "float",  // (50° means 0° offset)
      "60": "float",  // (60° means 0° offset)
      "70": "float",  // (70° means 0° offset)
      "80": "float"   // (80° means 0° offset, (90° always is set to 0° of offset))
    }
  }
}

Back to Top

update_pid_gains

Description:
Updates the PID (Proportional-Integral-Derivative) gains for system control.
Input:
JSON object specifying PID gains for different axes.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "update_pid_gains": {
    0: {          (Azimuth index is 0)
      "posP": "float",  // e.g., 0.1 (Proportional gain for azimuth)
      "posI": "float",  // e.g., 0.05 (Integral gain for azimuth)
      "velD": "float",  // e.g., 0.01 (Derivative gain for azimuth (velocity loop is velocity derivative, position loop is position derivative)
      "velP": "float",  // e.g., 0.1  (Proportional gain for velocity azimuth)
      "velI": "float",  // e.g., 0.05 (Integral gain for velocity azimuth)
      "accel_scale": "float",  // e.g., 0.5  (Scale factor to apply from (0.1 to 1) to acceleration (can only be reduced))
      "max_vel_scale": "float"  // e.g., 0.75 (Scale factor to apply from (0.1 to 1) to max velocity (can only be reduced))
    },
    1: {           (Elevation index is 1)
      "posP": "float",  // e.g., 0.1 (Proportional gain for elevation)
      "posI": "float",  // e.g., 0.05 (Integral gain for elevation)
      "velD": "float",  // e.g., 0.01 (Derivative gain for elevation (velocity loop is velocity derivative, position loop is position derivative))
      "velP": "float",  // e.g., 0.1 (Proportional gain for elevation)
      "velI": "float",  // e.g., 0.05 (Integral gain for elevation)
      "accel_scale": "float",  // e.g., 0.5  (Scale factor to apply from (0.1 to 1) to acceleration (can only be reduced))
      "max_vel_scale": "float"  // e.g., 0.75 (Scale factor to apply from (0.1 to 1) to max velocity (can only be reduced))
    }
  }
}

Back to Top

service_settings

Description:
Configures service-related settings for the system.
Input:
JSON object specifying the service settings.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "service_settings": {
    "mapping_service": "int"  // e.g., 1 (service type ID)
  }
}

Back to Top

System Configuration

set_unit_name

Description:
Sets the unit's name and part number.
Input:
JSON object specifying the system name and part number.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "unitName": {
    "text": "string"  // e.g., "Unit A""
  }
}

Back to Top

set_ip_settings

Description:
Configures the system's IP settings (IP address, subnet mask, gateway, etc.).
Input:
JSON object specifying the IP address, subnet mask, gateway, and other settings.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "ipSettings": {
    "ipAddr": "string",     // e.g., IP Address:  "192.168.1.100"
    "snMask": "string",     // e.g., Subnet Mask: "255.255.255.0"
    "gwAddr": "string",     // e.g., Gateway:     "192.168.1.1"
    "nsAddr": "string",     // e.g., Nameserver:  "8.8.8.8"
    "time_source": "int"    // e.g., ( 1 = Manual, 2 = GPS, 3 = NTP)
    "ntp_server": "string", // e.g., "ntp.example.com" (optional: if time_source is NTP)
    "manual_time": {        // (optional: if time_source is Manual)
      "year": "int",
      "month": "int",
      "day": "int",
      "hour": "int",
      "minute": "int",
      "second": "int"
    }
  }
}

Back to Top

set_serial_settings

Description:
Configures the serial settings for the system (address, baud rate).
Input:
JSON object specifying the serial address and baud rate.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "serialSettings": {
    "addr": "int",   // e.g., (0 through 31)
    "baud": "int"    // e.g., (2400, 4800, 9600, 19200, 38400, 57600, 115200)
  }
}

Back to Top

snmp_config

Description:
Configures SNMP settings for the system.
Input:
JSON object specifying SNMP security settings and credentials.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "snmp_config": {
    "security_name": "string",  // e.g., "user_security"
    "auth_key": "string",       // e.g., "auth_key_value"
    "priv_key": "string",       // e.g., "priv_key_value"
    "idx": "int",               // e.g., 1
    "security_role": "int"      // e.g., 1 (LVL_ADMIN)
  }
}

Back to Top

set_gpio

Description:
Sets the value for a specific GPIO pin.
Input:
JSON object specifying the GPIO index and value.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_gpio": {
    "which": "int",  // e.g., 1 (GPIO index)
    "val": "boolean" // e.g., true (high) or false (low)
  }
}

Back to Top

setup_gpio

Description:
Configures a specific GPIO pin with an index, active state, and name.
Input:
JSON object specifying GPIO configuration details.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "setup_gpio": {
    "idx": "int",           // e.g., 1 (GPIO index num)
    "active_state": "int",  // e.g., (0 = Active High, 1 = Active Low)
    "name": "string"        // e.g., "GPIO1"
  }
}

Back to Top

aux_set_zero

Description:
Sets the auxiliary axis at the current position to zero.
Input:
No input required.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "aux_set_zero": {}
}

Back to Top

reverse_elevation

Description:
Reverses the elevation axis direction.
Input:
JSON object specifying whether to reverse the elevation.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "reverse_el": {
    "reverse_el": "boolean"  // e.g., true (reverses elevation direction for mounting antenna backwards)
  }
}

Back to Top

elevation_set_mode

Description:
Sets the elevation mode of the system 0 to 180 mode has 0 at the horizon, -90 to +90 mode has -90 at the horizon.
Input:
JSON object specifying the mode.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "elevation_set_mode": {
    "mode": "int"  // e.g., (1 = 0 to 180 mode, 0 = -90 to +90)
  }
}

Back to Top

obscura_zones

Description:
Sets obscuration zones for tracking to avoid certain areas.
Input:
JSON object specifying obscuration zone parameters.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "obscura_zones": {
    "zones": [
      {
        "az_min": "float",  // e.g., 0.0 (minimum azimuth in degrees)
        "az_max": "float",  // e.g., 180.0 (maximum azimuth in degrees)
        "el_min": "float",  // e.g., 10.0 (minimum elevation in degrees)
        "el_max": "float"   // e.g., 80.0 (maximum elevation in degrees)
      }
    ]
  }
}

Back to Top

set_demo_on_power

Description:
Configures the system to enter demo mode on power-up.
Input:
JSON object specifying whether demo mode should be enabled.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "set_demo_on_power": {
    "enable": "boolean"  // e.g., true (enable demo mode)
  }
}

Back to Top

goto_demo_mode

Description:
Sends the system to demo mode.
Input:
No input required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "goto_demo_mode": {}
}

Back to Top

peer_settings

Description:
Configures the peer settings for the system.
Input:
JSON object specifying the peer settings.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "peer_settings": {
    "peer_id": "int",     // e.g., 101
    "peer_ip": "string",  // e.g., "192.168.1.101"
    "peer_port": "int"    // e.g., 8080
  }
}

Back to Top

set_startup_config

Description:
Sets the startup configuration, including stow options.
Input:
JSON object specifying startup options like stow settings and timeout.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_startup_config": {
    "stow_on_startup_enabled": "boolean",  // If true then move to stow position on startup
    "stow_on_startup_rssi_threshold": "float",  // Only move to stow on startup if RSSI below threshold (null for disabled)
    "stow_on_startup_timeout": "float"  // If enabled, how long to wait after startup to move to stow
  }
}

Back to Top

min_track_distance

Description:
Sets the minimum radial tracking distance for the system.
Input:
JSON object specifying minimum tracking distances.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "min_track_distance": {
    "dist": "float",             // Minimum ground distance to start tracking remote point
    "el_dist_enable": "boolean", // Enable elevation tracking only after distnace
    "el_dist": "float"           // Minimum ground distance to start elevation tracking
  }
}

Back to Top

reboot

Description:
Reboots the system.
Input:
No input required.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "reboot": {}
}

Back to Top

Rare Functions

clear_error

Description:
Clears a specific error from the system's fault log.
Input:
JSON object specifying which fault to clear.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "clear_err": {
    "which_fault": "int"  // e.g., 1 (1 = ADC fault, 2 = stall fault, 3 = current fault, 4 = pot fault, 6 = clear all, 7 = encoder overflow)
  }
}

Back to Top

run_install_update_script

Description:
Initiates a system update by providing the update script's filename.
Input:
JSON object specifying the filename of the update script.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "install_update": {
    "filename": "string"  // e.g., "update_script.sh" (must have been uploaded before it can be installed)
  }
}

Back to Top

perform_phase_detect

Description:
Initiates a phase detection process on the system.
Input:
No input required.
Authorization Level:
READONLY_WEB_USER
Example JSON Payload:
{
  "perform_phase_detect": {}
}

Back to Top

set_hunt_for_stow_mode

Description:
Sets the mode to hunt for stow position.
Input:
JSON object specifying whether the system should hunt for stow mode.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "set_hunt_for_stow_mode": {
    "enabled": "boolean"  // e.g., true (enable hunt for stow mode)
  }
}

Back to Top

lockout

Description:
Enables or disables the system lockout feature.
Input:
JSON object specifying whether lockout is enabled.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "lockout": {
    "enabled": "boolean"  // e.g., true (lockout enabled) or false (lockout disabled)
  }
}

Back to Top

reset_positioner

Description:
Resets the positioner to its default state.
Input:
No input required.
Authorization Level:
ADMIN_WEB_USER
Example JSON Payload:
{
  "reset_positioner": {}
}

Back to Top

Telemetry Endpoints

positionStatus.json

Description:
Returns the current status of the system, including position, velocity, tracking details, motor states, compass data, and more.
Input:
No input is required for this endpoint. The response contains detailed information about the system status.
Authorization Level:
READONLY_WEB_USER
Example JSON Response:
{
  "position": {
    "pedestal": {
      "Az": "float",  // e.g., -18.9181 (current azimuth of the pedestal in degrees)
      "El": "float",  // e.g., -5.0474 (current elevation of the pedestal in degrees)
      "Ux": "float"   // e.g., 0.0 (current UX position of the pedestal)
    },
    "deck": {
      "Az": "float",  // e.g., 341.0819 (azimuth relative to the deck)
      "El": "float",  // e.g., -5.0474 (elevation relative to the deck)
      "Ux": "float"   // e.g., 0.0 (UX position relative to the deck)
    },
    "geo": {
      "Az": "float",  // e.g., 81.0819 (geodetic azimuth)
      "El": "float",  // e.g., -5.0474 (geodetic elevation)
      "Ux": "float"   // e.g., 0.0 (geodetic UX)
    },
    "cord_mode": "int",  // e.g., 3 (coordinate mode)
    "unwrapping": "boolean"  // e.g., false (whether unwrapping is active)
  },
  "velocity": {
    "Az": "float",  // e.g., 7.08e-13 (velocity of azimuth in degrees per second)
    "El": "float",  // e.g., -1.80e-14 (velocity of elevation in degrees per second)
    "Ux": "float"   // e.g., 0.0 (velocity of UX)
  },
  "TargetTrack": {
    "mode": "int",  // e.g., 0 (tracking mode)
    "object_num": "int",  // e.g., 0 (target object number)
    "trackVars": {
      "az_offset": "float",  // e.g., 0.0 (azimuth offset)
      "el_offset": "float",  // e.g., 0.0 (elevation offset)
      "time_offset": "float",  // e.g., 0.0 (time offset)
      "entry_el": "float",  // e.g., 0.0 (entry elevation)
      "exit_el": "float",  // e.g., 0.0 (exit elevation)
      "los_state": "int"  // e.g., 0 (line-of-sight state)
    },
    "lla": {
      "lat": "float|null",  // e.g., null (latitude in degrees)
      "lon": "float|null",  // e.g., null (longitude in degrees)
      "alt": "float|null"   // e.g., null (altitude in meters)
    },
    "list": {
      "idx": "int|null",  // e.g., null (index in the track list)
      "current": "int|null",  // e.g., null (current item in the list)
      "index": "int|null",  // e.g., null (index)
      "start_time": "float|null",  // e.g., null (start time of track)
      "end_time": "float|null"  // e.g., null (end time of track)
    },
    "tle": {
      "epoch": "float|null",  // e.g., null (TLE epoch)
      "xndt2o": "float|null",  // e.g., null (TLE xndt2o value)
      "xndd6o": "float|null",  // e.g., null (TLE xndd6o value)
      "bstar": "float|null",  // e.g., null (TLE bstar value)
      "xincl": "float|null",  // e.g., null (TLE xincl value)
      "xnodeo": "float|null",  // e.g., null (TLE xnodeo value)
      "eo": "float|null",  // e.g., null (TLE eo value)
      "omegao": "float|null",  // e.g., null (TLE omegao value)
      "xmo": "float|null",  // e.g., null (TLE xmo value)
      "xno": "float|null"   // e.g., null (TLE xno value)
    }
  },
  "radio": {
    "level": "float",  // e.g., 10.3 (radio signal level)
    "connected": "int"  // e.g., 0 (radio connection status)
  },
  "motor": {
    "Az": {
      "active": "boolean",  // e.g., false (whether the azimuth motor is active)
      "current": "float",  // e.g., 0.0 (motor current in amperes)
      "duty": "int",  // e.g., 0 (motor duty cycle)
      "stall_count": "int",  // e.g., 0 (stall count)
      "read_fault": "int",  // e.g., 0 (fault code)
      "speed": "float",  // e.g., 0.0 (motor speed)
      "speedlimit": "float",  // e.g., 100.0 (motor speed limit)
      "pot_voltage": "float",  // e.g., 2.06 (potentiometer voltage)
      "runtime": "float"  // e.g., 80477.91 (motor runtime in seconds)
    },
    "El": {
      "active": "boolean",
      "current": "float",
      "duty": "int",
      "stall_count": "int",
      "read_fault": "int",
      "speed": "float",
      "speedlimit": "float",
      "pot_voltage": "float",
      "runtime": "float"
    },
    "Ux": {
      "active": "boolean",
      "current": "float",
      "duty": "int",
      "stall_count": "int",
      "read_fault": "int",
      "speed": "float",
      "speedlimit": "float",
      "pot_voltage": "float",
      "runtime": "float"
    }
  },
  "compass": {
    "compass_type": "int",  // e.g., 1 (compass type)
    "heading": "float",  // e.g., 81.0819 (current heading)
    "sensor_heading": "float",  // e.g., 25.1634 (sensor heading)
    "mag_heading": "float",  // e.g., 39.3634 (magnetic heading)
    "gps_comp_hdg": "float",  // e.g., 0.0 (GPS compass heading)
    "temperature": "float",  // e.g., 44.25 (compass temperature)
    "raw_sensor": ["float", "float"],  // e.g., [0.66, 0.74] (raw sensor values)
    "compensated_sensor": ["float", "float"],  // e.g., [0.16, 0.13] (compensated sensor values)
    "calibrated": "boolean",  // e.g., true (whether the compass is calibrated)
    "override": "boolean",  // e.g., true (whether the compass is overridden)
    "gps_cmp_connected": "boolean",  // e.g., false (whether GPS compass is connected)
    "cal_needed": "boolean",  // e.g., false (whether calibration is needed)
    "comp_status": "int"  // e.g., 0 (compass status)
  },
  "ghu": {
    "ghu_mount_offset": "float"  // e.g., 0.0 (GHU mount offset)
  },
  "ais": {
    "heading": "float",  // e.g., 0.0 (AIS heading)
    "connected": "boolean",  // e.g., false (whether AIS is connected)
    "last_rcv": "float"  // e.g., -1.0 (time since last AIS reception)
  },
  "mode": {
    "op_mode": "int",  // e.g., 1 (operation mode)
    "coord_mode": "int",  // e.g., 3 (coordinate mode)
    "lockout": "boolean",  // e.g., false (whether the system is in lockout mode)
    "sat_target_norad_id": "int",  // e.g., 0 (satellite target NORAD ID)
    "target_mode": "int",  // e.g., 0 (target mode)
    "timestamp": "int",  // e.g., 1728415988 (system timestamp)
    "interlocks": "int",  // e.g., 0 (interlock state)
    "track_home": ["float", "float", "float"],  // e.g., [0.0, 0.0, 0.0] (home tracking positions)
    "track_offset": ["float", "float", "float"],  // e.g., [0.0, 0.0, 0.0] (track offsets)
    "cmd_pos": ["float", "float", "float"],  // e.g., [5.83, -13.99, 0.0] (commanded positions)
    "phase_detect": "boolean",  // e.g., true (whether phase detection is active)
    "phase_detect_ready": "boolean",  // e.g., true (whether phase detection is ready)
    "has_encoders_used_pots": "boolean"  // e.g., false (whether encoders have been used over potentiometers)
  },
  "gpio": {
    "in": "int",  // e.g., 0 (GPIO input state)
    "out": "int"  // e.g., 1 (GPIO output state)
  },
  "windspeed": {
    "current": "float"  // e.g., 0.0 (current wind speed)
  },
  "program_runtime": {
    "current": "float"  // e.g., 1796100.61 (current program runtime in seconds)
  },
  "error_codes": "int",  // e.g., 0 (current error code)
  "system": {
    "system_time": "float"  // e.g., 1728415988.378 (system time in seconds)
  },
  "peer_data": {
    "peer_connected": "boolean",  // e.g., false (whether a peer is connected)
    "serial_no": "string",  // e.g., "" (peer serial number)
    "model_name": "string",  // e.g., "" (peer model name)
    "latitude": "float",  // e.g., 0.0 (peer latitude)
    "longitude": "float",  // e.g., 0.0 (peer longitude)
    "altitude": "float",  // e.g., 0.0 (peer altitude)
    "heading": "float",  // e.g., 0.0 (peer heading)
    "track_state": "int",  // e.g., 0 (peer tracking state)
    "rssi": "float"  // e.g., 0.0 (peer RSSI)
  },
  "error_strings": "string"  // e.g., "" (current error messages)
}

Back to Top

GPSAPStatus.json

Description:
Provides the current status of the GPS and AutoPeak systems, including radio settings, GPS data, attitude, mount orientation, and more.
Input:
No input is required for this endpoint. The response contains detailed information about the system's GPS and AutoPeak settings.
Authorization Level:
READONLY_WEB_USER
Example JSON Response:
{
  "lna": {
    "power1": "boolean",  // e.g., false (LNA power status for channel 1)
    "power2": "boolean"   // e.g., false (LNA power status for channel 2)
  },
  "radio": {
    "connType": "int",  // e.g., 1 (connection type)
    "RadioMfg": "int",  // e.g., 11 (radio manufacturer)
    "RadioIP": "string",  // e.g., "192.168.1.55" (radio IP address)
    "communityStr": "string",  // e.g., "public" (SNMP community string)
    "SNMPVer": "int",  // e.g., 0 (SNMP version)
    "analog_slope": "float",  // e.g., 1.0 (analog slope value)
    "analog_intercept": "float",  // e.g., 1.0 (analog intercept value)
    "OID": "string",  // e.g., "" (OID string)
    "rssiDiv": "int",  // e.g., 0 (RSSI divisor)
    "linkIdOID": "string",  // e.g., "" (Link ID OID)
    "resetRadioOID": "string",  // e.g., "" (Reset Radio OID)
    "connStateOID": "string",  // e.g., "" (Connection State OID)
    "rssiRate": "float",  // e.g., 0.1 (RSSI update rate)
    "connectStateRate": "float",  // e.g., 0.0 (Connection state update rate)
    "linkIdRate": "float",  // e.g., 0.0 (Link ID update rate)
    "type": "int",  // e.g., 11 (radio type)
    "level": "float",  // e.g., 10.3 (signal level)
    "connected": "int",  // e.g., 0 (connection status)
    "error_codes": "int"  // e.g., 0 (radio error codes)
  },
  "SNMP_Data": "object|null",  // e.g., null (SNMP data object or null)
  "GPS": {
    "GPStype": "int",  // e.g., 1 (GPS type)
    "sensor_lat": "float",  // e.g., 42.72665 (sensor latitude)
    "sensor_lng": "float",  // e.g., -71.63319 (sensor longitude)
    "sensor_alt": "float",  // e.g., -32.5 (sensor altitude)
    "sensor_mag_dec": "float",  // e.g., -14.7 (sensor magnetic declination)
    "lat": "float",  // e.g., 14.93525 (latitude)
    "lng": "float",  // e.g., -75.35235 (longitude)
    "alt": "float",  // e.g., 0.0 (altitude)
    "mag_dec": "float",  // e.g., -14.2 (magnetic declination)
    "lat_ovr": "boolean",  // e.g., true (latitude override)
    "lng_ovr": "boolean",  // e.g., true (longitude override)
    "alt_ovr": "boolean",  // e.g., true (altitude override)
    "mag_dec_ovr": "boolean",  // e.g., true (magnetic declination override)
    "HDOP": "float",  // e.g., 0.0 (Horizontal Dilution of Precision)
    "VDOP": "float",  // e.g., 0.0 (Vertical Dilution of Precision)
    "PDOP": "float",  // e.g., 0.0 (Position Dilution of Precision)
    "quality": "float",  // e.g., 0.0 (GPS quality)
    "connected": "boolean",  // e.g., true (GPS connection status)
    "status": "boolean",  // e.g., false (GPS status)
    "fix_type": "int",  // e.g., 1 (GPS fix type)
    "time": "float",  // e.g., 511607.60 (GPS timestamp)
    "num_sats": "int",  // e.g., 2 (number of satellites)
    "version": "string",  // e.g., "4.50" (GPS version)
    "NMEA_Strings": [
      "string",  // e.g., "$GPGGA,194740,..."
      "string",  // e.g., "$GPGSA,A,..."
      "string",  // e.g., "$GPRMC,194741,..."
    ]
  },
  "TargetTrack": {
    "mode": "int",  // e.g., 0 (target track mode)
    "object_num": "int",  // e.g., 0 (target object number)
    "rise_az": "float",  // e.g., 0.0 (rise azimuth in degrees)
    "rise_el": "float",  // e.g., 0.0 (rise elevation in degrees)
    "rise_time": "float",  // e.g., 0.0 (rise time in seconds)
    "peak_az": "float",  // e.g., 0.0 (peak azimuth in degrees)
    "peak_el": "float",  // e.g., 0.0 (peak elevation in degrees)
    "peak_time": "float",  // e.g., 0.0 (peak time in seconds)
    "set_az": "float",  // e.g., 0.0 (set azimuth in degrees)
    "set_el": "float",  // e.g., 0.0 (set elevation in degrees)
    "set_time": "float"  // e.g., 0.0 (set time in seconds)
  },
  "AutoPeak": {
    "track_home": ["float", "float", "float"],  // e.g., [0.0, 0.0, 0.0] (home track positions in degrees)
    "track_offset": ["float", "float", "float"],  // e.g., [0.0, 0.0, 0.0] (track offsets in degrees)
    "continuous_scan": "boolean",  // e.g., false (continuous scan status)
    "max_runtime": "float|null",  // e.g., 54000.0 (maximum runtime in seconds or null)
    "beam_width": "float",  // e.g., 10.0 (beam width in degrees)
    "peak_step_az": "float",  // e.g., 0.1 (peak step azimuth in degrees)
    "peak_step_el": "float",  // e.g., 0.1 (peak step elevation in degrees)
    "scan_step_az": "float",  // e.g., 0.5 (scan step azimuth in degrees)
    "scan_step_el": "float",  // e.g., 0.5 (scan step elevation in degrees)
    "scan_width": "float",  // e.g., 50.0 (scan width in degrees)
    "peak_width": "float",  // e.g., 1.0 (peak width in degrees)
    "raster_height": "float",  // e.g., 11.2 (raster height in degrees)
    "raster_stop": "float",  // e.g., 14.0 (raster stop in degrees)
    "sig_level": "float",  // e.g., 10.3 (signal level)
    "sig_unlock": "float",  // e.g., -110.0 (signal unlock level)
    "dwell_time": "float",  // e.g., 1.0 (dwell time in seconds)
    "scan_dwell": "float",  // e.g., 1.0 (scan dwell time in seconds)
    "reg_dwell": "float",  // e.g., 0.0 (regular dwell time in seconds)
    "side_lobe_check": "boolean",  // e.g., false (side lobe check status)
    "signal_lock_lvl": "float",  // e.g., -999.9 (signal lock level)
    "tr_sig_start": "float",  // e.g., -70.0 (threshold signal start)
    "tr_sig_stop": "float",  // e.g., -100.0 (threshold signal stop)
    "tr_enable": "boolean",  // e.g., false (threshold repeak enabled)
    "tr_interval": "float",  // e.g., 180.0 (threshold interval in seconds)
    "tr_side": "int",  // e.g., 1 (threshold repeak side)
    "rssi_drop_thresh": "float",  // e.g., -4.0 (RSSI drop threshold)
    "min_rssi_step": "float",  // e.g., 2.0 (minimum RSSI step)
    "radius": "float",  // e.g., 2.0 (radius in degrees)
    "num_points": "int",  // e.g., 7 (number of points)
    "scan_speed": "float",  // e.g., 0.0 (scan speed)
    "track_speed": "float",  // e.g., 1.0 (track speed)
    "scan_stop_threshold": "float|null",  // e.g., null (scan stop threshold)
    "state": "int",  // e.g., 6 (AutoPeak state)
    "type": "int",  // e.g., 1 (AutoPeak type)
    "peak_type": "int",  // e.g., 2 (peak type)
    "uid_target": "string",  // e.g., "" (target unique ID)
    "uid_curr": "string",  // e.g., "" (current unique ID)
    "mode_interlock": "int",  // e.g., 0 (mode interlock)
    "ap_error_mask": "int",  // e.g., 0 (AutoPeak error mask)
    "cnAlignState": "int"  // e.g., 0 (AutoPeak alignment state)
  },
  "attitude_data": {
    "curr_pitch": "float",  // e.g., 0.0 (current pitch in degrees)
    "curr_roll": "float",  // e.g., 0.0 (current roll in degrees)
    "curr_yaw": "float",  // e.g., 81.08 (current yaw in degrees)
    "ahrs_sensor_pitch": "float",  // e.g., -0.09 (AHRS sensor pitch in degrees)
    "ahrs_sensor_roll": "float",  // e.g., -0.40 (AHRS sensor roll in degrees)
    "ahrs_sensor_yaw": "float",  // e.g., 26.39 (AHRS sensor yaw in degrees)
    "sensor_pitch": "float",  // e.g., -0.09 (sensor pitch in degrees)
    "sensor_roll": "float",  // e.g., -0.43 (sensor roll in degrees)
    "sensor_yaw": "float",  // e.g., -4375.95 (sensor yaw in degrees)
    "pitch_dead_band": "float",  // e.g., 0.0 (pitch dead band in degrees)
    "roll_dead_band": "float",  // e.g., 0.0 (roll dead band in degrees)
    "yaw_dead_band": "float",  // e.g., 0.0 (yaw dead band in degrees)
    "ovr_pitch": "boolean",  // e.g., false (pitch override)
    "ovr_roll": "boolean",  // e.g., false (roll override)
    "ovr_yaw": "boolean",  // e.g., false (yaw override)
    "enabled": "boolean",  // e.g., false (attitude enabled)
    "status": "int",  // e.g., 0 (attitude status)
    "stabilize": "int",  // e.g., 0 (stabilization state)
    "gyro_calib": "boolean",  // e.g., true (gyro calibration status)
    "accel_calib": "boolean"  // e.g., true (accelerometer calibration status)
  },
  "mount_orient": {
    "Roll": "float",  // e.g., 0.0 (mount roll in degrees)
    "Pitch": "float",  // e.g., 0.0 (mount pitch in degrees)
    "Yaw": "float"  // e.g., 0.0 (mount yaw in degrees)
  },
  "Xel_center": {
    "Status": "int"  // e.g., 0 (Xel center status)
  },
  "peer_data": {
    "cli_or_srv": "int",  // e.g., 0 (client or server mode)
    "peer_enabled": "boolean",  // e.g., false (peer connection enabled)
    "peer_ip": "string"  // e.g., "" (peer IP address)
  }
}

Back to Top

update_settings.json

Description:
Provides the current settings and statuses of various system components such as elevation mode, ADC status, motor maintenance, limits, geo offsets, remote stats, and more.
Input:
No input is required for this endpoint. The response contains various settings and status details.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "reverse_el": "boolean",  // e.g., false (Reverse elevation state)
  "elevation_mode": "int",  // e.g., 0 (Elevation mode)
  "adc_status": {
    "az_pot": "boolean",  // e.g., true (Azimuth potentiometer status)
    "el_pot": "boolean",  // e.g., true (Elevation potentiometer status)
    "ux_pot": "boolean",  // e.g., true (Ux potentiometer status)
    "ux2_pot": "boolean",  // e.g., true (Ux2 potentiometer status)
    "v12_mtr": "boolean",  // e.g., true (12V motor status)
    "v12_aux": "boolean",  // e.g., true (12V auxiliary status)
    "v5_mon": "boolean",  // e.g., true (5V monitor status)
    "v3_mon": "boolean",  // e.g., true (3V monitor status)
    "az_curr": "boolean",  // e.g., true (Azimuth current sensor status)
    "el_curr": "boolean",  // e.g., true (Elevation current sensor status)
    "ux_curr": "boolean",  // e.g., true (Ux current sensor status)
    "ux2_curr": "boolean",  // e.g., true (Ux2 current sensor status)
    "v12_curr": "boolean",  // e.g., true (12V current sensor status)
    "v5_curr": "boolean",  // e.g., true (5V current sensor status)
    "mezz1": "boolean",  // e.g., true (Mezzanine 1 status)
    "mezz2": "boolean"  // e.g., true (Mezzanine 2 status)
  },
  "motor_maintenance": {
    "aux1_voltage": "float",  // e.g., 0.98 (Auxiliary 1 voltage)
    "aux2_voltage": "float",  // e.g., 0.54 (Auxiliary 2 voltage)
    "monitor_12v_aux": "float",  // e.g., 12.00 (12V auxiliary monitor)
    "monitor_5v1": "float",  // e.g., 5.09 (5V1 monitor)
    "monitor_3v3": "float",  // e.g., 3.38 (3.3V monitor)
    "monitor_12v_curr": "float",  // e.g., 0.08 (12V current monitor)
    "monitor_5v_curr": "float",  // e.g., 0.44 (5V current monitor)
    "monitor_12v_mtr": "float",  // e.g., 11.99 (12V motor monitor)
    "aux2_pot_voltage": "float",  // e.g., 4.43 (Auxiliary 2 potentiometer voltage)
    "monitor_24v_curr": "float",  // e.g., 2.50 (24V current monitor)
    "rssi_input": "float"  // e.g., 0.98 (RSSI input voltage)
  },
  "limits": {
    "Az": ["float", "float"],  // e.g., [239.999, -239.999] (Azimuth limits in degrees)
    "El": ["float", "float"],  // e.g., [95, -95] (Elevation limits in degrees)
    "Ux": ["float", "float"],  // e.g., [0, 0] (Ux limits)
    "min_track_dist": "float",  // e.g., 10.0 (Minimum track distance)
    "use_min_el_track_dist": "boolean",  // e.g., true (Whether to use minimum elevation track distance)
    "min_el_track_dist": "float"  // e.g., 50.0 (Minimum elevation track distance)
  },
  "geo_offsets": {
    "Az": "float",  // e.g., 0.0 (Azimuth geo offset in degrees)
    "El": "float",  // e.g., 0.0 (Elevation geo offset in degrees)
    "Ux": "float"  // e.g., 0.0 (Ux geo offset in degrees)
  },
  "remote_stats": {
    "ser_rx_count": "int",  // e.g., 0 (Serial receive message count)
    "ser_tx_count": "int",  // e.g., 0 (Serial transmit message count)
    "ser_crc_err": "int",  // e.g., 0 (Serial CRC errors)
    "udp_active": "boolean",  // e.g., false (UDP active status)
    "udp_rx_count": "int",  // e.g., 0 (UDP receive message count)
    "udp_tx_count": "int",  // e.g., 0 (UDP transmit message count)
    "udp_crc_err": "int"  // e.g., 0 (UDP CRC errors)
  },
  "comp_calib_sts": {
    "cal_point": "int",  // e.g., 0 (Current calibration point)
    "total_pts": "int"  // e.g., 18 (Total calibration points)
  },
  "auxiliary": {
    "aperture": "float",  // e.g., 1.0 (Aperture value)
    "enabled": "boolean",  // e.g., false (Auxiliary axis enabled)
    "type": "int",  // e.g., 0 (Auxiliary axis type)
    "scale_factor": "float",  // e.g., 0.0 (Auxiliary scale factor)
    "pol_gain": "float",  // e.g., 0.0 (Polarization gain)
    "dir_sense": "int",  // e.g., 0 (Direction sense)
    "drive_sense": "int"  // e.g., 0 (Drive sense)
  }
}

Back to Top

settings.json

Description:
Provides settings and statuses related to local settings, axes, network configuration, system model info, user information, and various system limits.
Input:
No input is required for this endpoint. The response contains various system configurations and settings.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "local_settings": {
    "angles": "int",          //  0 (Angle settings for localization)
    "distances": "int",       //  0 (Distance settings for localization)
    "temps": "int",           //  0 (Temperature settings for localization)
    "mapping_service": "int"  //  0 (Mapping service)
  },
  "ux_axis": {
    "ux_en": "boolean",      //  false (UX axis enabled status)
    "ux_type": "int",        //  0 (UX axis type)
    "xel_lo_volt": "float",  //  0.0 (UX low voltage threshold)
    "xel_hi_volt": "float"   //  0.0 (UX high voltage threshold)
  },
  "hard_limits": {
    "Az": ["float", "float"],  //  [240.0, -240.0] (Azimuth limits in degrees)
    "El": ["float", "float"],  //  [95, -95] (Elevation limits in degrees)
    "Ux": ["float", "float"]   //  [0, 0] (UX axis limits)
  },
  "network": {
    "ip_addr": "string",      //  "192.168.1.222" (IP address)
    "netmask": "string",      //  "255.255.255.0" (Netmask)
    "gateway": "string",      //  "192.168.1.1" (Gateway address)
    "mac_address": "string",  //  "b8:94:d9:31:70:16" (MAC address)
    "name_server": "string",  //  (Name server)
    "ntp_server": "string"    //  (NTP server address)
  },
  "time_source": "int",  //  2 (Time source type)
  "ais": {
    "mmsi": "int64",        //  0 (MMSI identifier for AIS)
    "port": "int",          //  0 (AIS port number)
    "ip_address": "string"  //  (AIS IP address)
  },
  "serial": {
    "baud": "int",       //  19200 (Serial baud rate)
    "addr": "int",       //  25 (Serial address)
    "pelcoD": "boolean"  //  false (Pelco-D protocol enabled)
  },
  "system_name": "string",  //  "" (System name)
  "model_info": {
    "software_version": "string",         //  "KALI-2.57.2" (Software version)
    "software_build_timestamp": "string", //  "2024-10-06 19:32:57.000000000" (Build timestamp)
    "model_id": "int",                    //  27 (Model ID)
    "ctrl_board_type": "int",             //  1 (Control board type)
    "ctrl_board_rev": "string",           //  "D" (Control board revision)
    "ctrl_board_sn": "string",            //  "AB00246" (Control board serial number)
    "ctrl_board_datecode": "string",      //  "20230829_1504" (Control board datecode)
    "pwr_board_type": "int",              //  1 (Power board type)
    "pwr_board_rev": "string",            //  "E" (Power board revision)
    "pwr_board_sn": "string",             //  "AB00246" (Power board serial number)
    "pwr_board_datecode": "string",       //  "20230829_1504" (Power board datecode)
    "feedback_type": "int",               //  2 (Feedback type)
    "model_name": "string",               //  "LA-360MPT-30-ME" (Model name)
    "part_number": "string",              //  "" (Part number)
    "demo_on_power": "boolean",           //  false (Demo mode on power)
    "ui_type": "int",                     //  0 (UI type)
    "has_elevation": "int",               //  1 (Has elevation capability)
    "on_sd_card": "boolean",              //  false (Running on SD card)
    "has_imu": "boolean",                 //  true (Has IMU)
    "continuous_az": "boolean",           //  false (Continuous azimuth capability)
    "mezz_type": "int",                   //  0 (Mezzanine type)
    "serial": "string",                   //  "999999" (Serial number)
    "num_lnas": "int",                    //  0 (Number of LNAs)
    "supports_adj_elevation": "boolean"   //  true (Supports adjustable elevation)
  },
  "user_info": {
    "idx": "int",           //  1 (User index)
    "name": "string",       //  "admin" (Username)
    "authorization": "int"  //  1 (Authorization level)
  },
  "compass_overide": {
    "enabled": "boolean",              //  true (Compass override enabled)
    "angle": "float",                  //  100.0 (Compass override angle in degrees)
    "one_shot_on_geo_move": "boolean"  //  false (One-shot override on geo move)
  },
  "stow": {
    "Az": "float",  //  0.0 (Azimuth stow position in degrees)
    "El": "float",  //  0.0 (Elevation stow position in degrees)
    "Ux": "float"   //  0.0 (UX axis stow position in degrees)
  },
  "startup_config": {
    "stow_enabled": "boolean",                 //  false (Stow on startup enabled)
    "stow_unless_radio_connection": "boolean", //  false (Stow unless radio connection)
    "stow_rssi_threshold": "float|null",       //  null (RSSI threshold for stow)
    "stow_time_delay": "float|null"            //  null (Time delay for stow)
  },
  "trackVars": {
    "az_offset": "float",   //  0.0 (Azimuth offset in degrees)
    "el_offset": "float",   //  0.0 (Elevation offset in degrees)
    "time_offset": "float", //  0.0 (Time offset)
    "entry_el": "float",    //  0.0 (Entry elevation in degrees)
    "exit_el": "float",     //  0.0 (Exit elevation in degrees)
    "los_state": "int"      //  0 (Line of sight state)
  },
  "windspeed": {
    "abs_max_windspeed": "float",  //  102.0 (Absolute max windspeed)
    "max_windspeed": "float"       //  -1.0 (Max windspeed)
  },
  "gpio_setup": [
    {
      "idx": "int",      //  0 (GPIO index)
      "name": "string",  //  "" (GPIO name)
      "mode": "int",     //  0 (GPIO mode)
      "active": "int"    //  0 (GPIO active state)
    }
  ]
}

Back to Top

stored_locations.json

Description:
Returns a list of stored location data that includes latitude, longitude, and altitude, along with other information such as type, name, and whether it is the default location.
Input:
No input is required for this endpoint. The response contains the list of stored locations from the database.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "stored_locations": [
    {
      "idx": "int",                // Index of another stored location)
      "type": "int",               // (Type of location (0 = LLA, 1 = ped, 2 = geo, 3 = sat slot))
      "name": "string",            // (Name of the stored location)
      "az_lat": "float|null",      // (Azimuth or Latitude value in degrees)
      "el_lng": "float|null",      // (Elevation or Longitude value in degrees)
      "ux_alt": "float|null",      // (UX axis or Altitude value)
      "unique_id": "string|null",  // (Unique identifier)
      "is_default": "boolean"      // (Whether the location is set as default)
    },
    {
      "idx": "int",                // Index of another stored location)
      "type": "int",               // (Type of location (0 = LLA, 1 = ped, 2 = geo, 3 = sat slot))
      "name": "string",            // (Name of the stored location)
      "az_lat": "float|null",      // (Azimuth or Latitude value in degrees)
      "el_lng": "float|null",      // (Elevation or Longitude value in degrees)
      "ux_alt": "float|null",      // (UX axis or Altitude value)
      "unique_id": "string|null",  // (Unique identifier)
      "is_default": "boolean"      // (Whether the location is set as default)
    }
    // Additional stored locations...
  ]
}

Back to Top

list_track.json

Description:
Returns a list of track entries, where each entry contains a track name. This list is generated based on available tracks stored in the system.
Input:
No input is required for this endpoint. The response contains the list of track names.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "list_track_entries": [
    { "name": "fixedacc5" },
    { "name": "fixedacc4" },
    { "name": "fixedacc1" }
  ]
}

Back to Top

Satellite_Data.json

Description:
Provides the ephemeris data of multiple satellites, including their NORAD ID, name, orbital parameters, and other tracking information.
Input:
No input is required. The data is fetched from a database or an ephemeris tracking system.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "Satellite_EphemData": [
    {
      "norad_id": 54755,
      "name": "O3B MPOWER F1",
      "intl_desig": "22174A  ",
      "epoch": 24262.2745234,
      "xndt2o": -1.8e-07,
      "xndd6o": 0,
      "bstar": 0,
      "inclination": 0.0547,
      "right_ascension": 345.548,
      "eccentricity": 0.0006583,
      "arg_perigee": 187.0962,
      "mean_anomaly": 157.7353,
      "mean_motion": 5.00113373
    },
    {
      "norad_id": 54756,
      "name": "O3B MPOWER F2",
      "intl_desig": "22174B  ",
      "epoch": 24263.22370837,
      "xndt2o": -1.9e-07,
      "xndd6o": 0,
      "bstar": 0,
      "inclination": 0.0508,
      "right_ascension": 344.0761,
      "eccentricity": 0.0005519,
      "arg_perigee": 197.1668,
      "mean_anomaly": 178.7583,
      "mean_motion": 5.00113863
    }
  ]
}

Back to Top

autoPeakSettings.json

Description:
Provides SNMP Radio configuration and associated OID function details for the auto peak system. It also includes radio settings such as connection type, manufacturer, and SNMP version.
Input:
No input is required. The data is fetched from the database and radio settings.
Authorization Level:
ADMIN_WEB_USER
Example JSON Response:
{
  "SNMP_Radio_Config": [
    {
      "idx": 1,
      "mfg_id": 4,
      "OID_String": "1.3.6.1.4.1.17713.9.12.12.0",
      "period": 0.1,
      "divisor": 10,
      "oid_function": 0,
      "one_time": false
    },
    {
      "idx": 2,
      "mfg_id": 11,
      "OID_String": "1.3.6.1.4.1",
      "period": 0.1,
      "divisor": 1,
      "oid_function": 0,
      "one_time": false
    }
  ],
  "SNMP_OID_Function": [
    {
      "idx": -1,
      "name": "None",
      "deletable": false
    },
    {
      "idx": 0,
      "name": "RSSI",
      "deletable": false
    },
    {
      "idx": 1,
      "name": "Connection State",
      "deletable": false
    },
    {
      "idx": 2,
      "name": "Link ID",
      "deletable": false
    },
    {
      "idx": 3,
      "name": "Reset",
      "deletable": false
    }
  ],
  "radio": {
    "connType": 1,
    "RadioMfg": 11,
    "RadioIP": "192.168.1.55",
    "communityStr": "public",
    "SNMPVer": 0,
    "analog_slope": 1,
    "analog_intercept": 1
  }
}

Back to Top

Back to Top