blob: 3d13ed6ce8b342d44ecf3322fbedf0fccdf16c9d (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace com.clusterrr.FelLib
{
public class AWFELVerifyDeviceResponse
{
public UInt32 Board;
public UInt32 FW;
public UInt16 Mode;
public byte DataFlag;
public byte DataLength;
public UInt32 DataStartAddress;
public AWFELVerifyDeviceResponse()
{
}
public AWFELVerifyDeviceResponse(byte[] data)
{
if (data[0] != 'A' || data[1] != 'W' || data[2] != 'U' || data[3] != 'S'
|| data[4] != 'B' || data[5] != 'F' || data[6] != 'E' || data[7] != 'X')
throw new FelParseException();
Board = (UInt32)(data[8] | (data[9] * 0x100) | (data[10] * 0x10000) | (data[11] * 0x1000000));
FW = (UInt32)(data[12] | (data[13] * 0x100) | (data[14] * 0x10000) | (data[15] * 0x1000000));
Mode = (UInt16)(data[16] | (data[17] * 0x100));
DataFlag = data[18];
DataLength = data[19];
DataStartAddress = (UInt32)(data[20] | (data[21] * 0x100) | (data[22] * 0x10000) | (data[23] * 0x1000000));
}
public byte[] Data
{
get
{
var data = new byte[32];
data[0] = (byte)'A';
data[1] = (byte)'W';
data[2] = (byte)'U';
data[3] = (byte)'S';
data[4] = (byte)'B';
data[5] = (byte)'F';
data[6] = (byte)'E';
data[7] = (byte)'X';
data[8] = (byte)(Board & 0xFF); // board
data[9] = (byte)((Board >> 8) & 0xFF); // board
data[10] = (byte)((Board >> 16) & 0xFF); // board
data[11] = (byte)((Board >> 24) & 0xFF); // board
data[12] = (byte)(FW & 0xFF); // fw
data[13] = (byte)((FW >> 8) & 0xFF); // fw
data[14] = (byte)((FW >> 16) & 0xFF); // fw
data[15] = (byte)((FW >> 24) & 0xFF); // fw
data[16] = (byte)(Mode & 0xFF); // mode
data[17] = (byte)((Mode >> 8) & 0xFF); // mode
data[18] = DataFlag;
data[19] = DataLength;
data[20] = (byte)(DataStartAddress & 0xFF); // data_start_address
data[21] = (byte)((DataStartAddress >> 8) & 0xFF); // data_start_address
data[22] = (byte)((DataStartAddress >> 16) & 0xFF); // data_start_address
data[23] = (byte)((DataStartAddress >> 24) & 0xFF); // data_start_address
return data;
}
}
}
}
|