XBee and XBee-PRO ZigBee RF modules provide cost-effective wireless connectivity to electronic devices. They are interoperable with other ZigBee PRO feature set devices, including devices from other vendors.
Core/CoreAPI.h@6:5f31ddc17239, 2015-11-14 (annotated)
- Committer:
- yangcq88517
- Date:
- Sat Nov 14 16:42:36 2015 +0000
- Revision:
- 6:5f31ddc17239
- Parent:
- 4:a0f1fba6c2fb
change to unsigned char array
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
yangcq88517 | 0:837e6c48e90d | 1 | #ifndef UK_AC_HERTS_SMARTLAB_XBEE_CoreAPI |
yangcq88517 | 0:837e6c48e90d | 2 | #define UK_AC_HERTS_SMARTLAB_XBEE_CoreAPI |
yangcq88517 | 0:837e6c48e90d | 3 | |
yangcq88517 | 0:837e6c48e90d | 4 | #include "APIFrame.h" |
yangcq88517 | 0:837e6c48e90d | 5 | #include "ISerial.h" |
yangcq88517 | 0:837e6c48e90d | 6 | |
yangcq88517 | 0:837e6c48e90d | 7 | #include "ATCommandRequest.h" |
yangcq88517 | 0:837e6c48e90d | 8 | #include "CreateSourceRouteRequest.h" |
yangcq88517 | 0:837e6c48e90d | 9 | #include "IOCDetectionConfigRequest.h" |
yangcq88517 | 0:837e6c48e90d | 10 | #include "PinConfigurationRequest.h" |
yangcq88517 | 0:837e6c48e90d | 11 | #include "RemoteATCommandRequest.h" |
yangcq88517 | 0:837e6c48e90d | 12 | #include "RemoteIODetectionConfigRequest.h" |
yangcq88517 | 0:837e6c48e90d | 13 | #include "RemotePinConfigurationRequest.h" |
yangcq88517 | 0:837e6c48e90d | 14 | #include "XBeeTx16Request.h" |
yangcq88517 | 0:837e6c48e90d | 15 | #include "XBeeTx64Request.h" |
yangcq88517 | 0:837e6c48e90d | 16 | #include "ZigBeeExplicitTxRequest.h" |
yangcq88517 | 0:837e6c48e90d | 17 | #include "ZigBeeTxRequest.h" |
yangcq88517 | 0:837e6c48e90d | 18 | |
yangcq88517 | 0:837e6c48e90d | 19 | #include "XBeeRx64Indicator.h" |
yangcq88517 | 0:837e6c48e90d | 20 | #include "XBeeRx16Indicator.h" |
yangcq88517 | 0:837e6c48e90d | 21 | #include "XBeeRx64IOSampleIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 22 | #include "XBeeRx16IOSampleIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 23 | #include "XBeeTxStatusIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 24 | #include "ATCommandIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 25 | #include "ModemStatusIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 26 | #include "ZigBeeTxStatusIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 27 | #include "ZigBeeRxIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 28 | #include "ZigBeeExplicitRxIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 29 | #include "ZigBeeIOSampleIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 30 | #include "SensorReadIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 31 | #include "NodeIdentificationIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 32 | #include "RemoteCommandIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 33 | #include "RouteRecordIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 34 | #include "ManyToOneRouteIndicator.h" |
yangcq88517 | 0:837e6c48e90d | 35 | |
yangcq88517 | 4:a0f1fba6c2fb | 36 | /** |
yangcq88517 | 4:a0f1fba6c2fb | 37 | * The core API class which responseable for processing frame data, but not the serial operation. |
yangcq88517 | 4:a0f1fba6c2fb | 38 | */ |
yangcq88517 | 0:837e6c48e90d | 39 | class CoreAPI |
yangcq88517 | 0:837e6c48e90d | 40 | { |
yangcq88517 | 0:837e6c48e90d | 41 | private: |
yangcq88517 | 6:5f31ddc17239 | 42 | static const unsigned char KEY = 0x7E; |
yangcq88517 | 6:5f31ddc17239 | 43 | static const unsigned char ESCAPED = 0x7D; |
yangcq88517 | 6:5f31ddc17239 | 44 | static const unsigned char XON = 0x11; |
yangcq88517 | 6:5f31ddc17239 | 45 | static const unsigned char XOFF = 0x13; |
yangcq88517 | 6:5f31ddc17239 | 46 | static const unsigned int INITIAL_FRAME_LENGTH = 10; |
yangcq88517 | 0:837e6c48e90d | 47 | |
yangcq88517 | 0:837e6c48e90d | 48 | ISerial * serial; |
yangcq88517 | 0:837e6c48e90d | 49 | bool isEscapeMode; |
yangcq88517 | 0:837e6c48e90d | 50 | bool isRunning; |
yangcq88517 | 0:837e6c48e90d | 51 | bool isChecksum; |
yangcq88517 | 3:6b205ec8624b | 52 | Timer timer; |
yangcq88517 | 3:6b205ec8624b | 53 | |
yangcq88517 | 6:5f31ddc17239 | 54 | unsigned char waitFrameID; |
yangcq88517 | 0:837e6c48e90d | 55 | |
yangcq88517 | 0:837e6c48e90d | 56 | APIFrame * msg; |
yangcq88517 | 0:837e6c48e90d | 57 | XBeeRx64Indicator xBeeRx64Indicator; |
yangcq88517 | 0:837e6c48e90d | 58 | XBeeRx16Indicator xBeeRx16Indicator; |
yangcq88517 | 0:837e6c48e90d | 59 | XBeeRx64IOSampleIndicator xBeeRx64IOSampleIndicator; |
yangcq88517 | 0:837e6c48e90d | 60 | XBeeRx16IOSampleIndicator xBeeRx16IOSampleIndicator; |
yangcq88517 | 0:837e6c48e90d | 61 | XBeeTxStatusIndicator xBeeTxStatusIndicator; |
yangcq88517 | 0:837e6c48e90d | 62 | ATCommandIndicator aTCommandIndicator; |
yangcq88517 | 0:837e6c48e90d | 63 | ModemStatusIndicator modemStatusIndicator; |
yangcq88517 | 0:837e6c48e90d | 64 | ZigBeeTxStatusIndicator zigBeeTxStatusIndicator; |
yangcq88517 | 0:837e6c48e90d | 65 | ZigBeeRxIndicator zigBeeRxIndicator; |
yangcq88517 | 0:837e6c48e90d | 66 | ZigBeeExplicitRxIndicator zigBeeExplicitRxIndicator; |
yangcq88517 | 0:837e6c48e90d | 67 | ZigBeeIOSampleIndicator zigBeeIOSampleIndicator; |
yangcq88517 | 0:837e6c48e90d | 68 | SensorReadIndicator sensorReadIndicator; |
yangcq88517 | 0:837e6c48e90d | 69 | NodeIdentificationIndicator nodeIdentificationIndicator; |
yangcq88517 | 0:837e6c48e90d | 70 | RemoteCommandIndicator remoteCommandIndicator; |
yangcq88517 | 0:837e6c48e90d | 71 | RouteRecordIndicator routeRecordIndicator; |
yangcq88517 | 0:837e6c48e90d | 72 | ManyToOneRouteIndicator manyToOneRouteIndicator; |
yangcq88517 | 0:837e6c48e90d | 73 | |
yangcq88517 | 0:837e6c48e90d | 74 | protected: |
yangcq88517 | 0:837e6c48e90d | 75 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 76 | /** Read one byte payload, which allready handle the escape char, if less than 0 means error occured |
yangcq88517 | 1:3dc0ec2f9fd6 | 77 | * @returns if less than 0 means error occured. |
yangcq88517 | 1:3dc0ec2f9fd6 | 78 | */ |
yangcq88517 | 0:837e6c48e90d | 79 | int readByte(); |
yangcq88517 | 0:837e6c48e90d | 80 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 81 | /** Write one byte to the payload, which allready handle the escape char. |
yangcq88517 | 1:3dc0ec2f9fd6 | 82 | * @param data one byte [0x00-0xFF] |
yangcq88517 | 1:3dc0ec2f9fd6 | 83 | */ |
yangcq88517 | 6:5f31ddc17239 | 84 | void writeByte(unsigned char data); |
yangcq88517 | 3:6b205ec8624b | 85 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 86 | /// Processing API frame. |
yangcq88517 | 0:837e6c48e90d | 87 | void packetProcess(); |
yangcq88517 | 3:6b205ec8624b | 88 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 89 | /// Get the next avaliable API frame length. |
yangcq88517 | 0:837e6c48e90d | 90 | int getLength(); |
yangcq88517 | 3:6b205ec8624b | 91 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 92 | /// Read the next avaliable API frame data. |
yangcq88517 | 0:837e6c48e90d | 93 | void readPayLoad(int length); |
yangcq88517 | 0:837e6c48e90d | 94 | |
yangcq88517 | 0:837e6c48e90d | 95 | public: |
yangcq88517 | 0:837e6c48e90d | 96 | CoreAPI(ISerial * serial, bool escape); |
yangcq88517 | 0:837e6c48e90d | 97 | |
yangcq88517 | 0:837e6c48e90d | 98 | ~CoreAPI(); |
yangcq88517 | 0:837e6c48e90d | 99 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 100 | /** Set whether to verify checksum during receiving, default is not verify. |
yangcq88517 | 1:3dc0ec2f9fd6 | 101 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 102 | * @param isCheck true only to process API frame when checksum matches. |
yangcq88517 | 1:3dc0ec2f9fd6 | 103 | * false ignore the checksum. |
yangcq88517 | 1:3dc0ec2f9fd6 | 104 | */ |
yangcq88517 | 0:837e6c48e90d | 105 | void setVerifyChecksum(bool isCheck); |
yangcq88517 | 0:837e6c48e90d | 106 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 107 | /// Start send and process response, must call this method before starting processing data. |
yangcq88517 | 0:837e6c48e90d | 108 | void start(); |
yangcq88517 | 0:837e6c48e90d | 109 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 110 | /// Stop the serial port. |
yangcq88517 | 0:837e6c48e90d | 111 | void stop(); |
yangcq88517 | 0:837e6c48e90d | 112 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 113 | /** A general function to send frame out |
yangcq88517 | 1:3dc0ec2f9fd6 | 114 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 115 | * @param request any API frame |
yangcq88517 | 1:3dc0ec2f9fd6 | 116 | */ |
yangcq88517 | 0:837e6c48e90d | 117 | void send(APIFrame * request); |
yangcq88517 | 0:837e6c48e90d | 118 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 119 | /** Read the next avaliable API frame, and the type of fram can be retrieved from getFrameType(). |
yangcq88517 | 1:3dc0ec2f9fd6 | 120 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 121 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 122 | */ |
yangcq88517 | 0:837e6c48e90d | 123 | APIFrame * getResponse(); |
yangcq88517 | 0:837e6c48e90d | 124 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 125 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 126 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 127 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 128 | */ |
yangcq88517 | 0:837e6c48e90d | 129 | XBeeRx64Indicator * getXBeeRx64(); |
yangcq88517 | 0:837e6c48e90d | 130 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 131 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 132 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 133 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 134 | */ |
yangcq88517 | 0:837e6c48e90d | 135 | XBeeRx16Indicator * getXBeeRx16(); |
yangcq88517 | 0:837e6c48e90d | 136 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 137 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 138 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 139 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 140 | */ |
yangcq88517 | 0:837e6c48e90d | 141 | XBeeRx64IOSampleIndicator * getXBeeRx64IOSample(); |
yangcq88517 | 0:837e6c48e90d | 142 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 143 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 144 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 145 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 146 | */ |
yangcq88517 | 0:837e6c48e90d | 147 | XBeeRx16IOSampleIndicator * getXBeeRx16IOSample(); |
yangcq88517 | 0:837e6c48e90d | 148 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 149 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 150 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 151 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 152 | */ |
yangcq88517 | 0:837e6c48e90d | 153 | XBeeTxStatusIndicator * getXBeeTxStatus(); |
yangcq88517 | 0:837e6c48e90d | 154 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 155 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 156 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 157 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 158 | */ |
yangcq88517 | 0:837e6c48e90d | 159 | ATCommandIndicator * getATCommand(); |
yangcq88517 | 3:6b205ec8624b | 160 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 161 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 162 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 163 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 164 | */ |
yangcq88517 | 0:837e6c48e90d | 165 | ModemStatusIndicator * getModemStatus(); |
yangcq88517 | 3:6b205ec8624b | 166 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 167 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 168 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 169 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 170 | */ |
yangcq88517 | 0:837e6c48e90d | 171 | ZigBeeTxStatusIndicator * getZigBeeTxStatus(); |
yangcq88517 | 3:6b205ec8624b | 172 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 173 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 174 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 175 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 176 | */ |
yangcq88517 | 0:837e6c48e90d | 177 | ZigBeeRxIndicator * getZigBeeRx(); |
yangcq88517 | 3:6b205ec8624b | 178 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 179 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 180 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 181 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 182 | */ |
yangcq88517 | 0:837e6c48e90d | 183 | ZigBeeExplicitRxIndicator * getZigBeeExplicitRx(); |
yangcq88517 | 3:6b205ec8624b | 184 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 185 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 186 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 187 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 188 | */ |
yangcq88517 | 0:837e6c48e90d | 189 | ZigBeeIOSampleIndicator * getZigBeeIOSample(); |
yangcq88517 | 3:6b205ec8624b | 190 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 191 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 192 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 193 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 194 | */ |
yangcq88517 | 0:837e6c48e90d | 195 | SensorReadIndicator * getSensorRead(); |
yangcq88517 | 3:6b205ec8624b | 196 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 197 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 198 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 199 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 200 | */ |
yangcq88517 | 0:837e6c48e90d | 201 | NodeIdentificationIndicator * getNodeIdentification(); |
yangcq88517 | 3:6b205ec8624b | 202 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 203 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 204 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 205 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 206 | */ |
yangcq88517 | 0:837e6c48e90d | 207 | RemoteCommandIndicator * getRemoteCommand(); |
yangcq88517 | 3:6b205ec8624b | 208 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 209 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 210 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 211 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 212 | */ |
yangcq88517 | 0:837e6c48e90d | 213 | RouteRecordIndicator * getRouteRecord(); |
yangcq88517 | 3:6b205ec8624b | 214 | |
yangcq88517 | 1:3dc0ec2f9fd6 | 215 | /** Read the next avaliable API frame. |
yangcq88517 | 1:3dc0ec2f9fd6 | 216 | * |
yangcq88517 | 1:3dc0ec2f9fd6 | 217 | * @returns a API frame, NULL means data not avaliable. |
yangcq88517 | 1:3dc0ec2f9fd6 | 218 | */ |
yangcq88517 | 0:837e6c48e90d | 219 | ManyToOneRouteIndicator * getManyToOneRoute(); |
yangcq88517 | 4:a0f1fba6c2fb | 220 | |
yangcq88517 | 6:5f31ddc17239 | 221 | XBeeTxStatusIndicator * sendXBeeTx16(Address * remoteAddress, OptionsBase * option, const unsigned char * payload, int offset, int length); |
yangcq88517 | 3:6b205ec8624b | 222 | |
yangcq88517 | 6:5f31ddc17239 | 223 | XBeeTxStatusIndicator * sendXBeeTx64(Address * remoteAddress, OptionsBase * option, const unsigned char * payload, int offset, int length); |
yangcq88517 | 3:6b205ec8624b | 224 | |
yangcq88517 | 6:5f31ddc17239 | 225 | ATCommandIndicator * sendATCommand(const char * command, bool applyChange, const unsigned char * parameter = NULL, int offset = 0, int length = 0); |
yangcq88517 | 3:6b205ec8624b | 226 | |
yangcq88517 | 6:5f31ddc17239 | 227 | RemoteCommandIndicator * sendRemoteATCommand(Address * remoteAddress, const char * command, OptionsBase * transmitOptions, const unsigned char * parameter = NULL, int parameterOffset = 0, int parameterLength = 0); |
yangcq88517 | 3:6b205ec8624b | 228 | |
yangcq88517 | 6:5f31ddc17239 | 229 | ZigBeeTxStatusIndicator * sendZigBeeTx(Address * remoteAddress, OptionsBase * option, const unsigned char * payload, int offset, int length); |
yangcq88517 | 3:6b205ec8624b | 230 | |
yangcq88517 | 6:5f31ddc17239 | 231 | ZigBeeTxStatusIndicator * sendZigBeeExplicitTx(ExplicitAddress * remoteAddress, OptionsBase * option, const unsigned char * payload, int offset, int length); |
yangcq88517 | 3:6b205ec8624b | 232 | |
yangcq88517 | 3:6b205ec8624b | 233 | /** |
yangcq88517 | 3:6b205ec8624b | 234 | * @param function |
yangcq88517 | 4:a0f1fba6c2fb | 235 | * DISABLED = 0x00, |
yangcq88517 | 4:a0f1fba6c2fb | 236 | * RESERVED_FOR_PIN_SPECIFIC_ALTERNATE_FUNCTIONALITIES = 0x01, |
yangcq88517 | 4:a0f1fba6c2fb | 237 | * ANALOG_INPUT_SINGLE_ENDED = 0x02, |
yangcq88517 | 4:a0f1fba6c2fb | 238 | * DIGITAL_INPUT_MONITORED = 0x03, |
yangcq88517 | 4:a0f1fba6c2fb | 239 | * DIGITAL_OUTPUT_DEFAULT_LOW = 0x04, |
yangcq88517 | 4:a0f1fba6c2fb | 240 | * DIGITAL_OUTPUT_DEFAULT_HIGH = 0x05, |
yangcq88517 | 4:a0f1fba6c2fb | 241 | * ALTERNATE_FUNCTIONALITIES_WHERE_APPLICABLE = 0x06//0x06~0x09 |
yangcq88517 | 3:6b205ec8624b | 242 | */ |
yangcq88517 | 6:5f31ddc17239 | 243 | ATCommandIndicator * setPinFunction(Pin * pin, unsigned char function); |
yangcq88517 | 3:6b205ec8624b | 244 | |
yangcq88517 | 4:a0f1fba6c2fb | 245 | ATCommandIndicator * setIODetection(Pin ** pins, int size); |
yangcq88517 | 3:6b205ec8624b | 246 | |
yangcq88517 | 3:6b205ec8624b | 247 | /** |
yangcq88517 | 3:6b205ec8624b | 248 | * @param function |
yangcq88517 | 4:a0f1fba6c2fb | 249 | * DISABLED = 0x00, |
yangcq88517 | 4:a0f1fba6c2fb | 250 | * RESERVED_FOR_PIN_SPECIFIC_ALTERNATE_FUNCTIONALITIES = 0x01, |
yangcq88517 | 4:a0f1fba6c2fb | 251 | * ANALOG_INPUT_SINGLE_ENDED = 0x02, |
yangcq88517 | 4:a0f1fba6c2fb | 252 | * DIGITAL_INPUT_MONITORED = 0x03, |
yangcq88517 | 4:a0f1fba6c2fb | 253 | * DIGITAL_OUTPUT_DEFAULT_LOW = 0x04, |
yangcq88517 | 4:a0f1fba6c2fb | 254 | * DIGITAL_OUTPUT_DEFAULT_HIGH = 0x05, |
yangcq88517 | 4:a0f1fba6c2fb | 255 | * ALTERNATE_FUNCTIONALITIES_WHERE_APPLICABLE = 0x06//0x06~0x09 |
yangcq88517 | 3:6b205ec8624b | 256 | */ |
yangcq88517 | 6:5f31ddc17239 | 257 | RemoteCommandIndicator * setRemotePinFunction(Address * remoteAddress, Pin * pin, unsigned char function); |
yangcq88517 | 3:6b205ec8624b | 258 | |
yangcq88517 | 4:a0f1fba6c2fb | 259 | RemoteCommandIndicator * setRemoteIODetection(Address * remoteAddress, Pin ** pins, int size); |
yangcq88517 | 3:6b205ec8624b | 260 | |
yangcq88517 | 3:6b205ec8624b | 261 | /// <summary> |
yangcq88517 | 3:6b205ec8624b | 262 | /// The command will immediately return an "OK" response. The data will follow in the normal API format for DIO data event. |
yangcq88517 | 3:6b205ec8624b | 263 | /// </summary> |
yangcq88517 | 3:6b205ec8624b | 264 | /// <returns>true if the command is "OK", false if no IO is enabled.</returns> |
yangcq88517 | 3:6b205ec8624b | 265 | bool forceXBeeLocalIOSample(); |
yangcq88517 | 3:6b205ec8624b | 266 | |
yangcq88517 | 3:6b205ec8624b | 267 | /// <summary> |
yangcq88517 | 3:6b205ec8624b | 268 | /// Return 1 IO sample from the local module. |
yangcq88517 | 3:6b205ec8624b | 269 | /// </summary> |
yangcq88517 | 3:6b205ec8624b | 270 | /// <returns></returns> |
yangcq88517 | 3:6b205ec8624b | 271 | IOSamples * forceZigBeeLocalIOSample(); |
yangcq88517 | 3:6b205ec8624b | 272 | |
yangcq88517 | 3:6b205ec8624b | 273 | /// <summary> |
yangcq88517 | 3:6b205ec8624b | 274 | /// Return 1 IO sample only, Samples before TX (IT) does not affect. |
yangcq88517 | 3:6b205ec8624b | 275 | /// </summary> |
yangcq88517 | 3:6b205ec8624b | 276 | /// <param name="remote"Remote address of the device></param> |
yangcq88517 | 3:6b205ec8624b | 277 | /// <returns></returns> |
yangcq88517 | 3:6b205ec8624b | 278 | IOSamples * forceXBeeRemoteIOSample(Address * remote); |
yangcq88517 | 3:6b205ec8624b | 279 | |
yangcq88517 | 3:6b205ec8624b | 280 | /// <summary> |
yangcq88517 | 3:6b205ec8624b | 281 | /// Return 1 IO sample only. |
yangcq88517 | 3:6b205ec8624b | 282 | /// </summary> |
yangcq88517 | 3:6b205ec8624b | 283 | /// <param name="remote">Remote address of the device</param> |
yangcq88517 | 3:6b205ec8624b | 284 | /// <returns></returns> |
yangcq88517 | 3:6b205ec8624b | 285 | IOSamples * forceZigBeeRemoteIOSample(Address * remote); |
yangcq88517 | 0:837e6c48e90d | 286 | }; |
yangcq88517 | 0:837e6c48e90d | 287 | |
yangcq88517 | 3:6b205ec8624b | 288 | #endif |