瀏覽代碼

chore: update parsing configuration

master
Blaz Smehov 2 週之前
父節點
當前提交
0bac1939c6
共有 5 個文件被更改,包括 29 次插入11 次删除
  1. +5
    -1
      cmd/decoder/main.go
  2. +7
    -0
      cmd/server/config.json
  3. 二進制
      docs/Frame definition- B7,MWB01,MWC01.pdf
  4. +6
    -2
      internal/pkg/model/parser.go
  5. +11
    -8
      internal/pkg/model/types.go

+ 5
- 1
cmd/decoder/main.go 查看文件

@@ -112,9 +112,13 @@ func decodeBeacon(adv model.BeaconAdvertisement, appState *appcontext.AppState,
if event.ID == "" {
return nil
}

prevEvent, ok := appState.GetBeaconEvent(id)
appState.UpdateBeaconEvent(id, event)

if event.Type == "iBeacon" {
event.BtnPressed = true
}

if ok && bytes.Equal(prevEvent.Hash(), event.Hash()) {
return nil
}


+ 7
- 0
cmd/server/config.json 查看文件

@@ -39,5 +39,12 @@
"accY": {"offset": 9, "length": 2, "order": "fixedpoint"},
"accZ": {"offset": 11, "length": 2, "order": "fixedpoint"}
}
},
{
"name": "iBeacon",
"min": 5,
"max": 27,
"pattern": ["0xFF", "0x4C", "0x00", "0x02"],
"configs": {}
}
]

二進制
docs/Frame definition- B7,MWB01,MWC01.pdf 查看文件


+ 6
- 2
internal/pkg/model/parser.go 查看文件

@@ -77,7 +77,6 @@ func (p *ParserRegistry) Unregister(name string) {
func (b *BeaconParser) Parse(name string, ad []byte) (BeaconEvent, bool) {
flag := false
event := BeaconEvent{Type: name}
fmt.Printf("parsing: %s\n", name)
if cfg, ok := b.configs["battery"]; ok {
event.Battery = uint32(b.extract(ad, cfg).(uint16))
flag = true
@@ -97,7 +96,12 @@ func (b *BeaconParser) Parse(name string, ad []byte) (BeaconEvent, bool) {
event.AccZ = int16(val)
flag = true
}
fmt.Printf("success: %s, event: %+v\n", flag, event)
if cfg, ok := b.configs["temperature"]; ok {
val := b.extract(ad, cfg).(float64)
event.Temperature = uint16(val)
flag = true
}

return event, flag
}



+ 11
- 8
internal/pkg/model/types.go 查看文件

@@ -87,14 +87,17 @@ type Beacon struct {
}

type BeaconEvent struct {
Name string
ID string
Type string
Battery uint32
Event int
AccX int16
AccY int16
AccZ int16
Name string
ID string
Type string
Battery uint32
Event int
AccX int16
AccY int16
AccZ int16
Temperature uint16
Heart int16
BtnPressed bool
}

type HTTPResult struct {


Loading…
取消
儲存