View Javadoc

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  }