TTNv3
This commit is contained in:
parent
c99dcf9667
commit
5099c1dfed
|
|
@ -24,6 +24,20 @@ const (
|
||||||
NOT_PLAUSIBLE_32 = 2147483647
|
NOT_PLAUSIBLE_32 = 2147483647
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type TTNv3EndDeviceIds struct {
|
||||||
|
Dev_eui string `json:"dev_eui"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type TTNv3UplinkMessage struct {
|
||||||
|
Frm_payload string `json:"frm_payload"`
|
||||||
|
Received_at string `json:"received_at"`
|
||||||
|
}
|
||||||
|
|
||||||
|
type MessageTTNv3 struct {
|
||||||
|
EndDeviceIds TTNv3EndDeviceIds `json:"end_device_ids"`
|
||||||
|
UplinkMessage TTNv3UplinkMessage `json:"uplink_message"`
|
||||||
|
}
|
||||||
|
|
||||||
type MetadataTTN struct {
|
type MetadataTTN struct {
|
||||||
Time string `json:"time"`
|
Time string `json:"time"`
|
||||||
}
|
}
|
||||||
|
|
@ -578,6 +592,7 @@ func main() {
|
||||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
var message_swisscom Message
|
var message_swisscom Message
|
||||||
var message_ttn MessageTTN
|
var message_ttn MessageTTN
|
||||||
|
var message_ttnv3 MessageTTNv3
|
||||||
if r.Body == nil {
|
if r.Body == nil {
|
||||||
http.Error(w, "Please send a request body", 400)
|
http.Error(w, "Please send a request body", 400)
|
||||||
return
|
return
|
||||||
|
|
@ -600,9 +615,27 @@ func main() {
|
||||||
|
|
||||||
fmt.Printf("Length of JSON Body: %d\n", len(buf))
|
fmt.Printf("Length of JSON Body: %d\n", len(buf))
|
||||||
|
|
||||||
if strings.Contains(string(buf), "mini-beieli") {
|
if strings.Contains(string(buf), "mini-beieli-v3") {
|
||||||
fmt.Printf("Seems to be a TTN Packet...\n")
|
fmt.Printf("Seems to be a TTNv3 Packet...\n")
|
||||||
// it is probably a TTN package...
|
// it is probably a TTNv3 package...
|
||||||
|
err := json.NewDecoder(r.Body).Decode(&message_ttnv3)
|
||||||
|
if err != nil {
|
||||||
|
http.Error(w, err.Error(), 400)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
fmt.Println("Time: " + message_ttnv3.UplinkMessage.Received_at)
|
||||||
|
fmt.Println("Payload Raw: " + message_ttnv3.UplinkMessage.Frm_payload)
|
||||||
|
fmt.Println("DevEUI: " + message_ttnv3.EndDeviceIds.Dev_eui)
|
||||||
|
payload_hex, err := Convert2Hex(message_ttnv3.UplinkMessage.Frm_payload)
|
||||||
|
if err == nil {
|
||||||
|
DecodePayload(payload_hex, message_ttnv3.EndDeviceIds.Dev_eui, "N/A", 0, 0, true)
|
||||||
|
} else {
|
||||||
|
fmt.Println("Error: could not convert raw_package to hex: %s" + message_ttnv3.UplinkMessage.Frm_payload)
|
||||||
|
}
|
||||||
|
} else if strings.Contains(string(buf), "mini-beieli") {
|
||||||
|
fmt.Printf("Seems to be a TTNv2 Packet...\n")
|
||||||
|
// it is probably a TTNv2 package...
|
||||||
err := json.NewDecoder(r.Body).Decode(&message_ttn)
|
err := json.NewDecoder(r.Body).Decode(&message_ttn)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
http.Error(w, err.Error(), 400)
|
http.Error(w, err.Error(), 400)
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue