DoxieGo is command line tool and Go library to communicate with a Doxie Go Wi-Fi scanner.
Note: This project is not affiliated with Apparent or Doxie.
go get github.com/umahmood/doxiego
cd $GOPATH/src/github.com/umahmood/doxiego
go test ./...
Find Doxie on the network:
$ doxiego -hello
Name: Doxie_0591E0
Model: DX250
Has Password: false
Wi-Fi Firmware: 1.29
MAC: FA-B2-5A-66-EE-94
Mode: AP (Doxies own Wi-Fi network)
URL: http://192.168.1.100:8080/
Display a list of all scans:
$ doxiego -scans
name: IMG_0002.JPG size: 959458 modified: 2010-05-01 00:03:26
name: IMG_0003.JPG size: 941949 modified: 2010-05-01 00:06:44
Delete a list of scans (multiple scan names are comma separated):
$ doxiego -delete img_0002.jpg,img_0003.jpg
Download a scan as a thumbnail:
$ doxiego -get-thumbnail img_0002.jpg
downloaded thumbnail img_0002.jpg
Download a scan:
$ doxiego -get-scan img_0003.jpg
downloaded scan img_0003.jpg
Download all scans:
$ doxiego -get-scans
downloaded scan IMG_0002.JPG
downloaded scan IMG_0003.JPG
For help:
$ doxiego -help
See GoDoc for full capability of the API.
package main
import (
"fmt"
"github.com/umahmood/doxiego"
)
func main() {
doxieGo, err := doxiego.Hello()
if err != nil {
//...
}
fmt.Println("Doxie name", doxieGo.Name)
// if the scanner has a password set, fill in the password field
doxieGo.Password = "mypassword"
// get a list of scanned items on the scanner
items, err := doxieGo.Scans()
if err != nil {
//...
}
for _, s := range items {
fmt.Println("name:", s.Name, "size:", s.Size, "modified:", s.Modified)
}
// download a scan
img, err := doxieGo.Scan("img_0001.jpg")
if err != nil {
//...
}
//...
jpeg.Encode(file, img, nil)
// delete scans off the scanner
ok, err := doxieGo.Delete("img_0001.jpg", "img_0002.jpg")
if err != nil {
//...
} else if ok {
fmt.Println("scans deleted.")
}
}
- The code base has been tested with a single Doxie Go Wi-Fi scanner, in both AP and Client network modes.
See the LICENSE file for license rights and limitations (MIT).