Skip to content

Commit d2f70d9

Browse files
hgonzaleDigidiescalo
authored andcommitted
thread: add new thread packets
- Added packets for Transmissions with IPv6. - Added CoAP basic packets. - Added IPv6 RX IO packet. - Updated minor typos in RXIPv4Packet. - Added unit tests for the new packets. Signed-off-by: Héctor González <hector.gonzalez@digi.com>
1 parent 6eeca4b commit d2f70d9

13 files changed

+5280
-4
lines changed

library/src/main/java/com/digi/xbee/api/packet/APIFrameType.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ public enum APIFrameType {
3636
TRANSMIT_REQUEST (0x10, "Transmit Request"),
3737
EXPLICIT_ADDRESSING_COMMAND_FRAME (0x11, "Explicit Addressing Command Frame"),
3838
REMOTE_AT_COMMAND_REQUEST (0x17, "Remote AT Command Request"),
39+
TX_IPV6 (0x1A, "IPv6 Tx Request"),
40+
IPV6_REMOTE_AT_COMMAND_REQUEST (0x1B, "IPv6 Remote AT Command"),
41+
COAP_TX_REQUEST (0x1C, "CoAP Tx Request"),
3942
TX_SMS (0x1F, "TX SMS"),
4043
TX_IPV4 (0x20, "TX IPv4"),
4144
SEND_DATA_REQUEST (0x28, "Send Data Request"),
@@ -54,7 +57,11 @@ public enum APIFrameType {
5457
EXPLICIT_RX_INDICATOR (0x91, "Explicit RX Indicator"),
5558
IO_DATA_SAMPLE_RX_INDICATOR (0x92, "IO Data Sample RX Indicator"),
5659
REMOTE_AT_COMMAND_RESPONSE (0x97, "Remote Command Response"),
60+
RX_IPV6 (0x9A, "IPv6 Rx Response"),
61+
IPV6_REMOTE_AT_COMMAND_RESPONSE (0x9B, "IPv6 Remote AT Command Response"),
62+
COAP_RX_RESPONSE (0x9C, "CoAP Rx Response"),
5763
RX_SMS (0x9F, "RX SMS"),
64+
IPV6_IO_DATA_SAMPLE_RX_INDICATOR(0xA7, "IPv6 IO Data Sample Rx Indicator"),
5865
RX_IPV4 (0xB0, "RX IPv4"),
5966
SEND_DATA_RESPONSE (0xB8, "Send Data Response"),
6067
DEVICE_REQUEST (0xB9, "Device Request"),

library/src/main/java/com/digi/xbee/api/packet/XBeePacketParser.java

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,13 @@
5252
import com.digi.xbee.api.packet.raw.TX16Packet;
5353
import com.digi.xbee.api.packet.raw.TX64Packet;
5454
import com.digi.xbee.api.packet.raw.TXStatusPacket;
55+
import com.digi.xbee.api.packet.thread.CoAPRxResponsePacket;
56+
import com.digi.xbee.api.packet.thread.CoAPTxRequestPacket;
57+
import com.digi.xbee.api.packet.thread.IPv6IODataSampleRxIndicator;
58+
import com.digi.xbee.api.packet.thread.IPv6RemoteATCommandRequestPacket;
59+
import com.digi.xbee.api.packet.thread.IPv6RemoteATCommandResponsePacket;
60+
import com.digi.xbee.api.packet.thread.RXIPv6Packet;
61+
import com.digi.xbee.api.packet.thread.TXIPv6Packet;
5562
import com.digi.xbee.api.packet.wifi.IODataSampleRxIndicatorWifiPacket;
5663
import com.digi.xbee.api.packet.wifi.RemoteATCommandResponseWifiPacket;
5764
import com.digi.xbee.api.packet.wifi.RemoteATCommandWifiPacket;
@@ -312,12 +319,18 @@ private XBeePacket parsePayload(byte[] payload) throws InvalidPacketException {
312319
case REMOTE_AT_COMMAND_REQUEST:
313320
packet = RemoteATCommandPacket.createPacket(payload);
314321
break;
322+
case IPV6_REMOTE_AT_COMMAND_REQUEST:
323+
packet = IPv6RemoteATCommandRequestPacket.createPacket(payload);
324+
break;
315325
case TX_SMS:
316326
packet = TXSMSPacket.createPacket(payload);
317327
break;
318328
case TX_IPV4:
319329
packet = TXIPv4Packet.createPacket(payload);
320330
break;
331+
case TX_IPV6:
332+
packet = TXIPv6Packet.createPacket(payload);
333+
break;
321334
case SEND_DATA_REQUEST:
322335
packet = SendDataRequestPacket.createPacket(payload);
323336
break;
@@ -330,6 +343,9 @@ private XBeePacket parsePayload(byte[] payload) throws InvalidPacketException {
330343
case RX_16:
331344
packet = RX16Packet.createPacket(payload);
332345
break;
346+
case RX_IPV6:
347+
packet = RXIPv6Packet.createPacket(payload);
348+
break;
333349
case RX_IO_64:
334350
packet = RX64IOPacket.createPacket(payload);
335351
break;
@@ -363,9 +379,15 @@ private XBeePacket parsePayload(byte[] payload) throws InvalidPacketException {
363379
case IO_DATA_SAMPLE_RX_INDICATOR:
364380
packet = IODataSampleRxIndicatorPacket.createPacket(payload);
365381
break;
382+
case IPV6_IO_DATA_SAMPLE_RX_INDICATOR:
383+
packet = IPv6IODataSampleRxIndicator.createPacket(payload);
384+
break;
366385
case REMOTE_AT_COMMAND_RESPONSE:
367386
packet = RemoteATCommandResponsePacket.createPacket(payload);
368387
break;
388+
case IPV6_REMOTE_AT_COMMAND_RESPONSE:
389+
packet = IPv6RemoteATCommandResponsePacket.createPacket(payload);
390+
break;
369391
case RX_SMS:
370392
packet = RXSMSPacket.createPacket(payload);
371393
break;
@@ -381,6 +403,12 @@ private XBeePacket parsePayload(byte[] payload) throws InvalidPacketException {
381403
case DEVICE_RESPONSE_STATUS:
382404
packet = DeviceResponseStatusPacket.createPacket(payload);
383405
break;
406+
case COAP_TX_REQUEST:
407+
packet = CoAPTxRequestPacket.createPacket(payload);
408+
break;
409+
case COAP_RX_RESPONSE:
410+
packet = CoAPRxResponsePacket.createPacket(payload);
411+
break;
384412
case FRAME_ERROR:
385413
packet = FrameErrorPacket.createPacket(payload);
386414
break;

library/src/main/java/com/digi/xbee/api/packet/ip/RXIPv4Packet.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ public static RXIPv4Packet createPacket(byte[] payload) {
138138
* if {@code sourcePort < 0} or
139139
* if {@code sourcePort > 65535} or
140140
* if {@code transmitOptions} are invalid.
141-
* @throws NullPointerException if {@code destAddress == null} or
141+
* @throws NullPointerException if {@code sourceAddress == null} or
142142
* if {@code protocol == null}.
143143
*
144144
* @see IPProtocol
@@ -219,11 +219,11 @@ public Inet4Address getSourceAddress() {
219219
}
220220

221221
/**
222-
* Sets the destination IP address.
222+
* Sets the source IP address.
223223
*
224-
* @param sourceAddress The new destination IP address.
224+
* @param sourceAddress The new source IP address.
225225
*
226-
* @throws NullPointerException if {@code destAddress == null}.
226+
* @throws NullPointerException if {@code sourceAddress == null}.
227227
*
228228
* @see #getSourceAddress()
229229
* @see java.net.Inet4Address

0 commit comments

Comments
 (0)