Download the PHP package track-any-device/drivers without Composer

On this page you can find all versions of the php package track-any-device/drivers. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package drivers

track-any-device/drivers

Device drivers and connectors for the Track Any Device platform.

Each driver encapsulates all protocol knowledge for a specific GPS tracker model — parsing incoming telemetry (stream or SMS), building outgoing commands, and managing device onboarding. The rest of the platform talks to every device through a single uniform interface.


Requirements


Installation

The service provider is auto-discovered by Laravel.


Included drivers

Driver class Device Stream channel SMS fallback
GF07Driver GF-07 Mini GPS Tracker — (SMS only) yes
AOT120Driver AOT120 Vehicle GPS Tracker JT/T 808 TCP yes
P901Driver Cantrack P901 Smart ID Card JT/T 808 TCP yes

Core concepts

DeviceDriverInterface

Every driver implements TrackAnyDevice\Drivers\Contracts\DeviceDriverInterface. You interact with any device through this contract without needing to know which driver is underneath.

SignalObject

A readonly value object that carries normalised telemetry. Drivers populate whatever fields they can parse and leave the rest null.

Check for a usable position:

Stamp with server receive time (done by SignalService):

Serialise / deserialise:


Parsing incoming telemetry

Stream events (JT808)

The JT808 TCP server decodes binary frames and publishes a decoded array. Pass it straight to the driver:

SMS replies

Pass the raw SMS body as received from the gateway:

For drivers that only receive SMS (e.g. GF-07), you can also pass an event array with a raw key:


Sending commands

Request a location fix

JT808 drivers send a 0x8201 query over the live socket when the device is online (last signal within 10 minutes), falling back to an SMS command when it is not.

Set tracking mode

Add-on commands

Each driver declares its full command catalogue via addOnCommands(), which the Filament UI uses to render the command panel:

Execute a named command:


Onboarding a new device

Call onboardingAction once after a device is provisioned. It queues the full setup sequence (server IP, APN, timezone, default tracking mode) as SMS commands via DeviceCommandObserver:

Commands are dispatched asynchronously — the observer picks up each DeviceCommand row and routes it through SMSConnector.


Stream routing

JT808 drivers (AOT120Driver, P901Driver) determine whether the device is reachable over the live socket by checking last_signal_at:

When the stream is available, commands are published to a Redis pub/sub channel:

The JT808 TCP server subscribes to this channel and writes the encoded frame to the open socket.


Adding a new driver

  1. Create a class in src/ that implements DeviceDriverInterface.
  2. Use the QueuesSmsCommands trait if the driver sends SMS commands.
  3. Implement buildSmsBody(string $commandType, array $params): ?string — return the raw SMS string for each command type, or null to skip.
  4. Register the driver in your application's DriverRegistry (provided by track-any-device/core).

SMSConnector

TrackAnyDevice\Drivers\Connectors\SMSConnector implements DeviceConnectorInterface and dispatches outgoing messages through SmsGatewayService. It is resolved from the container automatically when bound:

The connector updates the DeviceCommand status to QueuedSent (or Failed) as the message progresses.


Changelog

See GitHub Releases.

Licence

MIT


All versions of drivers with dependencies

PHP Build Version
Package Version
Requires php Version ^8.3
laravel/framework Version ^13.7
track-any-device/core Version ^0.8.0
track-any-device/sms-gateway Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package track-any-device/drivers contains the following files

Loading the files please wait ...