test

Committer:
yamaguch
Date:
Wed Nov 16 03:28:00 2011 +0000
Revision:
19:c7a9d77d9617
Parent:
18:265de0e55068

        

Who changed what in which revision?

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