From 5da3820c360e34ef8e7c6b4757783e9514f72f71 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Fri, 9 Oct 2015 17:38:39 +0200 Subject: Add system status --- csta/system-status.go | 23 +++++++++++++++++++++++ parse/parse.go | 17 ++++++++++++++--- 2 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 csta/system-status.go diff --git a/csta/system-status.go b/csta/system-status.go new file mode 100644 index 0000000..1953d7b --- /dev/null +++ b/csta/system-status.go @@ -0,0 +1,23 @@ +package csta + +import "github.com/dim13/asn1" + +const ( + SystemStatusInitializing asn1.Enumerated = iota + SystemStatusEnabled + SystemStatusNormal + SystemStatusMessagesLost + SystemStatusDisabled + SystemStatusOverloadImminent + SystemStatusOverloadReached + SystemStatusOverloadRelieved + SystemStatusPartiallyDisabled +) + +type SystemStatusArg struct { + SystemStatus asn1.Enumerated +} + +type SystemStatusRes struct { + asn1.Null +} diff --git a/parse/parse.go b/parse/parse.go index 60c59b6..f128440 100644 --- a/parse/parse.go +++ b/parse/parse.go @@ -6,7 +6,7 @@ import ( //"dim13.org/asn1/ber" "dim13.org/asn1/acse" - //"dim13.org/asn1/csta" + "dim13.org/asn1/csta" "dim13.org/asn1/rose" "github.com/dim13/asn1" @@ -37,9 +37,20 @@ func main() { //fmt.Println(ber.Dump(s)) switch s[0] { case 0xa1: - unmarshal(s, &rose.Invoke{}) + v := &rose.Invoke{} + unmarshal(s, v) + if v.Opcode == 211 { + ss := &csta.SystemStatusArg{} + unmarshal(v.RawValue.FullBytes, ss) + fmt.Println(ss.SystemStatus) + } case 0xa2: - unmarshal(s, &rose.ReturnResult{}) + v := &rose.ReturnResult{} + unmarshal(s, v) + if v.Result.Opcode == 211 { + ss := &csta.SystemStatusRes{} + unmarshal(v.Result.RawValue.FullBytes, ss) + } case 0x60: unmarshal(s, &acse.AARQ{}) case 0x61: -- cgit v1.2.3