diff --git a/cmd/gqgmc/main.go b/cmd/gqgmc/main.go
index 12e16538989e4ab5e4fdf17deb48ee36adea19a4..626c58a7db47dc0b46e6bea474f23ae83a9cd68c 100644
--- a/cmd/gqgmc/main.go
+++ b/cmd/gqgmc/main.go
@@ -20,7 +20,6 @@ func main() {
volts int16
ser string
err error
- ver string
t time.Time
)
@@ -54,12 +53,9 @@ func main() {
}
fmt.Printf("CPS: %d\n", cps)
- ver, err = gc.Version()
- if err != nil {
- fmt.Printf("Failed: '%s'\n", err)
- return
- }
- fmt.Printf("Version: %s\n", ver)
+ fmt.Printf("Version: %s\n", gc.Version())
+ fmt.Printf("Short Version: %s\n", gc.Ver())
+ fmt.Printf("Model: %s\n", gc.Model())
ser, err = gc.SerialNum()
if err != nil {
diff --git a/devices/geiger/geiger.go b/devices/geiger/geiger.go
index d04835a2bb067da65c48aebd3f495b2e717fe992..9c2d73165196a4714cc2fd02d05e5a76a066841e 100644
--- a/devices/geiger/geiger.go
+++ b/devices/geiger/geiger.go
@@ -21,7 +21,9 @@ func New(c Config) (Counter, error) {
// Counter is an interface for Geiger Counters
type Counter interface {
Clear() error
- Version() (string, error)
+ Model() string
+ Version() string
+ Ver() string
SerialNum() (string, error)
GetCPM() (uint16, error)
GetCPS() (uint16, error)
diff --git a/devices/geiger/gqgmc.go b/devices/geiger/gqgmc.go
index 59d4ff131134b21d7a5e40802e431d645d145200..95ffdc463e9052bc13c0a984c93c2e1e59fa1ad2 100644
--- a/devices/geiger/gqgmc.go
+++ b/devices/geiger/gqgmc.go
@@ -123,21 +123,32 @@ const (
type GQGMCCounter struct {
port *serial.Port
config *serial.Config
+ version,
+ shortVer,
+ model string
}
// NewGQGMC creates a new GQGMC Counter instance
func NewGQGMC(c Config) (*GQGMCCounter, error) {
- cfg := serial.Config{
+ var gc GQGMCCounter
+ var v []byte
+
+ gc.config = &serial.Config{
Name: c.Device,
Baud: 57600,
ReadTimeout: 500 * time.Millisecond,
}
- p, err := serial.OpenPort(&cfg)
+ p, err := serial.OpenPort(gc.config)
if err != nil {
return nil, err
}
+ gc.port = p
+ v, err = gc.communicate(cmdGetVersion, 14)
+ gc.model = string(v[:6])
+ gc.version = string(v[7:])
+ gc.shortVer = string(v[10:])
//getConfigurationData()
- return &GQGMCCounter{port: p, config: &cfg}, nil
+ return &gc, nil
}
// Clear clears out any remaining data
@@ -153,9 +164,18 @@ func (gc *GQGMCCounter) Clear() error {
}
// Version gets the version of the device
-func (gc *GQGMCCounter) Version() (string, error) {
- ver, err := gc.communicate(cmdGetVersion, 14)
- return string(ver), err
+func (gc *GQGMCCounter) Version() string {
+ return gc.version
+}
+
+// Ver gets the short version of the device
+func (gc *GQGMCCounter) Ver() string {
+ return gc.shortVer
+}
+
+// Model gets the model of the device
+func (gc *GQGMCCounter) Model() string {
+ return gc.model
}
// SerialNum gets the serial number of the device