Переглянути джерело

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. BIN
      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": {}
}
]

BIN
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 {


Завантаження…
Відмінити
Зберегти