Skip to content

Commit 3605446

Browse files
committed
Mistx support.
1 parent 07ded1d commit 3605446

12 files changed

Lines changed: 236 additions & 74 deletions

File tree

cmd/deviceparameter/deviceparameter.go

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import (
1616

1717
"github.com/jessevdk/go-flags"
1818
"github.com/proactivity-lab/go-loggers"
19-
"github.com/proactivity-lab/go-moteconnection"
19+
"github.com/raidoz/go-moteconnection"
2020

2121
deviceparameters "github.com/thinnect/go-devparam"
2222
)
@@ -126,7 +126,7 @@ func parseValue(opts Options) ([]byte, bool, error) {
126126
}
127127

128128
if c > 1 {
129-
return nil, false, errors.New("Multiple values specified for parameter")
129+
return nil, false, errors.New("multiple values specified for parameter")
130130
}
131131

132132
return value, c > 0, err
@@ -141,6 +141,13 @@ type Options struct {
141141
Address moteconnection.AMAddr `short:"a" long:"address" default:"5678" description:"Source AM address (hex)"`
142142
Destination moteconnection.AMAddr `short:"d" long:"destination" default:"0" description:"Destination AM address (hex)"`
143143

144+
// Exchange
145+
// Name for queues
146+
// EUI64 source address to use for messages
147+
AddressEui64 moteconnection.EUI64 `long:"address-eui64" default:"0015001500150015" description:"Source EUI64 address (hex)"`
148+
GatewayEui64 moteconnection.EUI64 `long:"gateway-eui64" default:"FFFFFFFFFFFFFFFF" description:"Source EUI64 address (hex)"`
149+
DestinationEui64 moteconnection.EUI64 `long:"destination-eui64" default:"0000000000000000" description:"Source EUI64 address (hex)"`
150+
144151
Timeout int `long:"timeout" default:"1" description:"Get/set action timeout (seconds)"`
145152
Retries int `long:"retries" default:"3" description:"Get/set action retries"`
146153

@@ -190,10 +197,13 @@ func main() {
190197
}
191198

192199
var dpm *deviceparameters.DeviceParameterManager = nil
193-
if opts.Destination == 0 {
194-
dpm = deviceparameters.NewDeviceParameterManager(conn)
195-
} else {
200+
if opts.DestinationEui64 != 0 {
201+
conn.(*moteconnection.MistCloudConnection).Configure("deviceparameter", opts.GatewayEui64)
202+
dpm = deviceparameters.NewDeviceParameterMistCommManager(conn, opts.Group, opts.AddressEui64, opts.DestinationEui64)
203+
} else if opts.Destination != 0 {
196204
dpm = deviceparameters.NewDeviceParameterActiveMessageManager(conn, opts.Group, opts.Address, opts.Destination)
205+
} else {
206+
dpm = deviceparameters.NewDeviceParameterManager(conn)
197207
}
198208
dpm.SetTimeout(time.Duration(opts.Timeout) * time.Second)
199209
dpm.SetRetries(opts.Retries)
@@ -221,7 +231,7 @@ func main() {
221231
logger.Error.Printf("%s", err)
222232
} else if set && len(opts.Parameter) > 1 {
223233
logger.Error.Printf("Value and multiple parameters provided\n")
224-
} else if set == false {
234+
} else if !set {
225235
for _, parameter := range opts.Parameter {
226236
if len(opts.Quiet) == 0 {
227237
logger.Info.Printf("Get %s\n", parameter)

cmd/deviceparameter/go.mod

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,19 @@ replace github.com/thinnect/go-devparam => ../..
77
require (
88
github.com/jessevdk/go-flags v1.5.0
99
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd
10-
github.com/proactivity-lab/go-moteconnection v0.0.2
10+
github.com/raidoz/go-moteconnection v0.0.3
1111
github.com/thinnect/go-devparam v0.0.0-00010101000000-000000000000
1212
)
1313

14+
replace github.com/raidoz/go-moteconnection => /home/raido/workspace_go/src/github.com/raidoz/go-moteconnection
15+
1416
require (
1517
github.com/creack/goselect v0.1.2 // indirect
18+
github.com/golang/protobuf v1.5.4 // indirect
19+
github.com/google/uuid v1.6.0 // indirect
1620
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e // indirect
21+
github.com/streadway/amqp v1.1.0 // indirect
1722
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541 // indirect
1823
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
24+
google.golang.org/protobuf v1.33.0 // indirect
1925
)

cmd/deviceparameter/go.sum

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,27 @@
11
github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=
22
github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY=
3+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
4+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
5+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
6+
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
7+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
9+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
310
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
411
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
512
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e h1:LY29wmnTcSR92avOm1dW0LSjeE3d9Xnhm/mpGzMT/wc=
613
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e/go.mod h1:+X++CLDTje8Yr7J4bGuUYx5LVbNpXPeO5ZLpI42hKVk=
714
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd h1:Q7CS1r9FUY6kSagUaAdLPMtY4MfKvG/eij2qcKqu7Ds=
815
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd/go.mod h1:PgvbfPpF7oknORD8/LicJY9ehj/R03KPx4uf1YEpntc=
9-
github.com/proactivity-lab/go-moteconnection v0.0.2 h1:QiPa7o30B5zeJ8O7M3A6e4Fc4PNZKXoFW2qm331bOac=
10-
github.com/proactivity-lab/go-moteconnection v0.0.2/go.mod h1:k0hDZkUZCSQQvQrmN2OcwI+tXAnQ2raJUPH4KqUD0Sc=
16+
github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM=
17+
github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg=
1118
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541 h1:eQfoPfT+gNSh63t/oKanQlZyKgblRa/LMZRPIT+MHzA=
1219
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw=
1320
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1421
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM=
1522
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
23+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
24+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
25+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
26+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
27+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=

cmd/deviceparameters/deviceparameters.go

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ import (
1212

1313
"github.com/jessevdk/go-flags"
1414
"github.com/proactivity-lab/go-loggers"
15-
"github.com/proactivity-lab/go-moteconnection"
15+
"github.com/raidoz/go-moteconnection"
1616
"github.com/thinnect/go-devparam/director"
1717
)
1818

1919
const ApplicationVersionMajor = 0
20-
const ApplicationVersionMinor = 4
20+
const ApplicationVersionMinor = 5
2121
const ApplicationVersionPatch = 0
2222

2323
var ApplicationBuildDate string
@@ -33,6 +33,9 @@ type Options struct {
3333
Group moteconnection.AMGroup `short:"g" long:"group" default:"22" description:"Packet AM Group (hex)"`
3434
Address moteconnection.AMAddr `short:"a" long:"address" default:"5678" description:"Source AM address (hex)"`
3535

36+
AddressEui64 moteconnection.EUI64 `long:"address-eui64" default:"0015001500150015" description:"Source EUI64 address (hex)"`
37+
GatewayEui64 moteconnection.EUI64 `long:"gateway-eui64" default:"FFFFFFFFFFFFFFFF" description:"Source EUI64 address (hex)"`
38+
3639
Template string `short:"t" long:"template" default:"" description:"Template for activities."`
3740
List string `short:"l" long:"list" default:"" description:"List of nodes to apply the template for."`
3841

@@ -69,9 +72,18 @@ func main() {
6972
os.Exit(1)
7073
}
7174

72-
dpd, err := director.NewDeviceParameterDirector(conn, opts.Group, opts.Address,
73-
director.Timeout(time.Duration(opts.Timeout)*time.Second),
74-
director.Retries(opts.Retries))
75+
var dpd *director.DeviceParameterDirector
76+
switch c := conn.(type) {
77+
case *moteconnection.MistCloudConnection:
78+
c.Configure("deviceparameters", opts.GatewayEui64)
79+
dpd, err = director.NewMistDeviceParameterDirector(c, opts.Group, opts.AddressEui64,
80+
director.Timeout(time.Duration(opts.Timeout)*time.Second),
81+
director.Retries(opts.Retries))
82+
default:
83+
dpd, err = director.NewDeviceParameterDirector(c, opts.Group, opts.Address,
84+
director.Timeout(time.Duration(opts.Timeout)*time.Second),
85+
director.Retries(opts.Retries))
86+
}
7587

7688
if err != nil {
7789
fmt.Printf("ERROR: %s\n", err)

cmd/deviceparameters/go.mod

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,13 +7,17 @@ replace github.com/thinnect/go-devparam => ../..
77
require (
88
github.com/jessevdk/go-flags v1.5.0
99
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd
10-
github.com/proactivity-lab/go-moteconnection v0.0.2
10+
github.com/raidoz/go-moteconnection v0.0.3
1111
github.com/thinnect/go-devparam v0.0.0-00010101000000-000000000000
1212
)
1313

1414
require (
1515
github.com/creack/goselect v0.1.2 // indirect
16+
github.com/golang/protobuf v1.5.4 // indirect
17+
github.com/google/uuid v1.6.0 // indirect
1618
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e // indirect
19+
github.com/streadway/amqp v1.1.0 // indirect
1720
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541 // indirect
1821
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e // indirect
22+
google.golang.org/protobuf v1.33.0 // indirect
1923
)

cmd/deviceparameters/go.sum

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,29 @@
11
github.com/creack/goselect v0.1.2 h1:2DNy14+JPjRBgPzAd1thbQp4BSIihxcBf0IXhQXDRa0=
22
github.com/creack/goselect v0.1.2/go.mod h1:a/NhLweNvqIYMuxcMOuWY516Cimucms3DglDzQP3hKY=
3+
github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk=
4+
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
5+
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
6+
github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU=
7+
github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE=
8+
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
9+
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
310
github.com/jessevdk/go-flags v1.5.0 h1:1jKYvbxEjfUl0fmqTCOfonvskHHXMjBySTLW4y9LFvc=
411
github.com/jessevdk/go-flags v1.5.0/go.mod h1:Fw0T6WPc1dYxT4mKEZRfG5kJhaTDP9pj1c2EWnYs/m4=
512
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e h1:LY29wmnTcSR92avOm1dW0LSjeE3d9Xnhm/mpGzMT/wc=
613
github.com/joaojeronimo/go-crc16 v0.0.0-20140729130949-59bd0194935e/go.mod h1:+X++CLDTje8Yr7J4bGuUYx5LVbNpXPeO5ZLpI42hKVk=
714
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd h1:Q7CS1r9FUY6kSagUaAdLPMtY4MfKvG/eij2qcKqu7Ds=
815
github.com/proactivity-lab/go-loggers v0.0.0-20180417085828-f892709079bd/go.mod h1:PgvbfPpF7oknORD8/LicJY9ehj/R03KPx4uf1YEpntc=
9-
github.com/proactivity-lab/go-moteconnection v0.0.2 h1:QiPa7o30B5zeJ8O7M3A6e4Fc4PNZKXoFW2qm331bOac=
10-
github.com/proactivity-lab/go-moteconnection v0.0.2/go.mod h1:k0hDZkUZCSQQvQrmN2OcwI+tXAnQ2raJUPH4KqUD0Sc=
16+
github.com/raidoz/go-moteconnection v0.0.3 h1:Zp16ZKQ2ftkQPwR6viugHrnc2xAs9gl/n5Kxj7FtPkU=
17+
github.com/raidoz/go-moteconnection v0.0.3/go.mod h1:g4pf3FYRN/h5FhQ5qw9n3a/Koe6UulzusHym92sf47Q=
18+
github.com/streadway/amqp v1.1.0 h1:py12iX8XSyI7aN/3dUT8DFIDJazNJsVJdxNVEpnQTZM=
19+
github.com/streadway/amqp v1.1.0/go.mod h1:WYSrTEYHOXHd0nwFeUXAe2G2hRnQT+deZJJf88uS9Bg=
1120
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541 h1:eQfoPfT+gNSh63t/oKanQlZyKgblRa/LMZRPIT+MHzA=
1221
go.bug.st/serial.v1 v0.0.0-20191202182710-24a6610f0541/go.mod h1:dRSl/CVCTf56CkXgJMDOdSwNfo2g1orOGE/gBGdvjZw=
1322
golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
1423
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e h1:fLOSk5Q00efkSvAm+4xcoXD+RRmLmmulPn5I3Y9F2EM=
1524
golang.org/x/sys v0.0.0-20211216021012-1d35b9e2eb4e/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
25+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4=
26+
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
27+
google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw=
28+
google.golang.org/protobuf v1.33.0 h1:uNO2rsAINq/JlFpSdYEKIZ0uKD/R9cpdv0T+yoGwGmI=
29+
google.golang.org/protobuf v1.33.0/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos=

director/director.go

Lines changed: 63 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,26 +3,25 @@
33

44
package director
55

6-
import "os"
7-
import "io"
8-
import "bufio"
9-
10-
import "fmt"
11-
import "time"
12-
import "strconv"
13-
import "strings"
14-
15-
import "errors"
16-
17-
import "encoding/csv"
18-
19-
import "github.com/proactivity-lab/go-loggers"
20-
import "github.com/proactivity-lab/go-moteconnection"
21-
22-
import dp "github.com/thinnect/go-devparam"
6+
import (
7+
"bufio"
8+
"encoding/csv"
9+
"errors"
10+
"fmt"
11+
"io"
12+
"os"
13+
"strconv"
14+
"strings"
15+
"time"
16+
17+
"github.com/proactivity-lab/go-loggers"
18+
"github.com/raidoz/go-moteconnection"
19+
20+
dp "github.com/thinnect/go-devparam"
21+
)
2322

2423
type DeviceParameterTask struct {
25-
Address moteconnection.AMAddr
24+
Address moteconnection.EUI64
2625
Parameter string
2726
Type dp.DeviceParameterType
2827
Desired []byte
@@ -36,9 +35,10 @@ type DeviceParameterTask struct {
3635
type DeviceParameterDirector struct {
3736
loggers.DIWEloggers
3837

39-
conn moteconnection.MoteConnection
40-
group moteconnection.AMGroup
41-
address moteconnection.AMAddr
38+
conn moteconnection.MoteConnection
39+
group moteconnection.AMGroup
40+
address16 moteconnection.AMAddr
41+
address64 moteconnection.EUI64
4242
//dsp moteconnection.Dispatcher
4343

4444
timeout time.Duration
@@ -66,14 +66,38 @@ func (dpd *DeviceParameterDirector) Option(opts ...option) (option, error) {
6666
return prev, nil
6767
}
6868

69+
func NewMistDeviceParameterDirector(conn moteconnection.MoteConnection,
70+
group moteconnection.AMGroup, address moteconnection.EUI64,
71+
opts ...option) (*DeviceParameterDirector, error) {
72+
73+
dpd := new(DeviceParameterDirector)
74+
dpd.conn = conn
75+
dpd.group = group
76+
dpd.address64 = address
77+
78+
dpd.timeout = 30 * time.Second
79+
dpd.retries = 2
80+
81+
dpd.interrupt = make(chan bool)
82+
83+
for _, opt := range opts {
84+
_, err := opt(dpd)
85+
if err != nil {
86+
return nil, err
87+
}
88+
}
89+
90+
return dpd, nil
91+
}
92+
6993
func NewDeviceParameterDirector(conn moteconnection.MoteConnection,
7094
group moteconnection.AMGroup, address moteconnection.AMAddr,
7195
opts ...option) (*DeviceParameterDirector, error) {
7296

7397
dpd := new(DeviceParameterDirector)
7498
dpd.conn = conn
7599
dpd.group = group
76-
dpd.address = address
100+
dpd.address16 = address
77101

78102
dpd.timeout = 30 * time.Second
79103
dpd.retries = 2
@@ -165,7 +189,7 @@ func (dpd *DeviceParameterDirector) run() {
165189
interrupted := false
166190
for interrupted == false {
167191
// organize a queue of nodes
168-
ns := make(map[moteconnection.AMAddr]bool)
192+
ns := make(map[moteconnection.EUI64]bool)
169193
for _, task := range dpd.tasks {
170194
if task.Disabled == false && task.Blocked == false && task.Actual == nil {
171195
ns[task.Address] = true
@@ -174,15 +198,20 @@ func (dpd *DeviceParameterDirector) run() {
174198
if len(ns) == 0 {
175199
break
176200
}
177-
q := make([]moteconnection.AMAddr, 0, len(ns))
201+
q := make([]moteconnection.EUI64, 0, len(ns))
178202
for k := range ns {
179203
q = append(q, k)
180204
}
181205

182206
dpd.Debug.Printf("%d nodes in queue\n", len(q))
183207
// start processing the queue
184208
for _, node := range q {
185-
dpm := dp.NewDeviceParameterActiveMessageManager(dpd.conn, dpd.group, dpd.address, node)
209+
var dpm *dp.DeviceParameterManager
210+
if dpd.address64 != 0 {
211+
dpm = dp.NewDeviceParameterMistCommManager(dpd.conn, dpd.group, dpd.address64, node)
212+
} else {
213+
dpm = dp.NewDeviceParameterActiveMessageManager(dpd.conn, dpd.group, dpd.address16, moteconnection.AMAddr(node))
214+
}
186215
dpm.SetTimeout(dpd.timeout)
187216
dpm.SetRetries(int(dpd.retries))
188217

@@ -312,14 +341,15 @@ func (dpd *DeviceParameterDirector) readTaskFile(filepath string) ([]DeviceParam
312341
}
313342

314343
// validate node address
315-
addr64, err := strconv.ParseUint(line[0], 16, 16)
344+
addr64, err := strconv.ParseUint(line[0], 16, 64)
316345
if err != nil {
317346
return nil, err
318347
}
319-
addr := moteconnection.AMAddr(addr64)
320348

321-
if 0 < addr && addr < 0xFFFF {
322-
task.Address = addr
349+
if dpd.address64 != 0 && 0 < addr64 && addr64 < 0xFFFFFFFFFFFFFFFF {
350+
task.Address = moteconnection.EUI64(addr64)
351+
} else if dpd.address16 != 0 && 0 < addr64 && addr64 < 0xFFFF {
352+
task.Address = moteconnection.EUI64(addr64)
323353
} else {
324354
return nil, errors.New(fmt.Sprintf("'%s' is not a valid address!", line[0]))
325355
}
@@ -363,7 +393,7 @@ func (dpd *DeviceParameterDirector) readTaskFile(filepath string) ([]DeviceParam
363393
return tasks, nil
364394
}
365395

366-
func (dpd *DeviceParameterDirector) readNodeFile(filepath string) ([]moteconnection.AMAddr, error) {
396+
func (dpd *DeviceParameterDirector) readNodeFile(filepath string) ([]moteconnection.EUI64, error) {
367397
nf, err := os.Open(filepath)
368398
if err != nil {
369399
return nil, err
@@ -372,12 +402,12 @@ func (dpd *DeviceParameterDirector) readNodeFile(filepath string) ([]moteconnect
372402

373403
scanner := bufio.NewScanner(bufio.NewReader(nf))
374404

375-
nodes := make([]moteconnection.AMAddr, 0)
405+
nodes := make([]moteconnection.EUI64, 0)
376406
for scanner.Scan() {
377407
t := strings.TrimSpace(scanner.Text())
378408
if len(t) > 0 && strings.HasPrefix(t, "#") == false {
379-
if addr, err := strconv.ParseUint(t, 16, 16); err == nil {
380-
nodes = append(nodes, moteconnection.AMAddr(addr))
409+
if addr, err := strconv.ParseUint(t, 16, 64); err == nil {
410+
nodes = append(nodes, moteconnection.EUI64(addr))
381411
} else {
382412
return nil, err
383413
}

dppackets_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import (
99
"strings"
1010
"testing"
1111

12-
"github.com/proactivity-lab/go-moteconnection"
12+
"github.com/raidoz/go-moteconnection"
1313
)
1414

1515
func TestSerializer(t *testing.T) {

0 commit comments

Comments
 (0)