aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-10-09 17:38:39 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-10-09 17:38:39 +0200
commit5da3820c360e34ef8e7c6b4757783e9514f72f71 (patch)
treef4c74f6b36a6853e46865f1582198c0323bbfd5a
parent3380b7c704328a1a54f9edcdfd34f1a6dec4b543 (diff)
Add system status
-rw-r--r--csta/system-status.go23
-rw-r--r--parse/parse.go17
2 files changed, 37 insertions, 3 deletions
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: