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