001/* 002 * Copyright 2017-2019, Digi International Inc. 003 * 004 * This Source Code Form is subject to the terms of the Mozilla Public 005 * License, v. 2.0. If a copy of the MPL was not distributed with this 006 * file, you can obtain one at http://mozilla.org/MPL/2.0/. 007 * 008 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 009 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 010 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 011 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 012 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 013 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 014 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 015 */ 016package com.digi.xbee.api; 017 018import com.digi.xbee.api.connection.IConnectionInterface; 019import com.digi.xbee.api.connection.serial.SerialPortParameters; 020import com.digi.xbee.api.exceptions.TimeoutException; 021import com.digi.xbee.api.exceptions.XBeeException; 022import com.digi.xbee.api.listeners.IIOSampleReceiveListener; 023import com.digi.xbee.api.listeners.IModemStatusReceiveListener; 024import com.digi.xbee.api.listeners.IPacketReceiveListener; 025import com.digi.xbee.api.listeners.IDataReceiveListener; 026import com.digi.xbee.api.listeners.IUserDataRelayReceiveListener; 027import com.digi.xbee.api.listeners.relay.IBluetoothDataReceiveListener; 028import com.digi.xbee.api.listeners.relay.IMicroPythonDataReceiveListener; 029import com.digi.xbee.api.models.OperatingMode; 030import com.digi.xbee.api.models.XBeeLocalInterface; 031import com.digi.xbee.api.models.XBeeMessage; 032import com.digi.xbee.api.packet.XBeePacket; 033 034/** 035 * This class represents a local XBee device. 036 * 037 * @see CellularDevice 038 * @see DigiPointDevice 039 * @see DigiMeshDevice 040 * @see Raw802Device 041 * @see ThreadDevice 042 * @see WiFiDevice 043 * @see ZigBeeDevice 044 */ 045public class XBeeDevice extends AbstractXBeeDevice { 046 047 /** 048 * Class constructor. Instantiates a new {@code XBeeDevice} object 049 * physically connected to the given port name and configured at the 050 * provided baud rate. 051 * 052 * @param port Serial port name where XBee device is attached to. 053 * @param baudRate Serial port baud rate to communicate with the device. 054 * Other connection parameters will be set as default (8 055 * data bits, 1 stop bit, no parity, no flow control). 056 * 057 * @throws IllegalArgumentException if {@code baudRate < 0}. 058 * @throws NullPointerException if {@code port == null}. 059 * 060 * @see #XBeeDevice(IConnectionInterface) 061 * @see #XBeeDevice(String, SerialPortParameters) 062 * @see #XBeeDevice(String, int, int, int, int, int) 063 */ 064 public XBeeDevice(String port, int baudRate) { 065 super(port, baudRate); 066 } 067 068 /** 069 * Class constructor. Instantiates a new {@code XBeeDevice} object 070 * physically connected to the given port name and configured to communicate 071 * with the provided serial settings. 072 * 073 * @param port Serial port name where XBee device is attached to. 074 * @param baudRate Serial port baud rate to communicate with the device. 075 * @param dataBits Serial port data bits. 076 * @param stopBits Serial port data bits. 077 * @param parity Serial port data bits. 078 * @param flowControl Serial port data bits. 079 * 080 * @throws IllegalArgumentException if {@code baudRate < 0} or 081 * if {@code dataBits < 0} or 082 * if {@code stopBits < 0} or 083 * if {@code parity < 0} or 084 * if {@code flowControl < 0}. 085 * @throws NullPointerException if {@code port == null}. 086 * 087 * @see #XBeeDevice(IConnectionInterface) 088 * @see #XBeeDevice(String, int) 089 * @see #XBeeDevice(String, SerialPortParameters) 090 */ 091 public XBeeDevice(String port, int baudRate, int dataBits, int stopBits, int parity, int flowControl) { 092 super(port, baudRate, dataBits, stopBits, parity, flowControl); 093 } 094 095 /** 096 * Class constructor. Instantiates a new {@code XBeeDevice} object 097 * physically connected to the given port name and configured to communicate 098 * with the provided serial settings. 099 * 100 * @param port Serial port name where XBee device is attached to. 101 * @param serialPortParameters Object containing the serial port parameters. 102 * 103 * @throws NullPointerException if {@code port == null} or 104 * if {@code serialPortParameters == null}. 105 * 106 * @see #XBeeDevice(IConnectionInterface) 107 * @see #XBeeDevice(String, int) 108 * @see #XBeeDevice(String, int, int, int, int, int) 109 * @see com.digi.xbee.api.connection.serial.SerialPortParameters 110 */ 111 public XBeeDevice(String port, SerialPortParameters serialPortParameters) { 112 super(port, serialPortParameters); 113 } 114 115 /** 116 * Class constructor. Instantiates a new {@code XBeeDevice} object with the 117 * given connection interface. 118 * 119 * @param connectionInterface The connection interface with the physical 120 * XBee device. 121 * 122 * @throws NullPointerException if {@code connectionInterface == null}. 123 * 124 * @see #XBeeDevice(String, int) 125 * @see #XBeeDevice(String, SerialPortParameters) 126 * @see #XBeeDevice(String, int, int, int, int, int) 127 * @see com.digi.xbee.api.connection.IConnectionInterface 128 */ 129 public XBeeDevice(IConnectionInterface connectionInterface) { 130 super(connectionInterface); 131 } 132 133 @Override 134 public void open() throws XBeeException { 135 super.open(); 136 } 137 138 @Override 139 public void close() { 140 super.close(); 141 } 142 143 @Override 144 public boolean isOpen() { 145 return super.isOpen(); 146 } 147 148 @Override 149 public boolean isRemote() { 150 return false; 151 } 152 153 @Override 154 public XBeeNetwork getNetwork() { 155 return super.getNetwork(); 156 } 157 158 @Override 159 public OperatingMode getOperatingMode() { 160 return super.getOperatingMode(); 161 } 162 163 @Override 164 public int getNextFrameID() { 165 return super.getNextFrameID(); 166 } 167 168 @Override 169 public int getReceiveTimeout() { 170 return super.getReceiveTimeout(); 171 } 172 173 @Override 174 public void setReceiveTimeout(int receiveTimeout) { 175 super.setReceiveTimeout(receiveTimeout); 176 } 177 178 @Override 179 public void addPacketListener(IPacketReceiveListener listener) { 180 super.addPacketListener(listener); 181 } 182 183 @Override 184 public void removePacketListener(IPacketReceiveListener listener) { 185 super.removePacketListener(listener); 186 } 187 188 @Override 189 public void addDataListener(IDataReceiveListener listener) { 190 super.addDataListener(listener); 191 } 192 193 @Override 194 public void removeDataListener(IDataReceiveListener listener) { 195 super.removeDataListener(listener); 196 } 197 198 @Override 199 public void addIOSampleListener(IIOSampleReceiveListener listener) { 200 super.addIOSampleListener(listener); 201 } 202 203 @Override 204 public void removeIOSampleListener(IIOSampleReceiveListener listener) { 205 super.removeIOSampleListener(listener); 206 } 207 208 @Override 209 public void addModemStatusListener(IModemStatusReceiveListener listener) { 210 super.addModemStatusListener(listener); 211 } 212 213 @Override 214 public void removeModemStatusListener(IModemStatusReceiveListener listener) { 215 super.removeModemStatusListener(listener); 216 } 217 218 @Override 219 public void addUserDataRelayListener(IUserDataRelayReceiveListener listener) { 220 super.addUserDataRelayListener(listener); 221 } 222 223 @Override 224 public void removeUserDataRelayListener(IUserDataRelayReceiveListener listener) { 225 super.removeUserDataRelayListener(listener); 226 } 227 228 @Override 229 public void addBluetoothDataListener(IBluetoothDataReceiveListener listener) { 230 super.addBluetoothDataListener(listener); 231 } 232 233 @Override 234 public void removeBluetoothDataListener(IBluetoothDataReceiveListener listener) { 235 super.removeBluetoothDataListener(listener); 236 } 237 238 @Override 239 public void addMicroPythonDataListener(IMicroPythonDataReceiveListener listener) { 240 super.addMicroPythonDataListener(listener); 241 } 242 243 @Override 244 public void removeMicroPythonDataListener(IMicroPythonDataReceiveListener listener) { 245 super.removeMicroPythonDataListener(listener); 246 } 247 248 @Override 249 public void sendDataAsync(RemoteXBeeDevice remoteXBeeDevice, byte[] data) throws XBeeException { 250 super.sendDataAsync(remoteXBeeDevice, data); 251 } 252 253 @Override 254 public void sendData(RemoteXBeeDevice remoteXBeeDevice, byte[] data) throws TimeoutException, XBeeException { 255 super.sendData(remoteXBeeDevice, data); 256 } 257 258 @Override 259 public void sendBroadcastData(byte[] data) throws TimeoutException, XBeeException { 260 super.sendBroadcastData(data); 261 } 262 263 @Override 264 public void sendUserDataRelay(XBeeLocalInterface destInterface, byte[] data) throws XBeeException { 265 super.sendUserDataRelay(destInterface, data); 266 } 267 268 @Override 269 public void sendBluetoothData(byte[] data) throws XBeeException { 270 super.sendBluetoothData(data); 271 } 272 273 @Override 274 public void sendMicroPythonData(byte[] data) throws XBeeException { 275 super.sendMicroPythonData(data); 276 } 277 278 @Override 279 public void sendPacket(XBeePacket packet, IPacketReceiveListener packetReceiveListener) throws XBeeException { 280 super.sendPacket(packet, packetReceiveListener); 281 } 282 283 @Override 284 public void sendPacketAsync(XBeePacket packet) throws XBeeException { 285 super.sendPacketAsync(packet); 286 } 287 288 @Override 289 public XBeePacket sendPacket(XBeePacket packet) throws TimeoutException, XBeeException { 290 return super.sendPacket(packet); 291 } 292 293 @Override 294 public void reset() throws TimeoutException, XBeeException { 295 softwareReset(); 296 } 297 298 @Override 299 public XBeePacket readPacket() { 300 return super.readPacket(); 301 } 302 303 @Override 304 public XBeePacket readPacket(int timeout) { 305 return super.readPacket(timeout); 306 } 307 308 @Override 309 public XBeePacket readPacketFrom(RemoteXBeeDevice remoteXBeeDevice) { 310 return super.readPacketFrom(remoteXBeeDevice); 311 } 312 313 @Override 314 public XBeePacket readPacketFrom(RemoteXBeeDevice remoteXBeeDevice, int timeout) { 315 return super.readPacketFrom(remoteXBeeDevice, timeout); 316 } 317 318 @Override 319 public XBeeMessage readData() { 320 return super.readData(); 321 } 322 323 @Override 324 public XBeeMessage readData(int timeout) { 325 return super.readData(timeout); 326 } 327 328 @Override 329 public XBeeMessage readDataFrom(RemoteXBeeDevice remoteXBeeDevice) { 330 return super.readDataFrom(remoteXBeeDevice); 331 } 332 333 @Override 334 public XBeeMessage readDataFrom(RemoteXBeeDevice remoteXBeeDevice, int timeout) { 335 return super.readDataFrom(remoteXBeeDevice, timeout); 336 } 337 338 @Override 339 public String toString() { 340 return super.toString(); 341 } 342}