diff --git a/src/udi/handlers/ttn/ttn.go b/src/udi/handlers/ttn/ttn.go index 1709cb8..d30fa6e 100644 --- a/src/udi/handlers/ttn/ttn.go +++ b/src/udi/handlers/ttn/ttn.go @@ -115,13 +115,16 @@ func (self *TTNHandler) Handle(message handler.MessageT) { log.Printf("DeviceLabel: %s, DeviceType: %s", device.Label, device.DeviceType.ModelIdentifier) + var parser func(interface{}) ([]database.VariableType, error) switch device.DeviceType.ModelIdentifier { case "emu-prof-ii-lora": - _, err3 := emuProfIILoRa.Parse(uplinkMessage.UplinkMessage.DecodedPayload) - if err3 != nil { - lost(fmt.Sprintf("Model parser failed: %s", err3), message) - return - } + parser = emuProfIILoRa.Parse + } + + _, err3 := parser(uplinkMessage.UplinkMessage.DecodedPayload) + if err3 != nil { + lost(fmt.Sprintf("Model parser failed: %s", err3), message) + return } }