npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@deeptrekker/api-domain

v0.58.7

Published

A business domain of types and schemas that the Deep Trekker topside communicates with via an API.

Downloads

1,090

Readme

Deep Trekker BRIDGE API

💡 Read the Service Disclaimer before using the API.

Introduction

The Deep Trekker BRIDGE API is a programming interface developed to enable external development with Deep Trekker systems. This API enables integration of Deep Trekker’s vehicle systems into various applications, facilitating real-time access to data and control. It supports multiple connection methods and offers detailed schemas for consistent and reliable data transfer.

This documentation describes the core types, schemas, enumerations, and construct definitions used by client-side applications and server side devices to communicate with one another. Furthermore, it also describes the various supported connection methods and means of communicating data. Altogether, this forms the entirety of the Deep Trekker API.

Connection Methods

The JSON-based API data is inherently agnostic, allowing any communication protocol to convey Deep Trekker API data. However, Deep Trekker supports two specific connectivity methods that are officially compatible with its vehicles, controllers, and peripheral devices. These supported methods ensure seamless and reliable integration, facilitating efficient control and data exchange across the Deep Trekker ecosystem.

Direct Socket Connection

The most accessible connection method to the system is through the use of a TCP socket connection. This connection has no additional handshaking requirements and can be accessed via port 5005 on any of the supported hardware devices.

Simply establish a TCP connection to <device_ip_address>:5005.

Once the connection is made data will start to be received.

WebRTC Connection

A WebRTC connection interface is also available, incorporating video transport, encrypted connections, and handshaking for over-the-internet control. This interface is more complex and requires significantly more development effort and expertise to utilize. If you have specific requirements necessitating a WebRTC connection, please contact [email protected] for additional information.

Supported Hardware

Handheld Controller

The standard Deep Trekker hand controller supports the Direct Socket Connection to data readout and no vehicle control.

BRIDGE Box / BRIDGE Box Enabled Products

The BRIDGE Box and BRIDGE Box enabled products (such as Powered Reels and Consoles) have full support for the API.

Transfer Payload and Schema

Transfer Payload

All API data is transacted through the TransferPayload object. This object contains the schema payload, as well as the method type and error flagging.

Transfer payloads can use 4 different method types, as well as an error flag:

  • Methods

    • GET - Used by the client to request API data
    • SET - Used by the client to send API data
    • UPDATE - Sent by the server to send API data updates
    • DELETE - Sent by the server to notify the client of removed API data
  • Errors

    • ERROR - Sent by the server to communicate API transaction errors
      • The full list of errors and their details can be seen here.

JSON Schema

All payload data is required to satisfy the JSON schema detailed in this documentation.

Below is sample schema of the Deep Trekker REVOLUTION, detailed information about all supported devices and attributes can be found documented in this site.

{@codeblock ~~/dist/samples/json/states/revolutionRandomState.json}

⚖️ Service Disclaimer

The Deep Trekker API ("our API library") is provided as is, without warranty of any kind, either express or implied, including but not limited to the implied warranties of merchantability and fitness for a particular purpose. We make no representations or warranties that the API library will meet your requirements or that its operation will be uninterrupted or error-free. We will not be liable for any damages of any kind arising from the use of the API library, including but not limited to direct, indirect, incidental, punitive, and consequential damages.

We do not provide technical support for integrating our API library into your software application. While we strive to make our API library easy to use and provide documentation and sample code, it is your responsibility to ensure that your software is compatible with our API library and that the integration is implemented correctly. We will not be liable for any issues or errors that arise from the integration of our API library into your software application.