XBee API mode library 1.0

Committer:
yamaguch
Date:
Wed Nov 16 03:37:32 2011 +0000
Revision:
1:58a1c083cf8d
Parent:
0:ea8459db49ef
Child:
3:48f7780963e2
Updated API document

Who changed what in which revision?

UserRevisionLine numberNew contents of line
yamaguch 0:ea8459db49ef 1 /*
yamaguch 0:ea8459db49ef 2 Copyright (c) 2011, Senio Networks, Inc.
yamaguch 0:ea8459db49ef 3
yamaguch 0:ea8459db49ef 4 Permission is hereby granted, free of charge, to any person obtaining a copy
yamaguch 0:ea8459db49ef 5 of this software and associated documentation files (the "Software"), to deal
yamaguch 0:ea8459db49ef 6 in the Software without restriction, including without limitation the rights
yamaguch 0:ea8459db49ef 7 to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
yamaguch 0:ea8459db49ef 8 copies of the Software, and to permit persons to whom the Software is
yamaguch 0:ea8459db49ef 9 furnished to do so, subject to the following conditions:
yamaguch 0:ea8459db49ef 10
yamaguch 0:ea8459db49ef 11 The above copyright notice and this permission notice shall be included in
yamaguch 0:ea8459db49ef 12 all copies or substantial portions of the Software.
yamaguch 0:ea8459db49ef 13
yamaguch 0:ea8459db49ef 14 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
yamaguch 0:ea8459db49ef 15 IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
yamaguch 0:ea8459db49ef 16 FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
yamaguch 0:ea8459db49ef 17 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
yamaguch 0:ea8459db49ef 18 LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
yamaguch 0:ea8459db49ef 19 OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
yamaguch 0:ea8459db49ef 20 THE SOFTWARE.
yamaguch 0:ea8459db49ef 21 */
yamaguch 0:ea8459db49ef 22
yamaguch 0:ea8459db49ef 23 #ifndef XBEE_H
yamaguch 0:ea8459db49ef 24 #define XBEE_H
yamaguch 0:ea8459db49ef 25
yamaguch 0:ea8459db49ef 26 #include "mbed.h"
yamaguch 0:ea8459db49ef 27 #include "IOSample.h"
yamaguch 0:ea8459db49ef 28
yamaguch 0:ea8459db49ef 29 const int BUFSIZE = 512;
yamaguch 0:ea8459db49ef 30 const char ESCAPE = 0x7D;
yamaguch 0:ea8459db49ef 31 const char PREAMBLE = 0x7E;
yamaguch 0:ea8459db49ef 32
yamaguch 0:ea8459db49ef 33 /**
yamaguch 0:ea8459db49ef 34 * class for XBee module API mode interface
yamaguch 0:ea8459db49ef 35 */
yamaguch 0:ea8459db49ef 36 class XBee : public Serial {
yamaguch 0:ea8459db49ef 37 public:
yamaguch 1:58a1c083cf8d 38
yamaguch 1:58a1c083cf8d 39 /**
yamaguch 1:58a1c083cf8d 40 * Frame type declaration for XBee API frames
yamaguch 1:58a1c083cf8d 41 */
yamaguch 0:ea8459db49ef 42 enum FrameType {
yamaguch 1:58a1c083cf8d 43 /**
yamaguch 1:58a1c083cf8d 44 * Empty data
yamaguch 1:58a1c083cf8d 45 */
yamaguch 0:ea8459db49ef 46 None = 0,
yamaguch 1:58a1c083cf8d 47
yamaguch 1:58a1c083cf8d 48 /**
yamaguch 1:58a1c083cf8d 49 * AT Command Response API frame
yamaguch 1:58a1c083cf8d 50 */
yamaguch 0:ea8459db49ef 51 ATCommandResponse,
yamaguch 1:58a1c083cf8d 52
yamaguch 1:58a1c083cf8d 53 /**
yamaguch 1:58a1c083cf8d 54 * Modem Status API frame
yamaguch 1:58a1c083cf8d 55 */
yamaguch 0:ea8459db49ef 56 ModemStatus,
yamaguch 1:58a1c083cf8d 57
yamaguch 1:58a1c083cf8d 58 /**
yamaguch 1:58a1c083cf8d 59 * ZigBee Transmit Status API frame
yamaguch 1:58a1c083cf8d 60 */
yamaguch 0:ea8459db49ef 61 ZigBeeTransmitStatus,
yamaguch 1:58a1c083cf8d 62
yamaguch 1:58a1c083cf8d 63
yamaguch 1:58a1c083cf8d 64 /**
yamaguch 1:58a1c083cf8d 65 * ZigBee Receive Packet API frame
yamaguch 1:58a1c083cf8d 66 */
yamaguch 0:ea8459db49ef 67 ZigBeeReceivePacket,
yamaguch 1:58a1c083cf8d 68
yamaguch 1:58a1c083cf8d 69 /**
yamaguch 1:58a1c083cf8d 70 * ZigBee Explicit Rx Indicator API frame
yamaguch 1:58a1c083cf8d 71 */
yamaguch 0:ea8459db49ef 72 ZigBeeExplicitRxIndicator,
yamaguch 1:58a1c083cf8d 73
yamaguch 1:58a1c083cf8d 74 /**
yamaguch 1:58a1c083cf8d 75 * ZigBee I/O Data Sample Rx Indicator API frame
yamaguch 1:58a1c083cf8d 76 */
yamaguch 0:ea8459db49ef 77 ZigBeeIODataSampleRxIndicator,
yamaguch 1:58a1c083cf8d 78
yamaguch 1:58a1c083cf8d 79 /**
yamaguch 1:58a1c083cf8d 80 * XBee Sensor Read Indicator API frame
yamaguch 1:58a1c083cf8d 81 */
yamaguch 0:ea8459db49ef 82 XBeeSensorReadIndicator,
yamaguch 1:58a1c083cf8d 83
yamaguch 1:58a1c083cf8d 84 /**
yamaguch 1:58a1c083cf8d 85 * Node Identification Indicator API frame
yamaguch 1:58a1c083cf8d 86 */
yamaguch 0:ea8459db49ef 87 NodeIdentificationIndicator,
yamaguch 1:58a1c083cf8d 88
yamaguch 1:58a1c083cf8d 89 /**
yamaguch 1:58a1c083cf8d 90 * Remote Command Response API frame
yamaguch 1:58a1c083cf8d 91 */
yamaguch 0:ea8459db49ef 92 RemoteCommandResponse,
yamaguch 1:58a1c083cf8d 93
yamaguch 1:58a1c083cf8d 94 /**
yamaguch 1:58a1c083cf8d 95 * Unknown API frame
yamaguch 1:58a1c083cf8d 96 */
yamaguch 0:ea8459db49ef 97 Other
yamaguch 0:ea8459db49ef 98 };
yamaguch 1:58a1c083cf8d 99
yamaguch 1:58a1c083cf8d 100 /**
yamaguch 1:58a1c083cf8d 101 * Value type declarations for retrieving frame data contents
yamaguch 1:58a1c083cf8d 102 */
yamaguch 0:ea8459db49ef 103 enum ValueType {
yamaguch 1:58a1c083cf8d 104
yamaguch 1:58a1c083cf8d 105 /**
yamaguch 1:58a1c083cf8d 106 * Frame ID
yamaguch 1:58a1c083cf8d 107 */
yamaguch 0:ea8459db49ef 108 FrameID,
yamaguch 1:58a1c083cf8d 109
yamaguch 1:58a1c083cf8d 110 /**
yamaguch 1:58a1c083cf8d 111 *AT command name
yamaguch 1:58a1c083cf8d 112 */
yamaguch 0:ea8459db49ef 113 ATCommand,
yamaguch 1:58a1c083cf8d 114
yamaguch 1:58a1c083cf8d 115 /**
yamaguch 1:58a1c083cf8d 116 * Status
yamaguch 1:58a1c083cf8d 117 */
yamaguch 0:ea8459db49ef 118 Status,
yamaguch 1:58a1c083cf8d 119
yamaguch 1:58a1c083cf8d 120 /**
yamaguch 1:58a1c083cf8d 121 * Command data
yamaguch 1:58a1c083cf8d 122 */
yamaguch 0:ea8459db49ef 123 CommandData,
yamaguch 1:58a1c083cf8d 124
yamaguch 1:58a1c083cf8d 125 /**
yamaguch 1:58a1c083cf8d 126 * 16 bit address
yamaguch 1:58a1c083cf8d 127 */
yamaguch 0:ea8459db49ef 128 Address16,
yamaguch 1:58a1c083cf8d 129
yamaguch 1:58a1c083cf8d 130 /**
yamaguch 1:58a1c083cf8d 131 * 64 bit address
yamaguch 1:58a1c083cf8d 132 */
yamaguch 0:ea8459db49ef 133 Address64,
yamaguch 1:58a1c083cf8d 134
yamaguch 1:58a1c083cf8d 135 /**
yamaguch 1:58a1c083cf8d 136 * Retry count
yamaguch 1:58a1c083cf8d 137 */
yamaguch 0:ea8459db49ef 138 RetryCount,
yamaguch 1:58a1c083cf8d 139
yamaguch 1:58a1c083cf8d 140 /**
yamaguch 1:58a1c083cf8d 141 * Delivery status
yamaguch 1:58a1c083cf8d 142 */
yamaguch 0:ea8459db49ef 143 DeliveryStatus,
yamaguch 1:58a1c083cf8d 144
yamaguch 1:58a1c083cf8d 145 /**
yamaguch 1:58a1c083cf8d 146 * Discovery status
yamaguch 1:58a1c083cf8d 147 */
yamaguch 0:ea8459db49ef 148 DiscoveryStatus,
yamaguch 1:58a1c083cf8d 149
yamaguch 1:58a1c083cf8d 150 /**
yamaguch 1:58a1c083cf8d 151 * Receive option
yamaguch 1:58a1c083cf8d 152 */
yamaguch 0:ea8459db49ef 153 ReceiveOptions,
yamaguch 1:58a1c083cf8d 154
yamaguch 1:58a1c083cf8d 155 /**
yamaguch 1:58a1c083cf8d 156 * Received data
yamaguch 1:58a1c083cf8d 157 */
yamaguch 0:ea8459db49ef 158 ReceivedData,
yamaguch 1:58a1c083cf8d 159
yamaguch 1:58a1c083cf8d 160 /**
yamaguch 1:58a1c083cf8d 161 * Raw data
yamaguch 1:58a1c083cf8d 162 */
yamaguch 0:ea8459db49ef 163 RawData
yamaguch 0:ea8459db49ef 164 };
yamaguch 0:ea8459db49ef 165
yamaguch 1:58a1c083cf8d 166
yamaguch 0:ea8459db49ef 167 /**
yamaguch 0:ea8459db49ef 168 * creates an XBee interface object.
yamaguch 0:ea8459db49ef 169 *
yamaguch 0:ea8459db49ef 170 * @param ser Serial object through which XBee module is connected to mbed
yamaguch 0:ea8459db49ef 171 * @param apiMode API mode either 1 or 2 (use escape; default)
yamaguch 0:ea8459db49ef 172 * @param debug display debugging (I/O state) information through LEDs
yamaguch 0:ea8459db49ef 173 */
yamaguch 0:ea8459db49ef 174 XBee(Serial& ser, int apiMode = 2, bool debug = false);
yamaguch 0:ea8459db49ef 175
yamaguch 0:ea8459db49ef 176 /**
yamaguch 0:ea8459db49ef 177 * creates an XBee interface object.
yamaguch 0:ea8459db49ef 178 *
yamaguch 0:ea8459db49ef 179 * @param ser Serial object through which XBee module is connected to mbed
yamaguch 0:ea8459db49ef 180 * @param mon alternate Serial object for monitoring (use serial ports other than USBTX/USBRX)
yamaguch 0:ea8459db49ef 181 * @param apiMode API mode either 1 or 2 (use escape; default)
yamaguch 0:ea8459db49ef 182 * @param debug display debugging (I/O state) information through LEDs
yamaguch 0:ea8459db49ef 183 */
yamaguch 0:ea8459db49ef 184 XBee(Serial& ser, Serial& mon, int apiMode = 2, bool debug = false);
yamaguch 0:ea8459db49ef 185
yamaguch 0:ea8459db49ef 186 /**
yamaguch 0:ea8459db49ef 187 * initializes XBee module.
yamaguch 0:ea8459db49ef 188 *
yamaguch 0:ea8459db49ef 189 * issues VR command to test XBee modem connection
yamaguch 0:ea8459db49ef 190 *
yamaguch 0:ea8459db49ef 191 * @returns true if initialization succeeded, false otherwise
yamaguch 0:ea8459db49ef 192 */
yamaguch 0:ea8459db49ef 193 bool init(float timeout = 15.0);
yamaguch 0:ea8459db49ef 194
yamaguch 0:ea8459db49ef 195 /**
yamaguch 0:ea8459db49ef 196 * sets destination addresses.
yamaguch 0:ea8459db49ef 197 *
yamaguch 0:ea8459db49ef 198 * @param address64 64-bit destination address in unsigned long long
yamaguch 0:ea8459db49ef 199 * @param address16 16-bit destination address in unsigned short
yamaguch 0:ea8459db49ef 200 */
yamaguch 0:ea8459db49ef 201 void setDestination(unsigned long long address64, unsigned short address16 = 0xFFFE);
yamaguch 0:ea8459db49ef 202
yamaguch 0:ea8459db49ef 203 /**
yamaguch 0:ea8459db49ef 204 * sets destination addresses.
yamaguch 0:ea8459db49ef 205 *
yamaguch 0:ea8459db49ef 206 * @param address64 64-bit destination address in bytes (big endian)
yamaguch 0:ea8459db49ef 207 * @param address16 16-bit destination address in bytes
yamaguch 0:ea8459db49ef 208 */
yamaguch 0:ea8459db49ef 209 void setDestination(char address64[], char address16[]);
yamaguch 0:ea8459db49ef 210
yamaguch 0:ea8459db49ef 211 /**
yamaguch 0:ea8459db49ef 212 * sets 64-bit destination address.
yamaguch 0:ea8459db49ef 213 *
yamaguch 0:ea8459db49ef 214 * this function is used when 16-bit address is unknown
yamaguch 0:ea8459db49ef 215 * @param address64 64-bit destination address in bytes (big endian)
yamaguch 0:ea8459db49ef 216 */
yamaguch 0:ea8459db49ef 217 void setDestination(char address64[]);
yamaguch 0:ea8459db49ef 218
yamaguch 0:ea8459db49ef 219 /**
yamaguch 0:ea8459db49ef 220 * sends an AT command.
yamaguch 0:ea8459db49ef 221 *
yamaguch 0:ea8459db49ef 222 * @param command AT command char string
yamaguch 0:ea8459db49ef 223 * @param param parameter to the AT command (pointer to byte array)
yamaguch 0:ea8459db49ef 224 * @param param_length parameter length in bytes
yamaguch 0:ea8459db49ef 225 * @param queue true if command paramter is to be queued
yamaguch 0:ea8459db49ef 226 */
yamaguch 0:ea8459db49ef 227 void sendCommand(char* command, char* param = 0, int param_length = 0, bool queue = false);
yamaguch 0:ea8459db49ef 228
yamaguch 0:ea8459db49ef 229 /**
yamaguch 0:ea8459db49ef 230 * sends a remote AT command.
yamaguch 0:ea8459db49ef 231 *
yamaguch 0:ea8459db49ef 232 * sends an AT command to the XBee(s) at the destination address
yamaguch 0:ea8459db49ef 233 *
yamaguch 0:ea8459db49ef 234 * @param command AT command char string
yamaguch 0:ea8459db49ef 235 * @param param parameter to the AT command (pointer to byte array)
yamaguch 0:ea8459db49ef 236 * @param param_length parameter length in bytes
yamaguch 0:ea8459db49ef 237 * @param options remote command options
yamaguch 0:ea8459db49ef 238 */
yamaguch 0:ea8459db49ef 239 void sendRemoteCommand(char* command, char* param = 0, int param_length = 0, char options = 0x02);
yamaguch 0:ea8459db49ef 240
yamaguch 0:ea8459db49ef 241
yamaguch 0:ea8459db49ef 242 /**
yamaguch 0:ea8459db49ef 243 * executes an AT command then gets its result.
yamaguch 0:ea8459db49ef 244 *
yamaguch 0:ea8459db49ef 245 * @param command AT command char string
yamaguch 0:ea8459db49ef 246 * @param param parameter to the AT command (pointer to byte array)
yamaguch 0:ea8459db49ef 247 * @param param_length parameter length in bytes
yamaguch 0:ea8459db49ef 248 *
yamaguch 0:ea8459db49ef 249 * @returns pointer to the command result, if the result is a number (char, short, long, long long),
yamaguch 0:ea8459db49ef 250 * the address to the number will be returned; otherwise the address to the byte array
yamaguch 0:ea8459db49ef 251 * containing the command response will be returned.
yamaguch 0:ea8459db49ef 252 */
yamaguch 0:ea8459db49ef 253 void *executeCommand(char *command, char* param = 0, int laram_length = 0);
yamaguch 0:ea8459db49ef 254
yamaguch 0:ea8459db49ef 255 /**
yamaguch 0:ea8459db49ef 256 * sends data to the XBee(s) at the destination address.
yamaguch 0:ea8459db49ef 257 *
yamaguch 0:ea8459db49ef 258 * @param data address to the data (byte array)
yamaguch 0:ea8459db49ef 259 * @param length data length in bytes
yamaguch 0:ea8459db49ef 260 */
yamaguch 0:ea8459db49ef 261 void send(char *data, int length);
yamaguch 0:ea8459db49ef 262
yamaguch 0:ea8459db49ef 263 /**
yamaguch 0:ea8459db49ef 264 * sends data and confirm the transmit status.
yamaguch 0:ea8459db49ef 265 *
yamaguch 0:ea8459db49ef 266 * @param data address to the data (byte array)
yamaguch 0:ea8459db49ef 267 * @param length data length in bytes
yamaguch 0:ea8459db49ef 268 *
yamaguch 0:ea8459db49ef 269 * @returns true if sent successfully, false otherwise (either timeout or send error occurred)
yamaguch 0:ea8459db49ef 270 */
yamaguch 0:ea8459db49ef 271 bool sendConfirm(char *data, int length);
yamaguch 0:ea8459db49ef 272
yamaguch 0:ea8459db49ef 273 /**
yamaguch 0:ea8459db49ef 274 * sends data to the destination using printf format.
yamaguch 0:ea8459db49ef 275 *
yamaguch 0:ea8459db49ef 276 * @param format printf format string, followed by corresponding arguments
yamaguch 0:ea8459db49ef 277 *
yamaguch 0:ea8459db49ef 278 * @returns the number of charancters sent, or negative if error occurred
yamaguch 0:ea8459db49ef 279 */
yamaguch 0:ea8459db49ef 280 int printf(const char *format, ...);
yamaguch 0:ea8459db49ef 281
yamaguch 0:ea8459db49ef 282 /**
yamaguch 0:ea8459db49ef 283 * receives data frame from the XBee module.
yamaguch 0:ea8459db49ef 284 *
yamaguch 0:ea8459db49ef 285 * @param timeout seconds bofer time out
yamaguch 0:ea8459db49ef 286 *
yamaguch 0:ea8459db49ef 287 * @returns FrameType of the received frame data
yamaguch 0:ea8459db49ef 288 */
yamaguch 0:ea8459db49ef 289 FrameType receive(float timeout = 3.0);
yamaguch 0:ea8459db49ef 290
yamaguch 0:ea8459db49ef 291 /**
yamaguch 0:ea8459db49ef 292 * scan received data according to the specified format.
yamaguch 0:ea8459db49ef 293 *
yamaguch 0:ea8459db49ef 294 * @param type ValueType of the data to be scanned
yamaguch 0:ea8459db49ef 295 * @param value pointer to the byte array to store the scanned value
yamaguch 0:ea8459db49ef 296 * @param maxlength max size of the value in bytes
yamaguch 0:ea8459db49ef 297 * @param length pointer to an int to receive the actual data length
yamaguch 0:ea8459db49ef 298 *
yamaguch 0:ea8459db49ef 299 * @param true if scan succeeded, false otherwise
yamaguch 0:ea8459db49ef 300 */
yamaguch 0:ea8459db49ef 301 bool scan(ValueType type, char *value, int maxlength = 1, int *length = 0);
yamaguch 0:ea8459db49ef 302
yamaguch 0:ea8459db49ef 303 /**
yamaguch 0:ea8459db49ef 304 * gets the XBee firmware version.
yamaguch 0:ea8459db49ef 305 *
yamaguch 0:ea8459db49ef 306 * @returns XBee firmwre version in int (unsigned short value)
yamaguch 0:ea8459db49ef 307 */
yamaguch 0:ea8459db49ef 308 int getFirmwareVersion();
yamaguch 0:ea8459db49ef 309
yamaguch 0:ea8459db49ef 310 /**
yamaguch 0:ea8459db49ef 311 * gets the current frame ID.
yamaguch 0:ea8459db49ef 312 *
yamaguch 0:ea8459db49ef 313 * @returns frame ID number being used in the next send request
yamaguch 0:ea8459db49ef 314 */
yamaguch 0:ea8459db49ef 315 char getFrameID();
yamaguch 0:ea8459db49ef 316
yamaguch 0:ea8459db49ef 317 /**
yamaguch 0:ea8459db49ef 318 * sets to run in debug mode.
yamaguch 0:ea8459db49ef 319 *
yamaguch 0:ea8459db49ef 320 * @param debug true to display debugging information
yamaguch 0:ea8459db49ef 321 */
yamaguch 0:ea8459db49ef 322 void setDebug(bool debug);
yamaguch 0:ea8459db49ef 323
yamaguch 0:ea8459db49ef 324 /**
yamaguch 0:ea8459db49ef 325 * displays received data in dump format.
yamaguch 0:ea8459db49ef 326 */
yamaguch 0:ea8459db49ef 327 void dump();
yamaguch 0:ea8459db49ef 328
yamaguch 0:ea8459db49ef 329 /**
yamaguch 0:ea8459db49ef 330 * displays the internal data fields and receive buffer in dump format.
yamaguch 0:ea8459db49ef 331 */
yamaguch 0:ea8459db49ef 332 void dumpAll();
yamaguch 0:ea8459db49ef 333
yamaguch 0:ea8459db49ef 334 /**
yamaguch 0:ea8459db49ef 335 * operator overloading for testing XBee modem connection status.
yamaguch 0:ea8459db49ef 336 *
yamaguch 0:ea8459db49ef 337 * @returns false if XBee modem connection has an error
yamaguch 0:ea8459db49ef 338 */
yamaguch 0:ea8459db49ef 339 operator bool();
yamaguch 0:ea8459db49ef 340
yamaguch 0:ea8459db49ef 341 private:
yamaguch 0:ea8459db49ef 342 Serial mon;
yamaguch 0:ea8459db49ef 343 BusOut leds;
yamaguch 0:ea8459db49ef 344 int apiMode;
yamaguch 0:ea8459db49ef 345 volatile enum {UNKNOWN, LENGTH1, LENGTH2, DATA, SUMCHECK} state;
yamaguch 0:ea8459db49ef 346 volatile int cur, in, out, received, free;
yamaguch 0:ea8459db49ef 347 char frame_id;
yamaguch 0:ea8459db49ef 348 char destination64[8];
yamaguch 0:ea8459db49ef 349 char destination16[2];
yamaguch 0:ea8459db49ef 350 char buf[BUFSIZE];
yamaguch 0:ea8459db49ef 351 bool debug;
yamaguch 0:ea8459db49ef 352
yamaguch 0:ea8459db49ef 353 void send(char c);
yamaguch 0:ea8459db49ef 354 void send2(char c);
yamaguch 0:ea8459db49ef 355 void sendFrame(char* frame, int length);
yamaguch 0:ea8459db49ef 356 int createTxRequest(char frame_id, char* data, int data_length, char* buf, int buf_size);
yamaguch 0:ea8459db49ef 357 int createAtRequest(char frame_id, char* command, char* param, int param_length, bool queue, char* buf, int buf_size);
yamaguch 0:ea8459db49ef 358 int createRemoteAtRequest(char frame_id, char* command, char* param, int param_length, char options, char* buf, int buf_size);
yamaguch 0:ea8459db49ef 359 int seekFor(FrameType type, float timeout);
yamaguch 0:ea8459db49ef 360 FrameType getFrameType(char c);
yamaguch 0:ea8459db49ef 361 bool scan(int i, ValueType type, char *value, int maxlength = 1, int *length = 0);
yamaguch 0:ea8459db49ef 362 void flush();
yamaguch 0:ea8459db49ef 363 void rxInterruptHandler();
yamaguch 0:ea8459db49ef 364 void rxInterruptHandler2();
yamaguch 0:ea8459db49ef 365
yamaguch 0:ea8459db49ef 366 void dump(char* data, int length);
yamaguch 0:ea8459db49ef 367 void dumpIOSample(char *data, int length);
yamaguch 0:ea8459db49ef 368 void copy(char *toBuf, int fromIndex, int length);
yamaguch 0:ea8459db49ef 369 };
yamaguch 0:ea8459db49ef 370
yamaguch 0:ea8459db49ef 371 #endif