aboutsummaryrefslogtreecommitdiff
path: root/misc
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2015-06-24 21:18:50 +0200
committerDimitri Sokolyuk <demon@dim13.org>2015-06-24 21:18:50 +0200
commitf3461b0fb26a04328d0ce9f1ea459c6a92806d40 (patch)
treea24e869c3dc31a6855c382328a7c04100cfe6eeb /misc
parent94d06916485e5addeeab4444869b886f24f74c42 (diff)
Add status
Diffstat (limited to 'misc')
-rw-r--r--misc/main.go65
1 files changed, 47 insertions, 18 deletions
diff --git a/misc/main.go b/misc/main.go
index 9b3997e..fdcb043 100644
--- a/misc/main.go
+++ b/misc/main.go
@@ -74,37 +74,60 @@ var release = []byte{0x62, 0x00}
* 63 00 RLRE-apdu
*/
-func msg(c net.Conn, b []byte) []byte {
- size := int16(len(b))
- enc := binary.BigEndian
+/* SystemStatus Request
+ * A1 0C ROSE-Invoke
+ * 02 01 01 invokeId present: 1
+ * 02 02 00 D3 opcode local: 211
+ * 30 03 SystemStatusArgiment
+ * 0A 01 02 systemStatus normal
+ */
- fmt.Println(">>> Send")
- fmt.Println(hex.Dump(b))
+/* SystemStatus Result
+ * A2 0B ROSE-ReturnResult
+ * 02 01 01 invokeId present: 1
+ * 30 06 SystemStatusResult
+ * 02 02 00 D3 opcode local: 211
+ * 05 00 noData
+ */
+
+var status = []byte{
+ 0xA2, 0x0B,
+ 0x02, 0x01, 0x01,
+ 0x30, 0x06,
+ 0x02, 0x02, 0x00, 0xD3,
+ 0x05, 0x00,
+}
+
+var endian = binary.BigEndian
- if err := binary.Write(c, enc, size); err != nil {
+func send(c net.Conn, b []byte) {
+ size := int16(len(b))
+ if err := binary.Write(c, endian, size); err != nil {
log.Fatal(err)
}
-
- if err := binary.Write(c, enc, b); err != nil {
+ if err := binary.Write(c, endian, b); err != nil {
log.Fatal(err)
}
+}
- if err := binary.Read(c, enc, &size); err != nil {
+func recv(c net.Conn) []byte {
+ var size int16
+ if err := binary.Read(c, endian, &size); err != nil {
log.Fatal(err)
}
-
r := make([]byte, size)
-
- if err := binary.Read(c, enc, r); err != nil {
+ if err := binary.Read(c, endian, r); err != nil {
log.Fatal(err)
}
-
- fmt.Println("<<< Recv")
- fmt.Println(hex.Dump(r))
-
return r
}
+func dump(b []byte, dir string) []byte {
+ fmt.Println(dir)
+ fmt.Println(hex.Dump(b))
+ return b
+}
+
func main() {
c, err := net.Dial("tcp", *service)
if err != nil {
@@ -112,6 +135,12 @@ func main() {
}
defer c.Close()
- defer msg(c, release)
- msg(c, associate)
+ send(c, dump(associate, ">>> Send associate"))
+ dump(recv(c), "<<< Recv associate")
+
+ dump(recv(c), "<<< Recv status")
+ send(c, dump(status, ">>> Send status"))
+
+ send(c, dump(release, ">>> Send release"))
+ dump(recv(c), "<<< Recv release")
}