diff options
Diffstat (limited to 'example.go')
-rw-r--r-- | example.go | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/example.go b/example.go new file mode 100644 index 0000000..8e10090 --- /dev/null +++ b/example.go | |||
@@ -0,0 +1,49 @@ | |||
1 | package main | ||
2 | |||
3 | import ( | ||
4 | "encoding/json" | ||
5 | "fmt" | ||
6 | "github.com/mcrute/go-inform/inform" | ||
7 | "io/ioutil" | ||
8 | "os" | ||
9 | ) | ||
10 | |||
11 | func main() { | ||
12 | fp, err := os.Open("data/test_files/1.bin") | ||
13 | if err != nil { | ||
14 | fmt.Println("Error loading file") | ||
15 | return | ||
16 | } | ||
17 | defer fp.Close() | ||
18 | |||
19 | kp, err := os.Open("data/device_keys.json") | ||
20 | if err != nil { | ||
21 | fmt.Println("Error loading key file") | ||
22 | return | ||
23 | } | ||
24 | defer kp.Close() | ||
25 | |||
26 | var keys map[string]string | ||
27 | kd, _ := ioutil.ReadAll(kp) | ||
28 | json.Unmarshal(kd, &keys) | ||
29 | |||
30 | codec := &inform.Codec{keys} | ||
31 | |||
32 | msg, err := codec.Unmarshal(fp) | ||
33 | if err != nil { | ||
34 | fmt.Println(err.Error()) | ||
35 | return | ||
36 | } | ||
37 | |||
38 | fmt.Printf("%s", msg) | ||
39 | |||
40 | out, _ := os.Create("test.out") | ||
41 | defer out.Close() | ||
42 | |||
43 | pkt, err := codec.Marshal(msg) | ||
44 | if err != nil { | ||
45 | fmt.Println(err.Error()) | ||
46 | return | ||
47 | } | ||
48 | out.Write(pkt) | ||
49 | } | ||