Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Kevin Lyda
gqgmc
Commits
c5a09d9d
Commit
c5a09d9d
authored
Feb 01, 2017
by
Kevin Lyda
💬
Browse files
Fixed serial.
parent
88ac98bd
Pipeline
#1222
passed with stage
in 1 minute and 11 seconds
Changes
4
Pipelines
1
Show whitespace changes
Inline
Side-by-side
cmd/gqgmc/main.go
View file @
c5a09d9d
...
...
@@ -20,7 +20,6 @@ func main() {
cps
,
cpm
uint16
volts
int16
temp
float64
ser
string
err
error
t
time
.
Time
)
...
...
@@ -57,13 +56,7 @@ func main() {
fmt
.
Printf
(
"Version: %s
\n
"
,
gc
.
Version
())
fmt
.
Printf
(
"Model: %s
\n
"
,
gc
.
Model
())
ser
,
err
=
gc
.
SerialNum
()
if
err
!=
nil
{
fmt
.
Printf
(
"Serial failed: '%s'
\n
"
,
err
)
return
}
fmt
.
Printf
(
"Serial: %s
\n
"
,
ser
)
fmt
.
Printf
(
"Serial: %s
\n
"
,
gc
.
Serial
())
volts
,
err
=
gc
.
Volts
()
if
err
!=
nil
{
...
...
cmd/gqgmcd/main.go
View file @
c5a09d9d
...
...
@@ -12,6 +12,7 @@ import (
"html/template"
"log"
"net/http"
"path"
"github.com/prometheus/client_golang/prometheus/promhttp"
"gitlab.com/lyda/gqgmc/devices/geiger"
...
...
@@ -20,6 +21,7 @@ import (
var
addr
=
flag
.
String
(
"listen-address"
,
":8080"
,
"Address for HTTP requests."
)
var
device
=
flag
.
String
(
"device"
,
"/dev/gqgmc"
,
"Device for Geiger Counter."
)
var
model
=
flag
.
String
(
"model"
,
"gqgmc"
,
"Model of Geiger Counter."
)
var
templateDir
=
flag
.
String
(
"template_dir"
,
"templates"
,
"Template directory."
)
type
indexPage
struct
{
Model
string
...
...
@@ -34,7 +36,7 @@ var indexPg indexPage
func
indexHandler
(
w
http
.
ResponseWriter
,
r
*
http
.
Request
)
{
indexPg
.
CPM
,
_
=
gc
.
GetCPM
()
t
,
err
:=
template
.
ParseFiles
(
"index.html"
)
t
,
err
:=
template
.
ParseFiles
(
path
.
Join
(
*
templateDir
,
"index.html"
)
)
if
err
!=
nil
{
log
.
Printf
(
"Template error: %s
\n
"
,
err
)
}
...
...
@@ -47,7 +49,7 @@ func main() {
gc
,
_
=
geiger
.
New
(
geiger
.
Config
{
Model
:
*
model
,
Device
:
*
device
})
indexPg
.
Model
=
gc
.
Model
()
indexPg
.
Version
=
gc
.
Version
()
indexPg
.
Serial
,
_
=
gc
.
Serial
Num
()
indexPg
.
Serial
=
gc
.
Serial
()
indexPg
.
Volts
,
_
=
gc
.
Volts
()
http
.
HandleFunc
(
"/"
,
indexHandler
)
http
.
Handle
(
"/metrics"
,
promhttp
.
Handler
())
...
...
devices/geiger/geiger.go
View file @
c5a09d9d
...
...
@@ -23,7 +23,7 @@ type Counter interface {
Clear
()
error
Model
()
string
Version
()
string
Serial
Num
()
(
string
,
error
)
Serial
()
string
GetCPM
()
(
uint16
,
error
)
GetCPS
()
(
uint16
,
error
)
Volts
()
(
int16
,
error
)
...
...
devices/geiger/gqgmc.go
View file @
c5a09d9d
...
...
@@ -8,6 +8,7 @@
package
geiger
import
(
"encoding/hex"
"errors"
"fmt"
"strconv"
...
...
@@ -52,13 +53,14 @@ type GQGMCCounter struct {
port
*
serial
.
Port
config
*
serial
.
Config
version
,
model
string
model
,
serial
string
}
// NewGQGMC creates a new GQGMC Counter instance
func
NewGQGMC
(
c
Config
)
(
*
GQGMCCounter
,
error
)
{
var
gc
GQGMCCounter
var
v
[]
byte
var
buf
[]
byte
gc
.
config
=
&
serial
.
Config
{
Name
:
c
.
Device
,
...
...
@@ -70,9 +72,17 @@ func NewGQGMC(c Config) (*GQGMCCounter, error) {
return
nil
,
err
}
gc
.
port
=
p
v
,
err
=
gc
.
communicate
(
cmdGetVersion
,
14
)
gc
.
model
=
string
(
v
[
:
7
])
gc
.
version
=
string
(
v
[
7
:
])
buf
,
err
=
gc
.
communicate
(
cmdGetVersion
,
14
)
if
err
==
nil
{
gc
.
model
=
string
(
buf
[
:
7
])
gc
.
version
=
string
(
buf
[
7
:
])
}
if
gc
.
supportedModels
(
mod280n300
)
&&
!
gc
.
versionLT
(
"Re 2.11"
)
{
buf
,
err
:=
gc
.
communicate
(
cmdGetSerial
,
7
)
if
err
==
nil
{
gc
.
serial
=
hex
.
EncodeToString
(
buf
)
}
}
//getConfigurationData()
return
&
gc
,
nil
}
...
...
@@ -99,23 +109,9 @@ func (gc *GQGMCCounter) Model() string {
return
gc
.
model
}
// SerialNum gets the serial number of the device
func
(
gc
*
GQGMCCounter
)
SerialNum
()
(
string
,
error
)
{
if
!
gc
.
supportedModels
(
mod280n300
)
{
return
""
,
errors
.
New
(
"Unsupported model"
)
}
if
gc
.
versionLT
(
"Re 2.11"
)
{
return
""
,
errors
.
New
(
"Unsupported version"
)
}
serStr
:=
""
ser
,
err
:=
gc
.
communicate
(
cmdGetSerial
,
7
)
if
err
==
nil
{
for
_
,
b
:=
range
ser
{
serStr
+=
fmt
.
Sprintf
(
"%02X"
,
b
)
}
}
return
serStr
,
err
// Serial gets the serial number of the device
func
(
gc
*
GQGMCCounter
)
Serial
()
string
{
return
gc
.
serial
}
func
(
gc
*
GQGMCCounter
)
getReading
(
what
string
)
(
uint16
,
error
)
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment