Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/ClusterM/hakchi2.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'FelLib/AWUSBResponse.cs')
-rw-r--r--FelLib/AWUSBResponse.cs50
1 files changed, 50 insertions, 0 deletions
diff --git a/FelLib/AWUSBResponse.cs b/FelLib/AWUSBResponse.cs
new file mode 100644
index 00000000..44c1e05f
--- /dev/null
+++ b/FelLib/AWUSBResponse.cs
@@ -0,0 +1,50 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+
+namespace com.clusterrr.FelLib
+{
+ class AWUSBResponse
+ {
+ public UInt32 Tag;
+ public UInt32 Residue;
+ public byte CswStatus;
+
+ public AWUSBResponse()
+ {
+ }
+
+ public AWUSBResponse(byte[] data)
+ {
+ if (data[0] != 'A' || data[1] != 'W' || data[2] != 'U' || data[3] != 'S')
+ throw new FelParseException();
+ Tag = (UInt32)(data[4] | (data[5] * 0x100) | (data[6] * 0x10000) | (data[7] * 0x1000000));
+ Residue = (UInt32)(data[8] | (data[9] * 0x100) | (data[10] * 0x10000) | (data[11] * 0x1000000));
+ CswStatus = data[12];
+ }
+
+ public byte[] Data
+ {
+ get
+ {
+ var data = new byte[13];
+ data[0] = (byte)'A';
+ data[1] = (byte)'W';
+ data[2] = (byte)'U';
+ data[3] = (byte)'S';
+ data[4] = (byte)(Tag & 0xFF); // tag
+ data[5] = (byte)((Tag >> 8) & 0xFF); // tag
+ data[6] = (byte)((Tag >> 16) & 0xFF); // tag
+ data[7] = (byte)((Tag >> 24) & 0xFF); // tag
+ data[8] = (byte)(Residue & 0xFF); // residue
+ data[9] = (byte)((Residue >> 8) & 0xFF); // residue
+ data[10] = (byte)((Residue >> 16) & 0xFF); // residue
+ data[11] = (byte)((Residue >> 24) & 0xFF); // residue
+ data[12] = CswStatus; // csw_status
+ return data;
+ }
+ }
+
+ }
+}