Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 2 additions & 9 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,6 @@ The SmartMakers driver SDK contains pre-built executables, documentation, and ex
for developing and deploying your own IoT device driver for the thingsHub IoT middleware.


## Contents

- [Quickstart](#quickstart)
- [Examples](#examples)
- [Contributing](#contributing)


## Quickstart Guide

Check out the [Quickstart Guide](docs/quickstart.md)
Expand All @@ -30,7 +23,7 @@ for more in-depth information on driver development.
## Driver Metadata

Driver metadata is information about a driver which is not directly part of the driver's executable code itself.
This includes, for example, information about the driver'S name, author, as well as the devices supported by this driver.
This includes, for example, information about the driver's name, author, as well as the devices supported by this driver.
See [here](docs/metadata.md) for more information about driver metadata.


Expand All @@ -41,7 +34,7 @@ They provide the thingsHub with an understand on how it should interprete a devi
and the different features a device provides, even before receiving actual uplinks
from the device.

More information about driver schemas can be found [here](docs/schemas.md).
More information about driver schemas can be found [here](docs/schema.md).


## Driver Versioning
Expand Down
File renamed without changes.
File renamed without changes.
71 changes: 0 additions & 71 deletions docs/capabilities.md

This file was deleted.

104 changes: 0 additions & 104 deletions docs/getting-started.md

This file was deleted.

11 changes: 11 additions & 0 deletions docs/golang.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,14 @@
# Golang Driver Development

Use the following command to initialize a javascript driver development project:

```
drivers init javascript
```

## Notes

* A Golang driver development project requires golang's `go` command line tool
Copy link

@ykoloch ykoloch Feb 7, 2019

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why shouldn't we add the link for the reader's convenience: https://golang.org/doc/install#install

to be installed (https://golang.org/doc/install#install).
* Golang requires the driver development projects path to be a subpath of the
path set in the environment variable GOPATH.
8 changes: 8 additions & 0 deletions docs/javascript.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
# Javascript Driver Development

Use the following command to initialize a javascript driver development project:

```
drivers init javascript
```

## Notes

* Javascript drivers cannot currently handle state management.
29 changes: 20 additions & 9 deletions docs/metadata.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,35 +2,46 @@

Driver metadata is information about a driver which is uploaded to the server along with
the driver itself.
Metadata can, for example,
* help the system interface with the driver correctly,
* help the user understand what the driver is about,
* and can be used to search a suitable driver for a given device.
Metadata, for example,

* helps the system interface with the driver correctly,
* helps the user understand what the driver is about,
* and can be used to identify a suitable driver for a given device in the registry.

Metada is stored in the file `.projects`, which is created when a project is initialized.
Following is an example for a metadata description:

```metadata:
name: imaginary-sensor
author: pupil
name: house-sensor
author: john
supports:
- manufacturer: none
model: none
- manufacturer: jack
model: house
firmwareversion: 0.1
platform: amd64
os: linux```
os: linux
```

* `name`: Name if the driver, usually indicates the supported manufaturer or device model,
but can be used in any way the driver author considers useful.
* `author`: The person or entity that wrote the driver. This is not necessarily the same
as the manufacturer of the device.
* `platform`: The target platform for which a driver was built.
Currently, the only option here is `amd64`.
* `os`: The target operating system for which a driver was built.
Currently, the only two options here are `linux` and `amd64`.
* `supports`: Indicates which devices and versions thereof the driver supports. See below for more information.

## Supports Declarations

A driver's author of a driver is not nececssarily the same entity as the manufacturer of a device.
For this reason, a driver's metadata allows explicitly listing the supported devices and their manufacturers.

A `supports` declaration indicates which devices a driver supports. Such a declaration can have three fields:
* `manufacturer`: Name of the device's manufacturer (e.g. 'Elsys' or 'NKE')
* `model`: Name of the device's model (e.g. 'ERS Lite' or 'In'O')
* `firmware_version`: The supported firmware version. As formats for firmware version vary widely,
this can be any string.

Supports information is purely informational for the user and not used for any kind of validation.
This implies that the system will not use his informaton to prevent usage of an unsuitable driver.
Loading