SZS ez430-RF2480 1.0

ZigBee Sensor Network with synchronized time and time-stamped measurements.
cc2480ai.c
Go to the documentation of this file.
1 /*
2  * cc2480ai.c
3  *
4  * Date: 19/06/2014
5  * Author: Fernando Biazi Nascimento
6  * Copyright © 2014 Fernando Biazi Nascimento. All rights reserved.
7  *
8  * License of use and copy on file license.txt
9  *
10  */
11 
24 /*
25  * CC2480 Application Interface
26  * based on swra175a.pdf section 6
27  *
28  * Reference connections (as in "CC2480 Target Board Schematics_1_4.pdf"):
29  * MSP430 in master mode
30  *
31  * (MSP430 pin number; pin name; config) <-> BUS name <-> (CC2480 pin number; pin name)
32  *
33  * (MSP430 26 P3.7: GPIO ) -> RESET_N -> (CC2480 10 RESETn)
34  *
35  * (MSP430 15 P4.0: GPIO ) -> CFG0 -> (CC2480 11 CFG0) - 1=32KHz crystal installed; 0=not
36  * (MSP430 16 P4.1: GPIO ) -> CFG1 -> (CC2480 12 CFG1) - 1=SPI; 0=UART
37  *
38  * (MSP430 03 P2.6: GPIO ) <- SRDY <- (CC2480 05 SRDY)
39  * (MSP430 25 P3.6: GPIO ) -> MRDY -> (CC2480 06 MRDY)
40  *
41  * (MSP430 09 P3.0: UCB0STE ) -> SS/CT -> (CC2480 15 SS/CT) - disabled in 3-pin SPI
42  * UCxSTE chooses between master active/inactive
43  *
44  * (MSP430 10 P3.1: UCB0SIMO) -> SI -> (CC2480 14 SI/TX)
45  * (MSP430 11 P3.2: UCB0SOMI) <- SO <- (CC2480 13 SO/RX)
46  * (MSP430 12 P3.3: UCB0CLK ) -> C/RT -> (CC2480 16 C/RT)
47  *
48  * (MSP430 17 P4.2: GPIO ) -> P_4.2 -> (CC2480 45 NC)
49  * (MSP430 18 P4.3: GPIO ) -> P_4.3 -> (CC2480 46 NC)
50  *
51  * From "swra175a.pdf":
52  *
53  * Frame format:
54  * ---------+------------------
55  * Bytes | 1 | 2 | 0-253 |
56  * +--------+---------+-------+
57  * Information | Length | Command | Data |
58  * ---------+------------------
59  *
60  * -------------------+-------
61  * Byte | Cmd0 | Cmd1 |
62  * -------+-----------+------+
63  * Bits | 7-5 | 4-0 | 7-0 |
64  * +------+-----------+------+
65  * Information | Type | Subsystem | ID |
66  * -------+-------------------
67  *
68  * Type
69  * 0: 0x00 POLL. Used to retrieve data, length, subsystem and id are set to 0;
70  * 1: 0x20 SREQ. Synchronous request;
71  * 2: 0x40 AREQ. Asynchronous request;
72  * 3: 0x60 SRSP. Synchronous response;
73  * 4-7: Reserved.
74  *
75  * Subsystem
76  * 0: Reserved
77  * 1: SYS interface
78  * 2: Reserved
79  * 3: Reserved
80  * 4: AF interface
81  * 5: ZDO interface
82  * 6: Simple API interface
83  * 7-32: Reserved
84  *
85  * ID
86  * Command ID, maps to a particular interface message. 0-255
87  *
88  */
89 
90 /*
91  * ======== Standard MSP430 includes ========
92  */
93 #include <msp430.h>
94 
95 /*
96  * ======== Includes ========
97  */
98 #include "cc2480ai.h"
99 #include "spi.h"
100 #include "nwk.h"
101 
102 /*
103  * ======== Constants ========
104  */
105 
106 /*
107  * ======== Macros ========
108  */
109 
134 #define CCAI_MSGP_SYS_RESET_IND_CMD 0x4180
135 
138 #define CCAI_MSGR_SYS_VERION 0x6102
139 
142 #define CCAI_MSGR_SYS_OSAL_NV_READ 0x6108
143 
146 #define CCAI_MSGR_SYS_OSAL_NV_WRITE 0x6109
147 
150 #define CCAI_MSGR_SYS_OSAL_START_TIMER 0x610A
151 
154 #define CCAI_MSGR_SYS_OSAL_STOP_TIMER 0x610B
155 
158 #define CCAI_MSGP_SYS_OSAL_TIMER_EXPIRED 0x4181
159 
162 #define CCAI_MSGR_SYS_RANDOM 0x610C
163 
166 #define CCAI_MSGR_SYS_ADC_READ 0x610D
167 
170 #define CCAI_MSGR_SYS_GPIO 0x610E
171 
174 #define CCAI_MSGR_SYS_TEST_LOOPBACK 0x6141
175 
185 #define CCAI_MSGR_ZB_READ_CONFIGURATION 0x6604
186 
189 #define CCAI_MSGR_ZB_WRITE_CONFIGURATION 0x6605
190 
200 #define CCAI_MSGR_ZB_APP_REGISTER_REQUEST 0x660A
201 
204 #define CCAI_MSGR_ZB_START_REQUEST 0x6600
205 
208 #define CCAI_MSGP_ZB_START_CONFIRM 0x4680
209 
212 #define CCAI_MSGR_ZB_PERMIT_JOINING_REQUEST 0x6608
213 
216 #define CCAI_MSGR_ZB_BIND_DEVICE 0x6601
217 
220 #define CCAI_MSGP_ZB_BIND_CONFIRM 0x4681
221 
224 #define CCAI_MSGR_ZB_ALLOW_BIND 0x6602
225 
228 #define CCAI_MSGP_ZB_ALLOW_BIND_CONFIRM 0x4682
229 
232 #define CCAI_MSGR_ZB_SEND_DATA_REQUEST 0x6603
233 
236 #define CCAI_MSGP_ZB_SEND_DATA_CONFIRM 0x4683
237 
240 #define CCAI_MSGP_ZB_RECEIVE_DATA_INDICATION 0x4687
241 
244 #define CCAI_MSGR_ZB_GET_DEVICE_INFO 0x6606
245 
248 #define CCAI_MSGR_ZB_FIND_DEVICE_REQUEST 0x6607
249 
252 #define CCAI_MSGP_ZB_FIND_DEVICE_CONFIRM 0x4685
253 
263 #define CCAI_MSGR_AF_REGISTER 0x6400
264 
267 #define CCAI_MSGR_AF_DATA_REQUEST 0x6401
268 
271 #define CCAI_MSGP_AF_DATA_CONFIRM 0x4480
272 
275 #define CCAI_MSGP_AF_INCOMING_MSG 0x4481
276 
286 #define CCAI_MSGR_ZDO_NWK_ADDR_REQ 0x6500
287 
290 #define CCAI_MSGP_ZDO_NWK_ADDR_RSP 0x4580
291 
294 #define CCAI_MSGR_ZDO_IEEE_ADDR_REQ 0x6501
295 
298 #define CCAI_MSGP_ZDO_IEEE_ADDR_RSP 0x4581
299 
302 #define CCAI_MSGR_ZDO_NODE_DESC_REQ 0x6502
303 
306 #define CCAI_MSGP_ZDO_NODE_DESC_RSP 0x4582
307 
310 #define CCAI_MSGR_ZDO_SIMPLE_DESC_REQ 0x6504
311 
314 #define CCAI_MSGP_ZDO_SIMPLE_DESC_RSP 0x4584
315 
318 #define CCAI_MSGR_ZDO_ACTIVE_EP_REQ 0x6505
319 
322 #define CCAI_MSGP_ZDO_ACTIVE_EP_RSP 0x4585
323 
326 #define CCAI_MSGR_ZDO_MATCH_DESC_REQ 0x6506
327 
330 #define CCAI_MSGP_ZDO_MATCH_DESC_RSP 0x4586
331 
334 #define CCAI_MSGP_ZDO_MATCH_DESC_RSP_SENT 0x45C2
335 
338 #define CCAI_MSGR_ZDO_USER_DESC_REQ 0x6508
339 
342 #define CCAI_MSGP_ZDO_USER_DESC_RSP 0x4588
343 
346 #define CCAI_MSGR_ZDO_USER_DESC_SET 0x650B
347 
350 #define CCAI_MSGP_ZDO_USER_DESC_CONF 0x4589
351 
354 #define CCAI_MSGR_ZDO_END_DEVICE_ANNCE 0x650A
355 
358 #define CCAI_MSGP_ZDO_END_DEVICE_ANNCE_IND 0x45C1
359 
362 #define CCAI_MSGR_ZDO_END_DEVICE_BIND_REQ 0x6520 // Unclear sender from this line
363 
366 #define CCAI_MSGP_ZDO_END_DEVICE_BIND_RSP 0x45A0
367 
370 #define CCAI_MSGR_ZDO_BIND_REQ 0x6521
371 
374 #define CCAI_MSGP_ZDO_BIND_RSP 0x45A1
375 
378 #define CCAI_MSGR_ZDO_UNBIND_REQ 0x6522
379 
382 #define CCAI_MSGP_ZDO_UNBIND_RSP 0x45A2
383 
386 #define CCAI_MSGR_ZDO_MGMT_LQI_REQ 0x6531
387 
390 #define CCAI_MSGP_ZDO_MGMT_LQI_RSP 0x45B1
391 
394 #define CCAI_MSGR_ZDO_MGMT_LEAVE_REQ 0x6534
395 
398 #define CCAI_MSGP_ZDO_MGMT_LEAVE_RSP 0x45B4
399 
402 #define CCAI_MSGR_ZDO_MGMT_PERMIT_JOIN_REQ 0x6536
403 
406 #define CCAI_MSGP_ZDO_MGMT_PERMIT_JOIN_RSP 0x45B6
407 
410 #define CCAI_MSGP_ZDO_STATE_CHANGE_IND 0x45C0
411 
417 /*
418  * ======== Types ========
419  */
420 
424 typedef enum ccai_state {
432 } ccai_state;
433 
434 /*
435  * ======== Global Variables ========
436  */
437 
438 /*
439  * ======== Local Variables ========
440  */
441 
469 
470 /*
471  * ======== Local Functions ========
472  */
473 
474 // Incoming messages
475 // ccai_p: poll (may be response to an earlier AREQ or SREQ)
476 // ccai_r: response to a SREQ
477 // Configuration interface
478 void ccai_p_sys_reset_ind();
479 void ccai_r_sys_version();
485 void ccai_r_sys_random();
486 void ccai_r_sys_adc_read();
487 void ccai_r_sys_gpio();
489 // Configuration interface
492 // Simple API interface
497 void ccai_r_zb_bind_device();
499 void ccai_r_zb_allow_bind();
507 // AF interface
508 void ccai_r_af_register();
512 // ZDO interface
532 void ccai_r_zdo_end_device_bind_req(); // unclear sender from this line
534 void ccai_r_zdo_bind_req();
535 void ccai_p_zdo_bind_rsp();
536 void ccai_r_zdo_unbind_req();
537 void ccai_p_zdo_unbind_rsp();
545 
546 /*
547  * ================
548  */
549 
557 void ccai_init() {
559  P4OUT |= BIT0 | BIT1; // cfg0 - 32KHz crystal, cfg1 - SPI
560  P4DIR |= BIT0 | BIT1;
561 }
562 
573 UInt16 ccai_proccess() {
574  switch (ccai_currentState) {
575  case CCAI_S_INIT:
576  P3OUT &= ~BIT7;
578  P4OUT |= BIT0 | BIT1; // cfg0 - 32KHz crystal, cfg1 - SPI
579  P4DIR |= BIT0 | BIT1;
580  spi_init();
581  return 10;
582  case CCAI_S_POWERUPHOLD:
583  P3OUT |= BIT7;
585  return 10;
586  case CCAI_S_POWERUPWAIT:
587  // Then wait for command SYS_RESET_IND_CMD, the called function will set next state
588  return 10;
589  case CCAI_S_DORESET:
590  // reset again
591  P3OUT &= ~BIT7;
593  return 10;
594  case CCAI_S_RESETHOLD:
595  P3OUT |= BIT7;
597  return 10;
598  case CCAI_S_RESETWAIT:
599  // Then wait for command SYS_RESET_IND_CMD, the called function will set next state
600  return 250;
601  case CCAI_S_RUNNING:
602  return 1000;
603  default:
605  return 1;
606  }
607 }
608 
618 }
619 
629 }
630 
640  UInt16 cmd;
641  cmd = spi_buf[1];
642  cmd <<= 8;
643  cmd |= spi_buf[2];
644  switch (cmd) {
647  break;
650  break;
653  break;
656  break;
659  break;
662  break;
665  break;
668  break;
671  break;
672  case CCAI_MSGR_SYS_GPIO:
673  ccai_r_sys_gpio();
674  break;
677  break;
678  // Configuration interface
681  break;
684  break;
685  // Simple API interface
688  break;
691  break;
694  break;
697  break;
700  break;
703  break;
706  break;
709  break;
712  break;
715  break;
718  break;
721  break;
724  break;
727  break;
728  // AF interface
731  break;
734  break;
737  break;
740  break;
741  // ZDO interface
744  break;
747  break;
750  break;
753  break;
756  break;
759  break;
762  break;
765  break;
768  break;
771  break;
774  break;
777  break;
780  break;
783  break;
786  break;
789  break;
792  break;
795  break;
798  break;
801  break;
804  break;
807  break;
810  break;
813  break;
816  break;
819  break;
822  break;
825  break;
828  break;
831  break;
834  break;
837  break;
838  default:
839  break;
840  }
841 }
842 
853  if (spi_reqBegin(1, 0x41, 0x00)) {
854  spi_reqData(1, "\x00");
855  spi_reqEnd(FALSE);
856  return 1;
857  }
858  return 0;
859 }
860 
869  switch (ccai_currentState) {
870  case CCAI_S_POWERUPWAIT:
871  // configure initial device type
872  nwk_setDeviceType(NWK_DEVTYPE_DEFALUT); // This will call ccai_resetLight()
873  break;
874  default:
876  // if nwk_state is suspended, wake up it, else configure the network.
877  if (!nwk_wakeUp())
878  nwk_resetResume();
879  break;
880  }
881 }
882 
893  if (spi_reqBegin(0, 0x21, 0x02)) {
894  spi_reqEnd(FALSE);
895  return 1;
896  }
897  return 0;
898 }
899 
908 
909 }
910 
923 UInt8 ccai_s_sys_osal_nv_read(UInt16 id, UInt8 offset) {
924  if (spi_reqBegin(3, 0x21, 0x08)) {
925  spi_reqData(2, &id);
926  spi_reqData(1, &offset);
927  spi_reqEnd(FALSE);
928  return 1;
929  }
930  return 0;
931 }
932 
941 
942 }
943 
958 UInt8 ccai_s_sys_osal_nv_write(UInt16 id, UInt8 offset, UInt8 len, char *pBuf) {
959  if (len > 16) {
960  return 0;
961  }
962  if (spi_reqBegin(4 + len, 0x21, 0x09)) {
963  spi_reqData(2, &id);
964  spi_reqData(1, &offset);
965  spi_reqData(1, &len);
966  spi_reqData(len, pBuf);
967  spi_reqEnd(FALSE);
968  return 1;
969  }
970  return 0;
971 }
972 
981 
982 }
983 
996 UInt8 ccai_s_sys_osal_start_timer(UInt8 id, UInt16 timeout) {
997  if (spi_reqBegin(3, 0x21, 0x0A)) {
998  spi_reqData(1, &id);
999  spi_reqData(2, &timeout);
1000  spi_reqEnd(FALSE);
1001  return 1;
1002  }
1003  return 0;
1004 }
1005 
1014 
1015 }
1016 
1029  if (spi_reqBegin(1, 0x21, 0x0B)) {
1030  spi_reqData(1, &id);
1031  spi_reqEnd(FALSE);
1032  return 1;
1033  }
1034  return 0;
1035 }
1036 
1045 
1046 }
1047 
1056 
1057 }
1058 
1069  if (spi_reqBegin(0, 0x21, 0x0C)) {
1070  spi_reqEnd(FALSE);
1071  return 1;
1072  }
1073  return 0;
1074 }
1075 
1084 
1085 }
1086 
1099 UInt8 ccai_s_sys_adc_read(UInt8 channel, UInt8 resolution) {
1100  if (spi_reqBegin(2, 0x21, 0x0D)) {
1101  spi_reqData(1, &channel);
1102  spi_reqData(1, &resolution);
1103  spi_reqEnd(FALSE);
1104  return 1;
1105  }
1106  return 0;
1107 }
1108 
1117 
1118 }
1119 
1132 UInt8 ccai_s_sys_gpio(UInt8 operation, UInt8 value) {
1133  if (spi_reqBegin(2, 0x21, 0x0E)) {
1134  spi_reqData(1, &operation);
1135  spi_reqData(1, &value);
1136  spi_reqEnd(FALSE);
1137  return 1;
1138  }
1139  return 0;
1140 }
1141 
1150 
1151 }
1152 
1166 UInt8 ccai_a_sys_test_rf(UInt8 testMode, UInt16 frequency, UInt8 txPower) {
1167  if (spi_reqBegin(4, 0x41, 0x40)) {
1168  spi_reqData(1, &testMode);
1169  spi_reqData(2, &frequency);
1170  spi_reqData(1, &txPower);
1171  spi_reqEnd(FALSE);
1172  return 1;
1173  }
1174  return 0;
1175 }
1176 
1189 UInt8 ccai_s_sys_test_loopback(UInt8 len, char *pBuf) {
1190  if (len > 253) {
1191  return 0;
1192  }
1193  if (spi_reqBegin(len, 0x21, 0x41)) {
1194  spi_reqData(len, pBuf);
1195  spi_reqEnd(FALSE);
1196  return 1;
1197  }
1198  return 0;
1199 }
1200 
1209 
1210 }
1211 
1223 UInt8 ccai_s_zb_read_configuration(UInt8 configId) {
1224  if (spi_reqBegin(1, 0x26, 0x04)) {
1225  spi_reqData(1, &configId);
1226  spi_reqEnd(FALSE);
1227  return 1;
1228  }
1229  return 0;
1230 }
1231 
1240 
1241 }
1242 
1256 UInt8 ccai_s_zb_write_configuration(UInt8 configId, UInt8 len, void *pBuf) {
1257  if ((len == 0) || (len > 128)) {
1258  return 0;
1259  }
1260  if (spi_reqBegin(2 + len, 0x26, 0x05)) {
1261  spi_reqData(1, &configId);
1262  spi_reqData(1, &len);
1263  spi_reqData(len, pBuf);
1264  spi_reqEnd(FALSE);
1265  return 1;
1266  }
1267  return 0;
1268 }
1269 
1279 }
1280 
1301 UInt8 ccai_s_zb_app_register_request(UInt8 appEndPoint, UInt16 appProfileId,
1302  UInt16 DeviceId, UInt8 DeviceVersion, UInt8 inputCommandsNum,
1303  char *InputCommandsList, UInt8 OutputCommandsNum,
1304  char *OutputCommandsList) {
1305  if (spi_reqBegin(9 + (inputCommandsNum << 1) + (OutputCommandsNum << 1),
1306  0x26, 0x0A)) {
1307  spi_reqData(1, &appEndPoint);
1308  spi_reqData(2, &appProfileId);
1309  spi_reqData(2, &DeviceId);
1310  spi_reqData(1, &DeviceVersion);
1311  spi_reqData(1, "\x00");
1312  spi_reqData(1, &inputCommandsNum);
1313  spi_reqData(inputCommandsNum << 1, InputCommandsList);
1314  spi_reqData(1, &OutputCommandsNum);
1315  spi_reqData(OutputCommandsNum << 1, OutputCommandsList);
1316  spi_reqEnd(FALSE);
1317  return 1;
1318  }
1319  return 0;
1320 }
1321 
1331 }
1332 
1343  if (spi_reqBegin(0, 0x26, 0x00)) {
1344  spi_reqEnd(FALSE);
1345  return 1;
1346  }
1347  return 0;
1348 }
1349 
1358  nwk_startRsp();
1359 }
1360 
1370 }
1371 
1386 UInt8 ccai_s_zb_permit_joining_request(UInt16 destination, UInt8 timeOut) {
1387  if (spi_reqBegin(3, 0x26, 0x08)) {
1388  spi_reqData(2, &destination);
1389  spi_reqData(1, &timeOut);
1390  spi_reqEnd(FALSE);
1391  return 1;
1392  }
1393  return 0;
1394 }
1395 
1405 }
1406 
1421 UInt8 ccai_s_zb_bind_device(UInt8 create, UInt16 commandId,
1422  uint64_t destination) {
1423  if (spi_reqBegin(11, 0x26, 0x01)) {
1424  spi_reqData(1, &create);
1425  spi_reqData(2, &commandId);
1426  spi_reqData(8, &destination);
1427  spi_reqEnd(TRUE);
1428  return 1;
1429  }
1430  return 0;
1431 }
1432 
1442 }
1443 
1453 }
1454 
1466 UInt8 ccai_s_zb_allow_bind(UInt8 timeout) {
1467  if (spi_reqBegin(1, 0x26, 0x02)) {
1468  spi_reqData(1, &timeout);
1469  spi_reqEnd(TRUE);
1470  return 1;
1471  }
1472  return 0;
1473 }
1474 
1484 }
1485 
1495 }
1496 
1517 UInt8 ccai_s_zb_send_data_request(UInt16 destination, UInt16 commandId,
1518  UInt8 handle, UInt8 ack, UInt8 radius, UInt8 len, void *pBuf) {
1519  if (len > 84) {
1520  return 0;
1521  }
1522  if (spi_reqBegin(8 + len, 0x26, 0x03)) {
1523  spi_reqData(2, &destination);
1524  spi_reqData(2, &commandId);
1525  spi_reqData(1, &handle);
1526  spi_reqData(1, &ack);
1527  spi_reqData(1, &radius);
1528  spi_reqData(1, &len);
1529  spi_reqData(len, pBuf);
1530  spi_reqEnd(FALSE);
1531  return 1;
1532  }
1533  return 0;
1534 }
1535 
1557 UInt8 ccai_s_zb_send_data_request_begin(UInt16 destination, UInt16 commandId,
1558  UInt8 handle, UInt8 ack, UInt8 radius, UInt8 len) {
1559  if (len > 84) {
1560  return 0;
1561  }
1562  if (spi_reqBegin(8 + len, 0x26, 0x03)) {
1563  spi_reqData(2, &destination);
1564  spi_reqData(2, &commandId);
1565  spi_reqData(1, &handle);
1566  spi_reqData(1, &ack);
1567  spi_reqData(1, &radius);
1568  spi_reqData(1, &len);
1569  return 1;
1570  }
1571  return 0;
1572 }
1573 
1588 UInt8 ccai_s_zb_send_data_request_payload(UInt8 len, void *pBuf) {
1589  return spi_reqData(len, pBuf);
1590 }
1591 
1604 void ccai_s_zb_send_data_request_end(UInt8 forwardToSerial) {
1605  spi_reqEnd(forwardToSerial);
1606 }
1607 
1616 
1617 }
1618 
1628 }
1629 
1638  // Data received from remote device
1639  nwk_rcv(spi_buf);
1640 }
1641 
1653 UInt8 ccai_s_zb_get_device_info(UInt8 param) {
1654  if (spi_reqBegin(1, 0x26, 0x06)) {
1655  spi_reqData(1, &param);
1656  spi_reqEnd(FALSE);
1657  return 1;
1658  }
1659  return 0;
1660 }
1661 
1671 }
1672 
1684 UInt8 ccai_s_zb_find_device_request(uint64_t searchKey) {
1685  if (spi_reqBegin(8, 0x26, 0x07)) {
1686  spi_reqData(8, &searchKey);
1687  spi_reqEnd(FALSE);
1688  return 1;
1689  }
1690  return 0;
1691 }
1692 
1701 
1702 }
1703 
1712 
1713 }
1714 
1725  return 0;
1726 }
1727 
1736 
1737 }
1738 
1749  return 0;
1750 }
1751 
1760 
1761 }
1762 
1771 
1772 }
1773 
1782 
1783 }
1784 
1795  return 0;
1796 }
1797 
1806 
1807 }
1808 
1817 
1818 }
1819 
1830  return 0;
1831 }
1832 
1841 
1842 }
1843 
1852 
1853 }
1854 
1865  return 0;
1866 }
1867 
1876 
1877 }
1878 
1887 
1888 }
1889 
1900  return 0;
1901 }
1902 
1911 
1912 }
1913 
1922 
1923 }
1924 
1935  return 0;
1936 }
1937 
1946 
1947 }
1948 
1957 
1958 }
1959 
1970  return 0;
1971 }
1972 
1981 
1982 }
1983 
1992 
1993 }
1994 
2003 
2004 }
2005 
2016  return 0;
2017 }
2018 
2027 
2028 }
2029 
2038 
2039 }
2040 
2051  return 0;
2052 }
2053 
2062 
2063 }
2064 
2073 
2074 }
2075 
2086  return 0;
2087 }
2088 
2097 
2098 }
2099 
2108 
2109 }
2110 
2121  return 0;
2122 }
2123 
2132 
2133 }
2134 
2143 
2144 }
2145 
2156  return 0;
2157 }
2158 
2167 
2168 }
2169 
2178 
2179 }
2180 
2191  return 0;
2192 }
2193 
2202 
2203 }
2204 
2213 
2214 }
2215 
2226  return 0;
2227 }
2228 
2237 
2238 }
2239 
2248 
2249 }
2250 
2261  return 0;
2262 }
2263 
2272 
2273 }
2274 
2285 
2286 }
2287 
2298  return 0;
2299 }
2300 
2309 
2310 }
2311 
2320 
2321 }
2322 
2331 
2332 }
2333 
#define CCAI_MSGP_ZB_RECEIVE_DATA_INDICATION
Sent by CC2480 to indicate that it has received a packet from a remote device.
Definition: cc2480ai.c:240
#define CCAI_MSGR_ZDO_UNBIND_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:378
#define CCAI_MSGP_ZDO_BIND_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:374
#define CCAI_MSGP_ZDO_MGMT_LEAVE_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:398
Network functions interface.
void ccai_p_af_data_confirm()
Not implemented.
Definition: cc2480ai.c:1770
#define CCAI_MSGR_ZDO_IEEE_ADDR_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:294
#define CCAI_MSGP_ZDO_NODE_DESC_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:306
void ccai_r_sys_osal_stop_timer()
Stop timer response.
Definition: cc2480ai.c:1044
#define CCAI_MSGP_ZDO_SIMPLE_DESC_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:314
UInt8 ccai_s_zdo_nwk_addr_req()
Not implemented.
Definition: cc2480ai.c:1794
void nwk_allow_bindConfirm(char *pBuf)
Allow bind confirmation.
Definition: nwk.c:912
UInt8 ccai_s_zb_start_request()
Start request.
Definition: cc2480ai.c:1342
void ccai_r_zb_find_device_request()
Find device response.
Definition: cc2480ai.c:1700
UInt8 ccai_s_sys_version()
Version request.
Definition: cc2480ai.c:892
void ccai_p_zdo_match_desc_rsp()
Not implemented.
Definition: cc2480ai.c:1991
Waiting for power-up report.
Definition: cc2480ai.c:427
void ccai_r_zb_send_data_request()
Send data response.
Definition: cc2480ai.c:1615
UInt8 spi_reqBegin(UInt8 len, UInt8 cmd0, UInt8 cmd1)
Request begin.
Definition: spi.c:352
UInt8 spi_reqData(UInt8 len, void *pBuf)
Request data.
Definition: spi.c:382
UInt8 ccai_s_zdo_user_desc_set()
Not implemented.
Definition: cc2480ai.c:2050
UInt8 ccai_s_zdo_user_desc_req()
Not implemented.
Definition: cc2480ai.c:2015
void ccai_p_zdo_end_device_annce_ind()
Not implemented.
Definition: cc2480ai.c:2107
#define CCAI_MSGR_ZB_ALLOW_BIND
Response to a request to put CC2480 in allow binding mode.
Definition: cc2480ai.c:224
void ccai_r_zdo_mgmt_lqi_req()
Not implemented.
Definition: cc2480ai.c:2236
void ccai_p_sys_osal_timer_expired()
Timer expired.
Definition: cc2480ai.c:1055
#define CCAI_MSGR_AF_REGISTER
Not yet implemented in this version.
Definition: cc2480ai.c:263
void ccai_r_zdo_match_desc_req()
Not implemented.
Definition: cc2480ai.c:1980
void ccai_r_zdo_user_desc_set()
Not implemented.
Definition: cc2480ai.c:2061
#define CCAI_MSGP_ZDO_MGMT_PERMIT_JOIN_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:406
UInt8 ccai_s_zb_find_device_request(uint64_t searchKey)
Find device request.
Definition: cc2480ai.c:1684
#define CCAI_MSGP_ZDO_ACTIVE_EP_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:322
#define CCAI_MSGP_ZB_SEND_DATA_CONFIRM
Sent from CC2480 to return the results from a ZB_SEND_DATA_REQUEST.
Definition: cc2480ai.c:236
#define CCAI_MSGR_AF_DATA_REQUEST
Not yet implemented in this version.
Definition: cc2480ai.c:267
void ccai_p_zb_bind_confirm()
Bind device confirmation.
Definition: cc2480ai.c:1451
#define CCAI_MSGR_ZDO_END_DEVICE_BIND_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:362
#define CCAI_MSGP_ZDO_END_DEVICE_BIND_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:366
void ccai_r_zdo_mgmt_permit_join_req()
Not implemented.
Definition: cc2480ai.c:2308
Waiting for power-up report.
Definition: cc2480ai.c:430
void ccai_p_zdo_node_desc_rsp()
Not implemented.
Definition: cc2480ai.c:1886
UInt8 ccai_s_sys_random()
Random request.
Definition: cc2480ai.c:1068
UInt8 ccai_s_sys_osal_start_timer(UInt8 id, UInt16 timeout)
Timer start request.
Definition: cc2480ai.c:996
void nwk_allow_bindRsp()
Allow bind response.
Definition: nwk.c:900
void ccai_p_zdo_user_desc_rsp()
Not implemented.
Definition: cc2480ai.c:2037
void ccai_r_af_register()
Not implemented.
Definition: cc2480ai.c:1735
void ccai_p_zb_start_confirm()
Start confirmation.
Definition: cc2480ai.c:1368
#define CCAI_MSGP_SYS_RESET_IND_CMD
Sent by CC2480 after a reset.
Definition: cc2480ai.c:134
void nwk_registerRsp(UInt8 status)
Register application response.
Definition: nwk.c:822
void ccai_r_zdo_bind_req()
Not implemented.
Definition: cc2480ai.c:2166
#define CCAI_MSGP_ZDO_STATE_CHANGE_IND
Not yet implemented in this version.
Definition: cc2480ai.c:410
UInt8 nwk_wakeUp()
Network wake up.
Definition: nwk.c:474
ccai_state ccai_currentState
Current state of the CC2480 Application Interface.
Definition: cc2480ai.c:468
void ccai_p_zb_receive_data_indication()
Receive data indication.
Definition: cc2480ai.c:1637
void nwk_setPermitJoinRsp()
Permit join response.
Definition: nwk.c:1118
#define CCAI_MSGR_ZDO_SIMPLE_DESC_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:310
#define CCAI_MSGP_ZDO_END_DEVICE_ANNCE_IND
Not yet implemented in this version.
Definition: cc2480ai.c:358
void nwk_configureWriteRsp(UInt8 status)
Response to a configuration write.
Definition: nwk.c:748
void ccai_r_sys_osal_nv_read()
Read memory response.
Definition: cc2480ai.c:940
void ccai_p_zdo_mgmt_permit_join_rsp()
Not implemented.
Definition: cc2480ai.c:2319
#define CCAI_MSGR_SYS_ADC_READ
Response to a request to read from CC2480 ADC.
Definition: cc2480ai.c:166
void ccai_r_zb_read_configuration()
Read configuration response.
Definition: cc2480ai.c:1239
#define CCAI_MSGP_ZB_FIND_DEVICE_CONFIRM
Sent by CC2480 to return the results from a ZB_FIND_DEVICE_REQUEST.
Definition: cc2480ai.c:252
UInt8 ccai_s_zb_bind_device(UInt8 create, UInt16 commandId, uint64_t destination)
Bind device request.
Definition: cc2480ai.c:1421
#define CCAI_MSGP_ZB_ALLOW_BIND_CONFIRM
Sent by CC2480 when it responds to a bind request from a remote device.
Definition: cc2480ai.c:228
UInt8 ccai_s_zb_send_data_request_payload(UInt8 len, void *pBuf)
Append data to the payload of send data request.
Definition: cc2480ai.c:1588
void ccai_p_zdo_user_desc_conf()
Not implemented.
Definition: cc2480ai.c:2072
void nwk_bind_deviceRsp()
Bind device response.
Definition: nwk.c:940
void ccai_r_zdo_unbind_req()
Not implemented.
Definition: cc2480ai.c:2201
#define CCAI_MSGR_ZB_FIND_DEVICE_REQUEST
Response to a request to determine the short address for a device in the network. ...
Definition: cc2480ai.c:248
#define CCAI_MSGR_ZDO_MGMT_LEAVE_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:394
Holding reset signal low.
Definition: cc2480ai.c:426
#define CCAI_MSGR_ZDO_USER_DESC_SET
Not yet implemented in this version.
Definition: cc2480ai.c:346
void ccai_r_zb_start_request()
Start response.
Definition: cc2480ai.c:1357
void ccai_p_zdo_match_desc_rsp_sent()
Not implemented.
Definition: cc2480ai.c:2002
UInt8 ccai_s_zdo_active_ep_req()
Not implemented.
Definition: cc2480ai.c:1934
UInt8 ccai_s_sys_osal_stop_timer(UInt8 id)
Stop timer request.
Definition: cc2480ai.c:1028
#define CCAI_MSGP_ZDO_MATCH_DESC_RSP_SENT
Not yet implemented in this version.
Definition: cc2480ai.c:334
#define CCAI_MSGR_SYS_RANDOM
Response to a request to read a 16 bit random number.
Definition: cc2480ai.c:162
void ccai_p_zb_allow_bind_confirm()
Confirm of a new devide bound.
Definition: cc2480ai.c:1493
UInt8 ccai_s_zb_allow_bind(UInt8 timeout)
Allow bind request.
Definition: cc2480ai.c:1466
UInt8 ccai_s_zdo_end_device_bind_req()
Not implemented.
Definition: cc2480ai.c:2120
void ccai_resetFull()
Full reset.
Definition: cc2480ai.c:616
void ccai_r_zb_get_device_info()
Get device information response.
Definition: cc2480ai.c:1669
UInt8 ccai_s_zb_get_device_info(UInt8 param)
Get device information request.
Definition: cc2480ai.c:1653
void ccai_p_af_incoming_msg()
Not implemented.
Definition: cc2480ai.c:1781
Reset afer firt configuration.
Definition: cc2480ai.c:428
void ccai_p_zdo_active_ep_rsp()
Not implemented.
Definition: cc2480ai.c:1956
SPI interface.
#define CCAI_MSGR_ZDO_ACTIVE_EP_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:318
#define CCAI_MSGR_ZDO_NWK_ADDR_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:286
void ccai_p_zdo_mgmt_lqi_rsp()
Not implemented.
Definition: cc2480ai.c:2247
#define CCAI_MSGR_ZB_START_REQUEST
Response to a request to start the ZigBee stack.
Definition: cc2480ai.c:204
void ccai_p_zdo_end_device_bind_rsp()
Not implemented.
Definition: cc2480ai.c:2142
Holding reset signal low.
Definition: cc2480ai.c:429
void nwk_startRsp()
Start network response.
Definition: nwk.c:849
void ccai_r_zb_bind_device()
Bind device response.
Definition: cc2480ai.c:1440
#define CCAI_MSGP_AF_DATA_CONFIRM
Not yet implemented in this version.
Definition: cc2480ai.c:271
#define CCAI_MSGR_SYS_TEST_LOOPBACK
Response to a request to test the physical interface, SPI or UART.
Definition: cc2480ai.c:174
#define CCAI_MSGR_ZB_WRITE_CONFIGURATION
Response to a request to write a configuration parameter.
Definition: cc2480ai.c:189
void nwk_setDeviceType(nwk_devType newType)
Set device type.
Definition: nwk.c:516
UInt8 ccai_s_zdo_mgmt_leave_req()
Not implemented.
Definition: cc2480ai.c:2260
#define CCAI_MSGR_ZDO_MGMT_LQI_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:386
#define CCAI_MSGR_ZDO_END_DEVICE_ANNCE
Not yet implemented in this version.
Definition: cc2480ai.c:354
UInt8 ccai_s_zb_send_data_request_begin(UInt16 destination, UInt16 commandId, UInt8 handle, UInt8 ack, UInt8 radius, UInt8 len)
Begin request to send data.
Definition: cc2480ai.c:1557
void ccai_r_zdo_mgmt_leave_req()
Not implemented.
Definition: cc2480ai.c:2271
#define CCAI_MSGP_AF_INCOMING_MSG
Not yet implemented in this version.
Definition: cc2480ai.c:275
#define CCAI_MSGP_ZDO_USER_DESC_CONF
Not yet implemented in this version.
Definition: cc2480ai.c:350
void ccai_r_sys_test_loopback()
Loopback test request.
Definition: cc2480ai.c:1208
void nwk_resetResume()
Resume from CC2480 reset.
Definition: nwk.c:548
#define CCAI_MSGR_SYS_GPIO
Response to a command to access the CC2480 GPIO.
Definition: cc2480ai.c:170
#define CCAI_MSGP_ZB_START_CONFIRM
Sent by CC2480 to return the results from a ZB_START_REQUEST.
Definition: cc2480ai.c:208
#define CCAI_MSGP_ZDO_MATCH_DESC_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:330
void ccai_r_zdo_end_device_annce()
Not implemented.
Definition: cc2480ai.c:2096
ccai_state
States of the CC2480 Application Interface.
Definition: cc2480ai.c:424
void ccai_p_zdo_nwk_addr_rsp()
Not implemented.
Definition: cc2480ai.c:1816
void ccai_r_sys_osal_start_timer()
Start timer response.
Definition: cc2480ai.c:1013
void ccai_r_sys_random()
Random response.
Definition: cc2480ai.c:1083
#define CCAI_MSGR_ZB_GET_DEVICE_INFO
Response to a request to read a device information property.
Definition: cc2480ai.c:244
UInt8 ccai_s_af_register()
Not implemented.
Definition: cc2480ai.c:1724
void ccai_resetLight()
Reset.
Definition: cc2480ai.c:627
#define CCAI_MSGP_ZDO_IEEE_ADDR_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:298
#define CCAI_MSGR_ZB_SEND_DATA_REQUEST
Response to a request to transmit data to another device.
Definition: cc2480ai.c:232
UInt8 ccai_s_zdo_node_desc_req()
Not implemented.
Definition: cc2480ai.c:1864
UInt8 ccai_s_sys_adc_read(UInt8 channel, UInt8 resolution)
Read ADC request.
Definition: cc2480ai.c:1099
void ccai_r_zb_allow_bind()
Allow bind response.
Definition: cc2480ai.c:1482
UInt8 ccai_s_sys_test_loopback(UInt8 len, char *pBuf)
Loopback test request.
Definition: cc2480ai.c:1189
#define CCAI_MSGR_SYS_OSAL_NV_READ
Response to a request to read an item from CC2480 NV memory.
Definition: cc2480ai.c:142
UInt8 ccai_s_zdo_end_device_annce()
Not implemented.
Definition: cc2480ai.c:2085
#define CCAI_MSGP_SYS_OSAL_TIMER_EXPIRED
Sent by CC2480 when a software timer event expires.
Definition: cc2480ai.c:158
void ccai_r_sys_adc_read()
Read ADC response.
Definition: cc2480ai.c:1116
#define CCAI_MSGP_ZDO_MGMT_LQI_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:390
void ccai_r_sys_gpio()
GPIO access response.
Definition: cc2480ai.c:1149
void ccai_r_af_data_request()
Not implemented.
Definition: cc2480ai.c:1759
char spi_buf[SPI_BUFSIZE]
SPI buffer, used to send and receive data.
Definition: spi.c:172
UInt8 ccai_s_zdo_simple_desc_req()
Not implemented.
Definition: cc2480ai.c:1899
#define CCAI_MSGR_ZDO_MATCH_DESC_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:326
void ccai_r_sys_version()
Version response.
Definition: cc2480ai.c:907
UInt8 ccai_a_sys_reset_req()
Reset Request.
Definition: cc2480ai.c:852
CC2480 running.
Definition: cc2480ai.c:431
void ccai_r_zb_write_configuration()
Write configuration response.
Definition: cc2480ai.c:1277
UInt8 ccai_s_sys_osal_nv_write(UInt16 id, UInt8 offset, UInt8 len, char *pBuf)
Write memory request.
Definition: cc2480ai.c:958
void nwk_rcv(char *pBuf)
Network receive.
Definition: nwk.c:1427
void ccai_p_zdo_state_change_ind()
Not implemented.
Definition: cc2480ai.c:2330
#define CCAI_MSGR_SYS_OSAL_START_TIMER
Response to a request to start a software timer.
Definition: cc2480ai.c:150
UInt8 ccai_s_zdo_bind_req()
Not implemented.
Definition: cc2480ai.c:2155
UInt8 ccai_s_sys_osal_nv_read(UInt16 id, UInt8 offset)
Read memory request.
Definition: cc2480ai.c:923
void ccai_process_message()
Proccess a received message.
Definition: cc2480ai.c:639
void nwk_send_dataConfirm(UInt8 dataHandle, UInt8 status)
Send data confirmation.
Definition: nwk.c:1404
CC2480 interface.
UInt8 ccai_s_zb_app_register_request(UInt8 appEndPoint, UInt16 appProfileId, UInt16 DeviceId, UInt8 DeviceVersion, UInt8 inputCommandsNum, char *InputCommandsList, UInt8 OutputCommandsNum, char *OutputCommandsList)
Application register request.
Definition: cc2480ai.c:1301
void spi_reqEnd(UInt8 forwardToSerial)
Request end.
Definition: spi.c:411
void nwk_getDeviceInfoRsp(UInt8 param, void *pValue)
Get device information response.
Definition: nwk.c:1037
UInt8 ccai_s_sys_gpio(UInt8 operation, UInt8 value)
GPIO access request.
Definition: cc2480ai.c:1132
void ccai_r_zdo_simple_desc_req()
Not implemented.
Definition: cc2480ai.c:1910
void ccai_p_sys_reset_ind()
Request Indication.
Definition: cc2480ai.c:868
UInt8 ccai_s_zb_read_configuration(UInt8 configId)
Read configuration request.
Definition: cc2480ai.c:1223
#define CCAI_MSGR_SYS_VERION
Response to a request for CC2480 software version information.
Definition: cc2480ai.c:138
#define CCAI_MSGR_ZB_READ_CONFIGURATION
Response to a request to read a configuration parameter.
Definition: cc2480ai.c:185
void ccai_init()
This function initializes the CC2480 Application Interface variables.
Definition: cc2480ai.c:557
void ccai_r_zdo_user_desc_req()
Not implemented.
Definition: cc2480ai.c:2026
#define NWK_DEVTYPE_DEFALUT
The default device type on network initialization.
Definition: nwk.h:202
#define CCAI_MSGP_ZB_BIND_CONFIRM
Sent by CC2480 to return the results from a ZB_BIND_DEVICE.
Definition: cc2480ai.c:220
#define CCAI_MSGR_SYS_OSAL_STOP_TIMER
Response to a request to stop a previously scheduled software timer.
Definition: cc2480ai.c:154
void ccai_p_zb_send_data_confirm()
Send data confirmation.
Definition: cc2480ai.c:1626
#define CCAI_MSGP_ZDO_USER_DESC_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:342
void ccai_p_zb_find_device_confirm()
Find device confirmation.
Definition: cc2480ai.c:1711
void ccai_r_zb_app_register_request()
Application register response.
Definition: cc2480ai.c:1329
Initial configuration, initialization of SPI.
Definition: cc2480ai.c:425
void ccai_p_zdo_ieee_addr_rsp()
Not implemented.
Definition: cc2480ai.c:1851
UInt8 ccai_s_zdo_unbind_req()
Not implemented.
Definition: cc2480ai.c:2190
UInt8 ccai_s_zdo_mgmt_lqi_req()
Not implemented.
Definition: cc2480ai.c:2225
void nwk_bind_deviceConfirm(char *pBuf)
Bind device confirmation.
Definition: nwk.c:949
void ccai_p_zdo_simple_desc_rsp()
Not implemented.
Definition: cc2480ai.c:1921
#define CCAI_MSGR_ZB_APP_REGISTER_REQUEST
Response to a request to register the application with the CC2480 device.
Definition: cc2480ai.c:200
void ccai_r_zdo_nwk_addr_req()
Not implemented.
Definition: cc2480ai.c:1805
UInt8 ccai_s_zdo_mgmt_permit_join_req()
Not implemented.
Definition: cc2480ai.c:2297
UInt16 ccai_proccess()
This function processes the tasks of the CC2480 Application Interface.
Definition: cc2480ai.c:573
#define CCAI_MSGR_ZB_BIND_DEVICE
Response to a request to create or delete a binding to another device on the network.
Definition: cc2480ai.c:216
#define CCAI_MSGP_ZDO_UNBIND_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:382
UInt8 ccai_s_zb_write_configuration(UInt8 configId, UInt8 len, void *pBuf)
Write configuration request.
Definition: cc2480ai.c:1256
void ccai_p_zdo_mgmt_leave_rsp()
Not implemented.
Definition: cc2480ai.c:2284
#define CCAI_MSGR_ZB_PERMIT_JOINING_REQUEST
Response to a request to change the joining permissions.
Definition: cc2480ai.c:212
void ccai_r_zdo_active_ep_req()
Not implemented.
Definition: cc2480ai.c:1945
UInt8 ccai_s_zdo_match_desc_req()
Not implemented.
Definition: cc2480ai.c:1969
void ccai_p_zdo_unbind_rsp()
Not implemented.
Definition: cc2480ai.c:2212
void spi_init()
SPI initialization.
Definition: spi.c:287
UInt8 ccai_s_zdo_ieee_addr_req()
Not implemented.
Definition: cc2480ai.c:1829
void ccai_p_zdo_bind_rsp()
Not implemented.
Definition: cc2480ai.c:2177
#define CCAI_MSGR_ZDO_MGMT_PERMIT_JOIN_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:402
UInt8 ccai_a_sys_test_rf(UInt8 testMode, UInt16 frequency, UInt8 txPower)
RF test configuration.
Definition: cc2480ai.c:1166
void ccai_r_zdo_end_device_bind_req()
Not implemented.
Definition: cc2480ai.c:2131
#define CCAI_MSGR_SYS_OSAL_NV_WRITE
Response to a request to write an item on CC2480 NV memory.
Definition: cc2480ai.c:146
void ccai_r_zb_permit_joining_request()
Permit join change response.
Definition: cc2480ai.c:1403
#define CCAI_MSGR_ZDO_NODE_DESC_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:302
UInt8 ccai_s_af_data_request()
Not implemented.
Definition: cc2480ai.c:1748
void ccai_r_zdo_node_desc_req()
Not implemented.
Definition: cc2480ai.c:1875
#define CCAI_MSGR_ZDO_BIND_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:370
void ccai_r_zdo_ieee_addr_req()
Not implemented.
Definition: cc2480ai.c:1840
UInt8 ccai_s_zb_permit_joining_request(UInt16 destination, UInt8 timeOut)
Permit join change request.
Definition: cc2480ai.c:1386
#define CCAI_MSGP_ZDO_NWK_ADDR_RSP
Not yet implemented in this version.
Definition: cc2480ai.c:290
void nwk_startConfirm(UInt8 status)
Start network confirmation.
Definition: nwk.c:867
void ccai_r_sys_osal_nv_write()
Write emory response.
Definition: cc2480ai.c:980
UInt8 ccai_s_zb_send_data_request(UInt16 destination, UInt16 commandId, UInt8 handle, UInt8 ack, UInt8 radius, UInt8 len, void *pBuf)
Send data request.
Definition: cc2480ai.c:1517
#define CCAI_MSGR_ZDO_USER_DESC_REQ
Not yet implemented in this version.
Definition: cc2480ai.c:338
void ccai_s_zb_send_data_request_end(UInt8 forwardToSerial)
Terminate the request to send data and send it to CC2480.
Definition: cc2480ai.c:1604