1 /*
2 * Copyright 2007-2008 Volker Fritzsch
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package motej.request;
17
18
19 /**
20 *
21 * <p>
22 * @author <a href="mailto:vfritzsch@users.sourceforge.net">Volker Fritzsch</a>
23 */
24 public class WriteRegisterRequest implements MoteRequest {
25
26 private byte[] offset;
27
28 private byte[] payload;
29
30 public WriteRegisterRequest(byte[] offset, byte[] payload) {
31 this.offset = offset;
32 this.payload = payload;
33 }
34
35 public byte[] getBytes() {
36 // write commands must be padded to 16 data bytes, thus this length
37 byte[] data = new byte[23];
38
39 // HID command
40 data[0] = 0x52;
41
42 // output report 0x16
43 data[1] = 0x16;
44
45 // select control register address space
46 data[2] = 0x04;
47
48 // set offset
49 System.arraycopy(offset, 0, data, 3, 3);
50 // for (int i = 0; i < 3; i++) {
51 // data[3 + i] = offset[i];
52 // }
53
54 // size information
55 data[6] = (byte) payload.length;
56
57 // our payload
58 System.arraycopy(payload, 0, data, 7, payload.length);
59 // for (int i = 0; i < payload.length; i++) {
60 // data[7 + i] = payload[i];
61 // }
62
63 return data;
64 }
65
66 }