From 869f07b2b1b7293f95676c19ab02692980de660f Mon Sep 17 00:00:00 2001 From: Kevin Lyda <kevin@ie.suberic.net> Date: Fri, 27 Jan 2017 18:16:49 +0000 Subject: [PATCH] Small initial pass at a geiger interface. --- devices/geiger/geiger.go | 34 ++++++++++++++++++++++++++++++++++ devices/geiger/gqgmc.go | 25 +++++++++++++++++++++++++ 2 files changed, 59 insertions(+) create mode 100644 devices/geiger/geiger.go create mode 100644 devices/geiger/gqgmc.go diff --git a/devices/geiger/geiger.go b/devices/geiger/geiger.go new file mode 100644 index 0000000..7599d56 --- /dev/null +++ b/devices/geiger/geiger.go @@ -0,0 +1,34 @@ +// +// geiger.go +// Copyright (C) 2017 kevin <kevin@ie.suberic.net> +// +// Distributed under terms of the GPL license. +// + +package geiger + +// New creates a new Counter instance +func New(c Config) (Counter, error) { + switch c.Model { + case "gqgmc": + return NewGQGMC(c) + } + return nil, nil +} + +// Counter is an interface for Geiger Counters +type Counter interface { + GetReading() (*Reading, error) +} + +// Config contain the configuration for a Geiger Counter +type Config struct { + Model string + Device string + Options map[string]string +} + +// Reading contains a single geiger reading +type Reading struct { + CPM float64 +} diff --git a/devices/geiger/gqgmc.go b/devices/geiger/gqgmc.go new file mode 100644 index 0000000..73e4483 --- /dev/null +++ b/devices/geiger/gqgmc.go @@ -0,0 +1,25 @@ +// +// gqgmc.go +// Copyright (C) 2017 kevin <kevin@phrye.com> +// +// Distributed under terms of the GPL license. +// + +package geiger + +// GQGMCCounter is a GQ GMC Counter +type GQGMCCounter struct { + fh string // TODO: make this a file handle. +} + +// NewGQGMC creates a new GQGMC Counter instance +func NewGQGMC(c Config) (*GQGMCCounter, error) { + return &GQGMCCounter{ + fh: "TODO", + }, nil +} + +// GetReading returns a reading. +func (gc *GQGMCCounter) GetReading() (*Reading, error) { + return nil, nil +} -- GitLab