From 61b5ae730af57010f974c541d4794f5458ceb2cd Mon Sep 17 00:00:00 2001 From: Marc-Antoine Ruel Date: Mon, 6 Mar 2017 16:55:11 -0500 Subject: [PATCH] Migrated documentation to github.com/periph/website --- README.md | 147 +----------------------------------------------------- 1 file changed, 1 insertion(+), 146 deletions(-) diff --git a/README.md b/README.md index b4d3a53..069b07c 100644 --- a/README.md +++ b/README.md @@ -1,151 +1,6 @@ # periph - Peripherals I/O in Go - -## Features - -- Continuously tested on [Raspberry Pi](https://raspberrypi.org), - [C.H.I.P.](https://getchip.com/) and Windows 10 via - [gohci](https://github.com/periph/gohci). -- Interfaces: I²C, SPI, gpio (both low latency memory mapped registers and - zero-CPU edge detection), 1-wire and more. -- Devices: apa102, bme280, ds18b20, ssd1306, tm1637, and more coming. - - -## Quick links - -- [doc/users/](https://periph.io/doc/users/) for ready-to-use tools. -- [doc/apps/](https://periph.io/doc/apps/) to use `periph` as a library. The - complete API documentation, including examples, is at - [![GoDoc](https://godoc.org/periph.io/x/periph?status.svg)](https://godoc.org/periph.io/x/periph). -- [doc/drivers/](https://periph.io/doc/drivers/) to expand the list of supported - hardware. - - -## Users - -periph includes [many ready-to-use -tools](https://github.com/google/periph/tree/master/cmd/)! See -[doc/users/](https://periph.io/doc/users/) for more info on configuring the host -and using the included tools. - -```bash -# Retrieve and install all the commands at once: -go get periph.io/x/periph/cmd/... -# List the host drivers registered and/or initialized: -periph-info -# List the known headers: -headers-list -# List the known GPIO state: -gpio-list -``` - - -## Application developers - -For [application developers](https://periph.io/doc/apps/), `periph` provides -OS-independent bus interfacing. It really tries hard to _get out of the way_. -Here's the canonical "toggle a LED" sample: - - -```go -package main - -import ( - "time" - "periph.io/x/periph/conn/gpio" - "periph.io/x/periph/host" -) - -func main() { - host.Init() - for l := gpio.Low; ; l = !l { - gpio.ByNumber(13).Out(l) - time.Sleep(500 * time.Millisecond) - } -} -``` - -The following are synonyms, use the form you prefer: - -- Runtime discovery: - - [`gpio.ByNumber(13)`](https://godoc.org/periph.io/x/periph/conn/gpio/#ByNumber) - or - [`gpio.ByName("13")`](https://godoc.org/periph.io/x/periph/conn/gpio/#ByName) - - [`gpio.ByName("GPIO13")`](https://godoc.org/periph.io/x/periph/conn/gpio/#ByName) -- Using global variables: - - [`rpi.P1_33`](https://godoc.org/periph.io/x/periph/host/rpi#/P1_33) to - select the pin via its position on the board - - [`bcm283x.GPIO13`](https://godoc.org/periph.io/x/periph/host/bcm283x/#GPIO13) - -This example uses basically no CPU: the `Out()` call doesn't call into the -kernel. Instead it directly changes the GPIO memory mapped register. - - -### Samples - -See [doc/apps/samples/](https://periph.io/doc/apps/samples/) for more examples. - - -## Contributions - -`periph` provides an extensible driver registry and common bus interfaces which -are explained in more details at [doc/drivers/](https://periph.io/doc/drivers/). -`periph` is designed to work well with drivers living in external repositories -so you are not _required_ to fork the periph repository to load out-of-tree -drivers for your platform. - -**Every commit is [tested on real -hardware](https://periph.io/doc/drivers/contributing/#testing) via -[gohci](https://github.com/periph/gohci) workers.** - -We gladly accept contributions for documentation improvements and from device -driver developers via GitHub pull requests, as long as the author has signed the -Google Contributor License. Please see -[doc/drivers/contributing/](https://periph.io/doc/drivers/contributing/) for -more details. - - -## Philosophy - -1. Optimize for simplicity, correctness and usability in that order. - - e.g. everything, interfaces and structs, uses strict typing, there's no - `interface{}` in sight. -2. OS agnostic. Clear separation of interfaces in - [conn/](https://godoc.org/periph.io/x/periph/conn), - enablers in [host/](https://godoc.org/periph.io/x/periph/host) and device - drivers in [devices/](https://godoc.org/periph.io/x/periph/devices). - - e.g. no devfs or sysfs path in sight. - - e.g. conditional compilation enables only the relevant drivers to be loaded - on each platform. -3. ... yet doesn't get in the way of platform specific code. - - e.g. A user can use statically typed global variables - [rpi.P1_3](https://godoc.org/periph.io/x/periph/host/rpi#pkg-variables), - [bcm283x.GPIO2](https://godoc.org/periph.io/x/periph/host/bcm283x#Pin) - to refer to the exact same pin on a Raspberry Pi. -3. The user can chose to optimize for performance instead of usability. - - e.g. - [apa102.Dev](https://godoc.org/periph.io/x/periph/devices/apa102#Dev) - exposes both high level - [draw.Image](https://golang.org/pkg/image/draw/#Image) to draw an image and - low level [io.Writer](https://golang.org/pkg/io/#Writer) to write raw RGB - 24 bits pixels. The user chooses. -4. Use a divide and conquer approach. Each component has exactly one - responsibility. - - e.g. instead of having a driver per "platform", there's a driver per - "component": one for the CPU, one for the board headers, one for each - bus and sensor, etc. -5. Extensible via a [driver - registry](https://godoc.org/periph.io/x/periph#Register). - - e.g. a user can inject a custom driver to expose more pins, headers, etc. - A USB device (like an FT232H) can expose headers _in addition_ to the - headers found on the host. -6. The drivers must use the fastest possible implementation. - - e.g. both - [allwinner](https://godoc.org/periph.io/x/periph/host/allwinner) - and - [bcm283x](https://godoc.org/periph.io/x/periph/host/bcm283x) - leverage sysfs gpio to expose interrupt driven edge detection, yet use - memory mapped GPIO registers to perform single-cycle reads and writes. +Documentation and samples are at https://periph.io ## Authors