diff --git a/LoRaDTUConf.json b/LoRaMoteConf.json similarity index 90% rename from LoRaDTUConf.json rename to LoRaMoteConf.json index a829781..ed687fa 100644 --- a/LoRaDTUConf.json +++ b/LoRaMoteConf.json @@ -7,6 +7,6 @@ "appSKey": "2bc9217655160b2c1229b5ecb469242f", "nwkSKey": "4f862983a453cc50336284fd3c62aba5", "fPort": 2, - "fCnt": 1, - "freq": 470.3 + "fCnt": 6, + "freq": 914.7 } \ No newline at end of file diff --git a/LoRaDTUMock.go b/LoRaMoteMock.go similarity index 78% rename from LoRaDTUMock.go rename to LoRaMoteMock.go index dc11ebf..a912bfe 100644 --- a/LoRaDTUMock.go +++ b/LoRaMoteMock.go @@ -1,7 +1,7 @@ package main import ( - "LoRaDTUMock/packets" + "LoRaMoteMock/packets" "bytes" "encoding/hex" "encoding/json" @@ -21,32 +21,34 @@ import ( "time" ) -type DTUMainWindow struct { +type MoteMainWindow struct { *walk.MainWindow - mqttClient paho.Client - model *DTUModel - tv *walk.TableView - jsonView *walk.TreeView - host,username,password *walk.LineEdit - port,sendInterval *walk.NumberEdit - connect, disconnect,caConf,send *walk.PushButton - ascii,noAscii *walk.RadioButton - msg,data *walk.TextEdit - ssl,timeSend *walk.CheckBox - connConf ConnectConfig - dtuConf DTUConfig - connConfFileName string - dtuConfFileName string + mqttClient paho.Client + model *MoteModel + tv *walk.TableView + jsonView *walk.TreeView + host,username,password *walk.LineEdit + port,sendInterval *walk.NumberEdit + connect, disconnect,caConf,send *walk.PushButton + ascii,noAscii *walk.RadioButton + msg,data *walk.TextEdit + ssl,timeSend *walk.CheckBox + connConf ConnectConfig + moteConf MoteConfig + connConfFileName string + moteConfFileName string + icon *walk.Icon } func main() { - mw := &DTUMainWindow{model: NewDTUModel()} + mw := &MoteMainWindow{model: NewMoteModel()} + mw.icon,_ = walk.NewIconFromResourceId(3) maxWidth := int(win.GetSystemMetrics(win.SM_CXSCREEN)) - 200 maxHeight := int(win.GetSystemMetrics(win.SM_CYSCREEN)) - 100 err := MainWindow{ AssignTo: &mw.MainWindow, - Title: "LoRaDTUMock", - //Icon: "test.ico", + Title: "LoRaMoteMock", + Icon: mw.icon, Size: Size{maxWidth,maxHeight }, Layout: VBox{}, Children: []Widget{ @@ -65,7 +67,7 @@ func main() { PushButton{Text:"断开连接", AssignTo:&mw.disconnect, Enabled:false, OnClicked: mw.Disconnect}, CheckBox{Text:"开启SSL/TLS",AssignTo:&mw.ssl,OnClicked:mw.SSL}, PushButton{Text:"证书配置",Enabled:false,AssignTo:&mw.caConf,OnClicked: mw.ConnectConfig}, - PushButton{Text:"终端配置",OnClicked: mw.DTUConfig}, + PushButton{Text:"终端配置",OnClicked: mw.MoteConfig}, PushButton{Text:"清空数据",OnClicked: mw.Clean}, }, }, @@ -140,13 +142,13 @@ func main() { }, }.Create() if err != nil { - panic("LoRaDTUMock窗口创建失败") + panic("LoRaMoteMock窗口创建失败") } _ = mw.port.SetValue(1883) _ = mw.sendInterval.SetValue(1000) mw.ascii.SetChecked(true) dir,_ := os.Getwd() - mw.connConfFileName = dir + "/LoRaDTUMock.json" + mw.connConfFileName = dir + "/LoRaMoteMock.json" data, err := ioutil.ReadFile(mw.connConfFileName) if err == nil { err = json.Unmarshal(data, &mw.connConf) @@ -160,10 +162,10 @@ func main() { _ = mw.username.SetText(mw.connConf.Username) _ = mw.password.SetText(mw.connConf.Password) } - mw.dtuConfFileName = dir + "/LoRaDTUConf.json" - data, err = ioutil.ReadFile(mw.dtuConfFileName) + mw.moteConfFileName = dir + "/LoRaMoteConf.json" + data, err = ioutil.ReadFile(mw.moteConfFileName) if err == nil { - err = json.Unmarshal(data, &mw.dtuConf) + err = json.Unmarshal(data, &mw.moteConf) if err != nil { msg := "配置文件格式错误:" + err.Error() walk.MsgBox(mw, "错误", msg, walk.MsgBoxIconError) @@ -174,7 +176,7 @@ func main() { } -func (mw *DTUMainWindow) Connect() { +func (mw *MoteMainWindow) Connect() { go func() { if mw.host.Text() != "" && mw.port.Value() > 0 { opts := paho.NewClientOptions() @@ -235,7 +237,7 @@ func (mw *DTUMainWindow) Connect() { }() } -func (mw *DTUMainWindow) Disconnect() { +func (mw *MoteMainWindow) Disconnect() { mw.connect.SetEnabled(true) mw.host.SetEnabled(true) mw.port.SetEnabled(true) @@ -246,14 +248,15 @@ func (mw *DTUMainWindow) Disconnect() { mw.mqttClient.Disconnect(0) } -func (mw *DTUMainWindow) DTUConfig() { +func (mw *MoteMainWindow) MoteConfig() { var dlg *walk.Dialog var otaa *walk.CheckBox var gatewayId,devEUI,devAddr,appKey,appSKey,nwkSKey *walk.LineEdit var fPort,fCnt,freq *walk.NumberEdit var acceptPB, cancelPB *walk.PushButton _ = Dialog{ - Title: "DTU配置", + Title: "终端配置", + Icon: mw.icon, Layout: VBox{}, AssignTo: &dlg, DefaultButton: &acceptPB, @@ -306,21 +309,21 @@ func (mw *DTUMainWindow) DTUConfig() { AssignTo: &acceptPB, Text: "确定", OnClicked: func() { - mw.dtuConf.OTAA = otaa.Checked() - mw.dtuConf.GatewayId = gatewayId.Text() - mw.dtuConf.DevEui = devEUI.Text() - mw.dtuConf.DevAddr = devAddr.Text() - mw.dtuConf.AppKey = appKey.Text() - mw.dtuConf.AppSKey = appSKey.Text() - mw.dtuConf.NwkSKey = nwkSKey.Text() - mw.dtuConf.FPort = uint8(fPort.Value()) - mw.dtuConf.FCnt = uint32(fCnt.Value()) - mw.dtuConf.Freq = freq.Value() + mw.moteConf.OTAA = otaa.Checked() + mw.moteConf.GatewayId = gatewayId.Text() + mw.moteConf.DevEui = devEUI.Text() + mw.moteConf.DevAddr = devAddr.Text() + mw.moteConf.AppKey = appKey.Text() + mw.moteConf.AppSKey = appSKey.Text() + mw.moteConf.NwkSKey = nwkSKey.Text() + mw.moteConf.FPort = uint8(fPort.Value()) + mw.moteConf.FCnt = uint32(fCnt.Value()) + mw.moteConf.Freq = freq.Value() var confData bytes.Buffer - d,_ := json.Marshal(&mw.dtuConf) + d,_ := json.Marshal(&mw.moteConf) _ = json.Indent(&confData, d, "", "\t") - _ = ioutil.WriteFile(mw.dtuConfFileName,confData.Bytes(),0644) + _ = ioutil.WriteFile(mw.moteConfFileName,confData.Bytes(),0644) dlg.Accept() }, }, @@ -334,25 +337,25 @@ func (mw *DTUMainWindow) DTUConfig() { }, }.Create(mw) - otaa.SetChecked(mw.dtuConf.OTAA) - _ = gatewayId.SetText(mw.dtuConf.GatewayId) - _ = devEUI.SetText(mw.dtuConf.DevEui) - _ = devAddr.SetText(mw.dtuConf.DevAddr) - _ = appKey.SetText(mw.dtuConf.AppKey) - _ = appSKey.SetText(mw.dtuConf.AppSKey) - _ = nwkSKey.SetText(mw.dtuConf.NwkSKey) - _ = fPort.SetValue(float64(mw.dtuConf.FPort)) - _ = fCnt.SetValue(float64(mw.dtuConf.FCnt)) - _ = freq.SetValue(mw.dtuConf.Freq) + otaa.SetChecked(mw.moteConf.OTAA) + _ = gatewayId.SetText(mw.moteConf.GatewayId) + _ = devEUI.SetText(mw.moteConf.DevEui) + _ = devAddr.SetText(mw.moteConf.DevAddr) + _ = appKey.SetText(mw.moteConf.AppKey) + _ = appSKey.SetText(mw.moteConf.AppSKey) + _ = nwkSKey.SetText(mw.moteConf.NwkSKey) + _ = fPort.SetValue(float64(mw.moteConf.FPort)) + _ = fCnt.SetValue(float64(mw.moteConf.FCnt)) + _ = freq.SetValue(mw.moteConf.Freq) dlg.Run() } -func (mw *DTUMainWindow) Clean() { - mw.model.Items = []*DTU{} +func (mw *MoteMainWindow) Clean() { + mw.model.Items = []*Mote{} mw.model.PublishRowsReset() _ = mw.tv.SetSelectedIndexes([]int{}) } -func (mw *DTUMainWindow) SSL() { +func (mw *MoteMainWindow) SSL() { if mw.ssl.Checked() { mw.caConf.SetEnabled(true) }else{ @@ -360,12 +363,13 @@ func (mw *DTUMainWindow) SSL() { } } -func (mw *DTUMainWindow) ConnectConfig() { +func (mw *MoteMainWindow) ConnectConfig() { var dlg *walk.Dialog var caCert,tlsCert,tlsKey *walk.LineEdit var acceptPB, cancelPB *walk.PushButton _ = Dialog{ Title: "连接配置", + Icon: mw.icon, Layout: VBox{}, AssignTo: &dlg, DefaultButton: &acceptPB, @@ -445,7 +449,7 @@ func (mw *DTUMainWindow) ConnectConfig() { dlg.Run() } -func (mw *DTUMainWindow) HandleData(client paho.Client, message paho.Message){ +func (mw *MoteMainWindow) HandleData(client paho.Client, message paho.Message){ var downlinkFrame gw.DownlinkFrame err := proto.Unmarshal(message.Payload(),&downlinkFrame) if err == nil { @@ -465,11 +469,11 @@ func (mw *DTUMainWindow) HandleData(client paho.Client, message paho.Message){ var origData bytes.Buffer jsonData,_ := phy.MarshalJSON() _ = json.Indent(&origData, jsonData, "", " ") - dd := &DTU{ + dd := &Mote{ Index: mw.model.Len() + 1, Direction:"downlink", - DevEUI: mw.dtuConf.DevEui, - DevAddr: mw.dtuConf.DevAddr, + DevEUI: mw.moteConf.DevEui, + DevAddr: mw.moteConf.DevAddr, MType: phy.MHDR.MType.String(), GatewayID: hex.EncodeToString(downlinkFrame.TxInfo.GatewayId), Time:time.Now().Format("2006-01-02 15:04:05"), @@ -495,8 +499,8 @@ func (mw *DTUMainWindow) HandleData(client paho.Client, message paho.Message){ } } -func (mw *DTUMainWindow) HandleJoinAccept(phy *lorawan.PHYPayload){ - key := mw.dtuConf.AppKey +func (mw *MoteMainWindow) HandleJoinAccept(phy *lorawan.PHYPayload){ + key := mw.moteConf.AppKey var aseKey lorawan.AES128Key _ = aseKey.UnmarshalText([]byte(key)) err := phy.DecryptJoinAcceptPayload(aseKey) @@ -507,36 +511,36 @@ func (mw *DTUMainWindow) HandleJoinAccept(phy *lorawan.PHYPayload){ if !ok { fmt.Println("lorawan: MACPayload must be of type *JoinAcceptPayload") } - mw.dtuConf.DevAddr = jap.DevAddr.String() - dn := mw.dtuConf.devNonce + mw.moteConf.DevAddr = jap.DevAddr.String() + dn := mw.moteConf.devNonce appSKey,err := getAppSKey(aseKey,jap.HomeNetID,jap.JoinNonce,dn) if err == nil { - mw.dtuConf.AppSKey = appSKey.String() - fmt.Println(mw.dtuConf.AppSKey) + mw.moteConf.AppSKey = appSKey.String() + fmt.Println(mw.moteConf.AppSKey) } nwkSKey,err := getNwkSKey(aseKey,jap.HomeNetID,jap.JoinNonce,dn) if err == nil { - mw.dtuConf.NwkSKey = nwkSKey.String() - fmt.Println(mw.dtuConf.NwkSKey) + mw.moteConf.NwkSKey = nwkSKey.String() + fmt.Println(mw.moteConf.NwkSKey) } } -func (mw *DTUMainWindow) HandleDataDown(phy *lorawan.PHYPayload){ +func (mw *MoteMainWindow) HandleDataDown(phy *lorawan.PHYPayload){ mpl := phy.MACPayload.(*lorawan.MACPayload) - key := mw.dtuConf.AppSKey + key := mw.moteConf.AppSKey if mpl.FPort != nil && *mpl.FPort == 0 { - key = mw.dtuConf.NwkSKey + key = mw.moteConf.NwkSKey } var aseKey lorawan.AES128Key _ = aseKey.UnmarshalText([]byte(key)) err := phy.DecryptFRMPayload(aseKey) if err == nil { - mw.dtuConf.DevAddr = mpl.FHDR.DevAddr.String() + mw.moteConf.DevAddr = mpl.FHDR.DevAddr.String() } } -func (mw *DTUMainWindow) PushData(gatewayEUI string,event string, msg proto.Message) { +func (mw *MoteMainWindow) PushData(gatewayEUI string,event string, msg proto.Message) { topic := fmt.Sprintf("gateway/%s/event/%s",gatewayEUI,event) b, err := proto.Marshal(msg) if err != nil { @@ -549,26 +553,26 @@ func (mw *DTUMainWindow) PushData(gatewayEUI string,event string, msg proto.Mess fmt.Println("mqtt message error") } } -func (mw *DTUMainWindow) sendMsg() error{ +func (mw *MoteMainWindow) sendMsg() error{ if mw.mqttClient == nil || !mw.mqttClient.IsConnected() { msg := "请先连接服务器" walk.MsgBox(mw, "错误", msg, walk.MsgBoxIconError) return errors.New("请先连接服务器") } - if mw.dtuConf.OTAA && mw.dtuConf.DevAddr == ""{ - mw.dtuConf.devNonce = lorawan.DevNonce(rand.Uint32()) + if mw.moteConf.OTAA && mw.moteConf.DevAddr == ""{ + mw.moteConf.devNonce = lorawan.DevNonce(rand.Uint32()) appEui := "0807060504030201" - packet,phy,_ := BuildJoin(mw.dtuConf.GatewayId,appEui,mw.dtuConf.DevEui,mw.dtuConf.AppKey, - 5,2,mw.dtuConf.Freq,7,-51, mw.dtuConf.devNonce) + packet,phy,_ := BuildJoin(mw.moteConf.GatewayId,appEui,mw.moteConf.DevEui,mw.moteConf.AppKey, + 5,2,mw.moteConf.Freq,7,-51, mw.moteConf.devNonce) var origData bytes.Buffer jsonData,_ := phy.MarshalJSON() _ = json.Indent(&origData, jsonData, "", " ") - du := &DTU{ + du := &Mote{ Index:mw.model.Len() + 1, Direction:"uplink", - DevEUI:mw.dtuConf.DevEui, + DevEUI:mw.moteConf.DevEui, MType:phy.MHDR.MType.String(), - GatewayID:mw.dtuConf.GatewayId, + GatewayID:mw.moteConf.GatewayId, Rssi:packet.Payload.RXPK[0].RSSI, LoRaSNR:packet.Payload.RXPK[0].LSNR, Frequency:packet.Payload.RXPK[0].Freq, @@ -580,13 +584,13 @@ func (mw *DTUMainWindow) sendMsg() error{ _ = mw.tv.SetSelectedIndexes([]int{}) frames,_:= packet.GetUplinkFrames(true,false) for j := range frames { - mw.PushData(mw.dtuConf.GatewayId,"up",&frames[j]) + mw.PushData(mw.moteConf.GatewayId,"up",&frames[j]) } fmt.Println("push join ") - for cnt := 0;mw.dtuConf.DevAddr == "" && cnt < 5;cnt ++ { + for cnt := 0;mw.moteConf.DevAddr == "" && cnt < 5;cnt ++ { time.Sleep(time.Second) } - if mw.dtuConf.DevAddr != "" { + if mw.moteConf.DevAddr != "" { fmt.Println("join ok") }else{ fmt.Println("join failed") @@ -607,29 +611,29 @@ func (mw *DTUMainWindow) sendMsg() error{ } var fCtrl lorawan.FCtrl _ = fCtrl.UnmarshalBinary([]byte{128}) - key := mw.dtuConf.AppSKey - if mw.dtuConf.FPort == 0 { - key = mw.dtuConf.NwkSKey + key := mw.moteConf.AppSKey + if mw.moteConf.FPort == 0 { + key = mw.moteConf.NwkSKey } - packet,phy,_ := BuildUpData(mw.dtuConf.GatewayId,mw.dtuConf.DevAddr,key, - mw.dtuConf.NwkSKey,mw.dtuConf.FCnt,mw.dtuConf.FPort,5,2,mw.dtuConf.Freq,7, + packet,phy,_ := BuildUpData(mw.moteConf.GatewayId,mw.moteConf.DevAddr,key, + mw.moteConf.NwkSKey,mw.moteConf.FCnt,mw.moteConf.FPort,5,2,mw.moteConf.Freq,7, lorawan.UnconfirmedDataUp,fCtrl,-51,bmsg) var origData bytes.Buffer jsonData,_ := phy.MarshalJSON() _ = json.Indent(&origData, jsonData, "", " ") - du := &DTU{ + du := &Mote{ Index:mw.model.Len() + 1, Direction:"uplink", - DevEUI:mw.dtuConf.DevEui, - DevAddr:mw.dtuConf.DevAddr, + DevEUI:mw.moteConf.DevEui, + DevAddr:mw.moteConf.DevAddr, MType:phy.MHDR.MType.String(), - GatewayID:mw.dtuConf.GatewayId, + GatewayID:mw.moteConf.GatewayId, Rssi:packet.Payload.RXPK[0].RSSI, LoRaSNR:packet.Payload.RXPK[0].LSNR, Frequency:packet.Payload.RXPK[0].Freq, - FCnt:mw.dtuConf.FCnt, - FPort:mw.dtuConf.FPort, + FCnt:mw.moteConf.FCnt, + FPort:mw.moteConf.FPort, HexData:hex.EncodeToString(bmsg), AsciiData:BytesToString(bmsg), Time:time.Now().Format("2006-01-02 15:04:05"), @@ -640,20 +644,20 @@ func (mw *DTUMainWindow) sendMsg() error{ _ = mw.tv.SetSelectedIndexes([]int{}) frames,_:= packet.GetUplinkFrames(true,false) for j := range frames { - mw.PushData(mw.dtuConf.GatewayId,"up",&frames[j]) + mw.PushData(mw.moteConf.GatewayId,"up",&frames[j]) } - mw.dtuConf.FCnt ++ + mw.moteConf.FCnt ++ var confData bytes.Buffer - d,_ := json.Marshal(&mw.dtuConf) + d,_ := json.Marshal(&mw.moteConf) _ = json.Indent(&confData, d, "", "\t") - _ = ioutil.WriteFile(mw.dtuConfFileName,confData.Bytes(),0644) + _ = ioutil.WriteFile(mw.moteConfFileName,confData.Bytes(),0644) return nil } -func (mw *DTUMainWindow) SendMsg() { +func (mw *MoteMainWindow) SendMsg() { go mw.sendMsg() } -func (mw *DTUMainWindow) SetSend() { +func (mw *MoteMainWindow) SetSend() { if mw.timeSend.Checked() { mw.ascii.SetEnabled(false) mw.noAscii.SetEnabled(false) @@ -669,7 +673,7 @@ func (mw *DTUMainWindow) SetSend() { } } -func (mw *DTUMainWindow) TimeSend() { +func (mw *MoteMainWindow) TimeSend() { if mw.sendInterval.Value() <= 0 { msg := "时间间隔需大于0" walk.MsgBox(mw, "错误", msg, walk.MsgBoxIconError) @@ -690,7 +694,7 @@ func (mw *DTUMainWindow) TimeSend() { } }() } -func (mw *DTUMainWindow) tvItemActivated() { +func (mw *MoteMainWindow) tvItemActivated() { msg := "" for _, i := range mw.tv.SelectedIndexes() { msg += mw.model.Items[i].OrigData + "\n" diff --git a/LoRaMoteMock.ico b/LoRaMoteMock.ico new file mode 100644 index 0000000..79790cb Binary files /dev/null and b/LoRaMoteMock.ico differ diff --git a/LoRaDTUMock.json b/LoRaMoteMock.json similarity index 100% rename from LoRaDTUMock.json rename to LoRaMoteMock.json diff --git a/LoRaDTUMock.manifest b/LoRaMoteMock.manifest similarity index 100% rename from LoRaDTUMock.manifest rename to LoRaMoteMock.manifest diff --git a/dot.ico b/dot.ico new file mode 100644 index 0000000..f24a7b1 Binary files /dev/null and b/dot.ico differ diff --git a/go.mod b/go.mod index c77ca1c..02f5bb6 100644 --- a/go.mod +++ b/go.mod @@ -1,4 +1,4 @@ -module LoRaDTUMock +module LoRaMoteMock go 1.12 diff --git a/go.sum b/go.sum index 632bc2a..edf526d 100644 --- a/go.sum +++ b/go.sum @@ -1,36 +1,27 @@ cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.37.4/go.mod h1:NHPJ89PdicEuT9hdPXMROBD91xc5uRDxsMtSB16k7hw= cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= cloud.google.com/go v0.44.3/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -contrib.go.opencensus.io/exporter/ocagent v0.4.12/go.mod h1:450APlNTSR6FrvC3CTRqYosuDstRB9un7SOx2k/9ckA= contrib.go.opencensus.io/exporter/ocagent v0.5.0/go.mod h1:ImxhfLRpxoYiSq891pBrLVhN+qmP8BTVvdH2YLs7Gl0= github.com/Azure/azure-amqp-common-go v1.1.4/go.mod h1:FhZtXirFANw40UXI2ntweO+VOkfaw8s6vZxUiRhLYW8= github.com/Azure/azure-amqp-common-go/v2 v2.1.0/go.mod h1:R8rea+gJRuJR6QxTir/XuEd+YuKoUiazDC/N96FiDEU= github.com/Azure/azure-sdk-for-go v21.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-sdk-for-go v27.3.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v29.0.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= github.com/Azure/azure-sdk-for-go v30.1.0+incompatible/go.mod h1:9XXNKU+eRnpl9moKnB4QOLf1HestfXbmab5FXxiDBjc= -github.com/Azure/azure-service-bus-go v0.5.1/go.mod h1:Tctgev//M0s8G6mdA+ZH9esoIXuiq7qEkxoDLZwfCrA= github.com/Azure/azure-service-bus-go v0.9.1/go.mod h1:yzBx6/BUGfjfeqbRZny9AQIbIe3AcV9WZbAdpkoXOa0= github.com/Azure/go-autorest v11.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest v11.1.1+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= github.com/Azure/go-autorest v12.0.0+incompatible/go.mod h1:r+4oMnoxhatjLLJ6zxSWATqVooLgysK6ZNox3g/xq24= -github.com/Azure/go-autorest/tracing v0.1.0/go.mod h1:ROEEAFwXycQw7Sn3DXNtEedEvdeRAgDr0izn4z5Ij88= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/Masterminds/semver v1.4.2/go.mod h1:MB6lktGJrhw8PrUyiEoblNEGEQ+RzHPF078ddwwvV3Y= github.com/NickBall/go-aes-key-wrap v0.0.0-20170929221519-1c3aa3e4dfc5/go.mod h1:w5D10RxC0NmPYxmQ438CC1S07zaC1zpvuNW7s5sUk2Q= github.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU= -github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= -github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/ajg/form v0.0.0-20160822230020-523a5da1a92f/go.mod h1:uL1WgH+h2mgNtvBq0339dVnzXdBETtL2LeUXaIv25UY= github.com/alecthomas/kingpin v2.2.6+incompatible/go.mod h1:59OFYbFVLKQKq+mqrL6Rw5bR0c3ACQaawgXx0QYndlE= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= -github.com/apache/thrift v0.12.0/go.mod h1:cp2SuWMxlEZw2r+iP2GNCdIi4C1qmUzdZFSVb+bacwQ= github.com/apex/log v1.1.0/go.mod h1:yA770aXIDQrhVOIGurT/pVdfCpSq1GQV/auzMN5fzvY= github.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8= github.com/aws/aws-sdk-go v1.15.64/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= @@ -38,18 +29,10 @@ github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24 github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/blakesmith/ar v0.0.0-20150311145944-8bd4349a67f2/go.mod h1:PkYb9DJNAwrSvRx5DYA+gUcOIgTGVMNkfSCbZM8cWpI= -github.com/brocaar/loraserver v0.0.0-20190729122155-2f0bb9c308bc h1:bum9Ye6oZBx+H1yHqZhlNy9V7CDf/fBCYadMpV9xcng= -github.com/brocaar/loraserver v0.0.0-20190729122155-2f0bb9c308bc/go.mod h1:nu05fgUCXdcEJQ7KJHMw5lHO5Efxq7j+g4r5g9PryhY= github.com/brocaar/loraserver v0.0.0-20190917115647-c4da45f52f2b h1:iYgmTmf69flRZY5Xb1WxKNzymSSzfY9LHc6eYQYuSjA= github.com/brocaar/loraserver v0.0.0-20190917115647-c4da45f52f2b/go.mod h1:JTmS0Kk2inKluT1limjm4Xk5FcD70/WV63DMN2lJfVk= -github.com/brocaar/loraserver v2.5.0+incompatible h1:Fna4CF0jW2Vl4UpjLIhR5ifW4g+oZD/w3Dq09TiJ8Z8= -github.com/brocaar/loraserver v2.5.0+incompatible/go.mod h1:VBTim0YtfWAKehjJ6k17jCnG44DzXVdL4iu+hwxg2ik= -github.com/brocaar/lorawan v0.0.0-20190709091804-c3a80883a8fa h1:UcT94Q1RMA+lTAD0kxDY5RjkhagJgcoAjIKlKvs7A8o= -github.com/brocaar/lorawan v0.0.0-20190709091804-c3a80883a8fa/go.mod h1:Fm+51pxK6mZoAQjIaWJqPmnRuXecozsM5Mf9c+kr/ko= github.com/brocaar/lorawan v0.0.0-20190814113539-8eb2a8d6da09 h1:hV+axbeTsoTCa1tEkXzDjucdg1GPSX9j1fn95saTKBo= github.com/brocaar/lorawan v0.0.0-20190814113539-8eb2a8d6da09/go.mod h1:Fm+51pxK6mZoAQjIaWJqPmnRuXecozsM5Mf9c+kr/ko= -github.com/brocaar/lorawan v0.0.0-20191115102621-6095d473cf60 h1:jecx8QFcsUAWZojNIqOZaoAWFwkBbd3VOHZ3kv6FQxE= -github.com/brocaar/lorawan v0.0.0-20191115102621-6095d473cf60/go.mod h1:VgyRGAJ/wl1JfqZZmNlCTM8fyaIKF11YvYAGIVtedL8= github.com/caarlos0/ctrlc v1.0.0/go.mod h1:CdXpj4rmq0q/1Eb44M9zi2nKB0QraNKuRGYGrrHhcQw= github.com/campoy/unique v0.0.0-20180121183637-88950e537e7e/go.mod h1:9IOqJGCPMSc6E5ydlp5NIonxObaeu/Iub/X03EKPVYo= github.com/census-instrumentation/opencensus-proto v0.2.0/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= @@ -57,7 +40,6 @@ github.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghf github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= github.com/cockroachdb/apd v1.1.0/go.mod h1:8Sl8LxpKi29FqWXR16WEFZRNSz3SoPzUzeMeY4+DwBQ= github.com/cockroachdb/cockroach-go v0.0.0-20181001143604-e0a95dfd547c/go.mod h1:XGLbWH/ujMcbPbhZq52Nv6UrCghb1yGn//133kEsvDk= -github.com/codahale/hdrhistogram v0.0.0-20161010025455-3a0bb77429bd/go.mod h1:sE/e/2PUdi/liOCUjSTXgM1o87ZssimdTWN964YiIeI= github.com/codegangsta/negroni v1.0.0/go.mod h1:v0y3T5G7Y1UlFfyxFn/QLRU4a2EuNau2iZY63YTKWo0= github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk= github.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE= @@ -74,9 +56,6 @@ github.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZm github.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no= github.com/dustin/go-humanize v0.0.0-20180713052910-9f541cc9db5d/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= github.com/dustin/go-humanize v1.0.0/go.mod h1:HtrtbFcZ19U5GC7JDqmcUSB87Iq5E25KnS6fMYU6eOk= -github.com/eapache/go-resiliency v1.1.0/go.mod h1:kFI+JgMyC7bLPUVY133qvEBtVayf5mFgVsvEsIPBvNs= -github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21/go.mod h1:+020luEh2TKB4/GOp8oxxtq0Daoen/Cii55CzbTV6DU= -github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I= github.com/eclipse/paho.mqtt.golang v1.2.0 h1:1F8mhG9+aO5/xpdtFkW4SxOJB67ukuDC3t2y2qayIX0= github.com/eclipse/paho.mqtt.golang v1.2.0/go.mod h1:H9keYFcgq3Qr5OUJm/JZI/i6U7joQ8SYLhZwfeOo6Ts= github.com/elazarl/go-bindata-assetfs v1.0.0/go.mod h1:v+YaWX3bdea5J/mo8dSETolEo7R71Vk1u8bnjau5yw4= @@ -261,7 +240,6 @@ github.com/gobuffalo/x v0.0.0-20181007152206-913e47c59ca7/go.mod h1:9rDPXaB3kXdK github.com/gofrs/uuid v3.1.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gofrs/uuid v3.2.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.0/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= @@ -273,7 +251,6 @@ github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5y github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2 h1:6nsPYzhq5kReh6QImI3k5qWzO4PEbvbIW2cwSfR/6xs= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/snappy v0.0.0-20180518054509-2e65f85255db/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/gomodule/redigo v2.0.0+incompatible/go.mod h1:B4C85qUVwatsJoIUNIfCRsp7qO0iAmpGFZ4EELWSbC4= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= @@ -290,6 +267,7 @@ github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5m github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f h1:4Gslotqbs16iAg+1KR/XdabIfq8TlAWHdwS5QJFksLc= github.com/gopherjs/gopherjs v0.0.0-20190328170749-bb2674552d8f/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c h1:7lF+Vz0LqiRidnzC1Oq86fpX1q/iEv2KJdrCtttYjT4= github.com/gopherjs/gopherjs v0.0.0-20190430165422-3e4dfb77656c/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/goreleaser/goreleaser v0.106.0/go.mod h1:YCWszXb4t6HZ7gzeg5TcbPJC2Ad8cFvsknUS0CwS3yY= github.com/goreleaser/nfpm v0.11.0/go.mod h1:F2yzin6cBAL9gb+mSiReuXdsfTrOQwDMsuSpULof+y4= @@ -350,12 +328,13 @@ github.com/konsorten/go-windows-terminal-sequences v0.0.0-20180402223658-b729f26 github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/konsorten/go-windows-terminal-sequences v1.0.2/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= +github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= github.com/kr/pty v1.1.3/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= +github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= -github.com/lib/pq v1.1.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lxn/walk v0.0.0-20191113135339-bf589de20b3c h1:4pJw1uBKndwiBBJpcbqP1Bf90YfqTJUsHG9DVoAfIQ8= github.com/lxn/walk v0.0.0-20191113135339-bf589de20b3c/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ= @@ -405,35 +384,27 @@ github.com/onsi/ginkgo v1.7.0/go.mod h1:lLunBs/Ym6LB5Z9jYTR76FiuTmxDTDusOGeTQH+W github.com/onsi/gomega v1.4.1/go.mod h1:C1qb7wdrVGGVU+Z6iS04AVkA3Q65CEZX59MT0QO5uiA= github.com/onsi/gomega v1.4.2/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= github.com/onsi/gomega v1.4.3/go.mod h1:ex+gbHU/CVuBBDIJjb2X0qEXbFg53c61hWP/1CpauHY= -github.com/opentracing/opentracing-go v1.0.2/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= -github.com/openzipkin/zipkin-go v0.1.6/go.mod h1:QgAqvLzwWbR/WpD4A3cGpPtJrZXNIiJc5AZX7/PBEpw= github.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic= -github.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1 h1:iURUrRGxPUNPdy5/HRSm+Yj6okJ6UtLINN0Q9M4+h3I= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= -github.com/prometheus/client_golang v0.9.3-0.20190127221311-3c4408c8b829/go.mod h1:p2iRAGwDERtqlqzRXnrOVns+ignqQo//hLXqYxZYVNs= github.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= github.com/prometheus/client_golang v1.1.0/go.mod h1:I1FGZT9+L76gKKOs5djB6ezCbFQP1xR9D75/vuwEF3g= github.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= -github.com/prometheus/client_model v0.0.0-20190115171406-56726106282f/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo= github.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro= -github.com/prometheus/common v0.2.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.4.1/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4= github.com/prometheus/common v0.6.0/go.mod h1:eBmuwkDJBwy6iBfxCBob6t6dR6ENT/y+J+Zk0j9GMYc= github.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= -github.com/prometheus/procfs v0.0.0-20190117184657-bf6a532e95b1/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk= github.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.2/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA= github.com/prometheus/procfs v0.0.3/go.mod h1:4A/X28fw3Fc593LaREMrKMqOKvUAntwMDaekg4FpcdQ= github.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU= -github.com/rcrowley/go-metrics v0.0.0-20181016184325-3113b8401b8a/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.0.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.1.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= @@ -458,6 +429,7 @@ github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6Mwd github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3 h1:hBSHahWMEgzwRyS6dRpxY0XyjZsHyQ61s084wo5PJe0= github.com/smartystreets/assertions v0.0.0-20190401211740-f487f9de1cd3/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.0.0 h1:UVQPSSmc3qtTi+zPPkCXvZX9VvW/xT/NsRvKfwY81a8= github.com/smartystreets/assertions v1.0.0/go.mod h1:kHHU4qYBaI3q23Pp3VPrmWhuIUrLW/7eUrw0BU5VaoM= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a h1:pa8hGb/2YqsZKovtsgrwcDH1RZhVbTKCjLp47XpqCDs= github.com/smartystreets/goconvey v0.0.0-20190330032615-68dc04aab96a/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= @@ -485,11 +457,9 @@ github.com/stretchr/testify v1.2.1/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXf github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0 h1:TivCn/peBQ7UY8ooIcPgZFpTNSz0Q2U6UrFlUfqbe0Q= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= +github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= -github.com/uber-go/atomic v1.3.2/go.mod h1:/Ct5t2lcmbJ4OSe/waGBoaVvVqtO0bmtfVNex1PFV8g= -github.com/uber/jaeger-client-go v2.15.0+incompatible/go.mod h1:WVhlPFC8FDjOFMMWRy2pZqQJSXxYSwNYOkTr/Z6d3Kk= -github.com/uber/jaeger-lib v1.5.0/go.mod h1:ComeNDZlWwrWnDv8aPp0Ba6+uUTzImX/AauajbLI56U= github.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc= github.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0= github.com/unrolled/secure v0.0.0-20180918153822-f340ee86eb8b/go.mod h1:mnPT77IAdsi/kV7+Es7y+pXALeV3h7G6dQF6mNYjcLA= @@ -499,11 +469,8 @@ github.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1: github.com/ziutek/mymysql v1.5.4/go.mod h1:LMSpPZ6DbqWFxNCHW77HeMg9I646SAhApZ/wKdgO/C0= go.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU= go.opencensus.io v0.15.0/go.mod h1:UffZAU+4sDEINUGP/B7UfBBkq4fqLu9zXAX7ke6CHW0= -go.opencensus.io v0.20.1/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= -go.opencensus.io v0.20.2/go.mod h1:6WKK9ahsWS3RSO+PY9ZHZUfv2irvY6gN279GOPZjmmk= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= go.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= @@ -550,10 +517,8 @@ golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73r golang.org/x/net v0.0.0-20181207154023-610586996380/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190125091013-d26f9f9a57f3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190322120337-addf6b3196f6/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190328230028-74de082e2cca h1:hyA6yiAgbUwuWqtscNvWAI7U1CtlaD1KilQ6iudt1aI= golang.org/x/net v0.0.0-20190328230028-74de082e2cca/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= @@ -593,7 +558,6 @@ golang.org/x/sys v0.0.0-20181030150119-7e31e0c00fa0/go.mod h1:STP8DvDyc/dI5b8T5h golang.org/x/sys v0.0.0-20181106135930-3a76605856fd/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181122145206-62eef0e2fa9b/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181206074257-70b957f3b65e/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190102155601-82a175fd1598/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -608,7 +572,6 @@ golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190620070143-6f217b454f45/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190626221950-04f50cda93cb/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190801041406-cbf593c0f2f3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd h1:DBH9mDw0zluJT/R+nGuV3jWFWLFaHyYZWD4tOT+cjn0= golang.org/x/sys v0.0.0-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -619,7 +582,6 @@ golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxb golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180525024113-a5b4c53f6e8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20180828015842-6cd1fcedba52/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181003024731-2f84ea8ef872/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20181006002542-f60d9635b16a/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= @@ -657,7 +619,6 @@ golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgw golang.org/x/tools v0.0.0-20190708203411-c8855242db9c/go.mod h1:jcCCGcm9btYwXyDqrUWc6MKQKKGJCWEQ3AfLSRIbEuI= gonum.org/v1/gonum v0.0.0-20190115205657-1b07048b32c6/go.mod h1:Y+Yx5eoAFn32cQvJDxZx5Dpnq+c3wtXuadVZAcxbbBo= gonum.org/v1/netlib v0.0.0-20190219113230-9992c5f5eae4/go.mod h1:wa6Ws7BG/ESfp6dHfk7C6KdzKA7wR7u/rKwOGE66zvw= -google.golang.org/api v0.3.1/go.mod h1:6wY9I6uQWHQ8EM57III9mq/AjF+i8G65rmVagqKMtkk= google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= google.golang.org/api v0.6.0/go.mod h1:btoxGiFvQNVUZQ8W08zLtrVS08CNpINPEfxXxgJL1Q4= google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= @@ -670,15 +631,12 @@ google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7 google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190404172233-64821d5d2107/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= google.golang.org/genproto v0.0.0-20190620144150-6af8c5fc6601/go.mod h1:z3L6/3dTEVtUr6QSP8miRzeRqwQOioJ9I66odjN4I7s= google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/grpc v1.17.0/go.mod h1:6QZJwpn2B+Zp71q/5VxRsJ6NXXVCE5NRUHRo+f3cWCs= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.19.1/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= @@ -689,6 +647,7 @@ gopkg.in/airbrake/gobrake.v2 v2.0.9/go.mod h1:/h5ZAUhDkGaJfjzjKLSjv6zCL6O0LLBxU4 gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/fsnotify.v1 v1.4.7/go.mod h1:Tz8NjZHkW78fSQdbUxIjBTcgA1z1m8ZHf0WmKUhAMys= @@ -700,14 +659,13 @@ gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7/go.mod h1:dt/ZhP58zS4L8KSrWDmTeBkI65Dw0HsyUHuEVlX15mw= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -honnef.co/go/tools v0.0.0-20180728063816-88497007e858/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= pack.ag/amqp v0.8.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= -pack.ag/amqp v0.11.0/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= pack.ag/amqp v0.11.2/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= pack.ag/amqp v0.12.1/go.mod h1:4/cbmt4EJXSKlG6LCfWHoqmN0uFdy5i/+YFz+fTfhV4= rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= diff --git a/jsonModel.go b/json_model.go similarity index 97% rename from jsonModel.go rename to json_model.go index 6a221cf..50ddf5f 100644 --- a/jsonModel.go +++ b/json_model.go @@ -62,7 +62,7 @@ func (d *Node) ChildAt(index int) walk.TreeItem { } func (d *Node) Image() interface{} { - icon,err := walk.NewIconFromResourceId(3) + icon,err := walk.NewIconFromResourceId(5) if err != nil { return "" } diff --git a/model.go b/model.go index 1991fa0..7e2809e 100644 --- a/model.go +++ b/model.go @@ -16,7 +16,7 @@ type ConnectConfig struct { TLSKey string `json:"tls_key"` } -type DTUConfig struct { +type MoteConfig struct { OTAA bool `json:"otaa"` GatewayId string `json:"gatewayId"` DevEui string `json:"devEui"` @@ -30,7 +30,7 @@ type DTUConfig struct { devNonce lorawan.DevNonce } -type DTU struct { +type Mote struct { Index int Direction string DevEUI string @@ -49,19 +49,19 @@ type DTU struct { OrigData string } -type DTUModel struct { +type MoteModel struct { walk.TableModelBase walk.SorterBase SortColumn int SortOrder walk.SortOrder - Items []*DTU + Items []*Mote } -func (m *DTUModel) RowCount() int { +func (m *MoteModel) RowCount() int { return len(m.Items) } -func (m *DTUModel) Value(row, col int) interface{} { +func (m *MoteModel) Value(row, col int) interface{} { item := m.Items[row] switch col { @@ -97,26 +97,26 @@ func (m *DTUModel) Value(row, col int) interface{} { panic("unexpected col") } -func (m *DTUModel) Checked(row int) bool { +func (m *MoteModel) Checked(row int) bool { return m.Items[row].checked } -func (m *DTUModel) SetChecked(row int, checked bool) error { +func (m *MoteModel) SetChecked(row int, checked bool) error { m.Items[row].checked = checked return nil } -func (m *DTUModel) Sort(col int, order walk.SortOrder) error { +func (m *MoteModel) Sort(col int, order walk.SortOrder) error { m.SortColumn, m.SortOrder = col, order sort.Stable(m) return m.SorterBase.Sort(col, order) } -func (m *DTUModel) Len() int { +func (m *MoteModel) Len() int { return len(m.Items) } -func (m *DTUModel) Less(i, j int) bool { +func (m *MoteModel) Less(i, j int) bool { a, b := m.Items[i], m.Items[j] c := func(ls bool) bool { if m.SortOrder == walk.SortAscending { @@ -141,10 +141,10 @@ func (m *DTUModel) Less(i, j int) bool { } } -func (m *DTUModel) Swap(i, j int) { +func (m *MoteModel) Swap(i, j int) { m.Items[i], m.Items[j] = m.Items[j], m.Items[i] } -func NewDTUModel() *DTUModel { - return new(DTUModel) +func NewMoteModel() *MoteModel { + return new(MoteModel) } diff --git a/rsrc.syso b/rsrc.syso index 8d3a7e6..7db5098 100644 Binary files a/rsrc.syso and b/rsrc.syso differ diff --git a/syso.bat b/syso.bat index 573118c..4e61358 100644 --- a/syso.bat +++ b/syso.bat @@ -1 +1 @@ -rsrc -manifest LoRaDTUMock.manifest -ico dot.ico -o rsrc.syso \ No newline at end of file +rsrc -manifest LoRaMoteMock.manifest -ico LoRaMoteMock.ico,dot.ico -o rsrc.syso \ No newline at end of file diff --git a/utils.go b/utils.go index 5785ad2..2eb62a8 100644 --- a/utils.go +++ b/utils.go @@ -1,7 +1,7 @@ package main import ( - "LoRaDTUMock/packets" + "LoRaMoteMock/packets" "crypto/aes" "crypto/tls" "crypto/x509"