⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mtel.lst

📁 用IAR开发的ZIGBEE网络路由例子
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1018          #endif
   1019          
   1020                    // Get a message buffer to build response message
   1021                    len      = (byte)(osal_strlen( (char *)MTVersionString[i] ));
   1022                    retValue = (byte *)MTVersionString[i];
   1023                  }
   1024                    break;
   1025          
   1026                case SPI_CMD_SYS_SET_EXTADDR:
   1027                  // Incoming extended address is reversed
   1028                  MT_ReverseBytes( pData, Z_EXTADDR_LEN );
   1029          
   1030                  if ( ZMacSetReq( ZMacExtAddr, pData ) == ZMacSuccess )
   1031                    ret = osal_nv_write( ZCD_NV_EXTADDR, 0, Z_EXTADDR_LEN, pData );
   1032                  else
   1033                    ret = 1;
   1034                  len = 1;
   1035                  break;
   1036          
   1037                case SPI_CMD_SYS_GET_EXTADDR:
   1038                  ZMacGetReq( ZMacExtAddr, extAddr );
   1039          
   1040                  // Outgoing extended address needs to be reversed
   1041                  MT_ReverseBytes( extAddr, Z_EXTADDR_LEN );
   1042          
   1043                  len = Z_EXTADDR_LEN;
   1044                  retValue = extAddr;
   1045                  break;
   1046          
   1047          #if !defined ( NONWK )
   1048                case SPI_CMD_SYS_SET_PANID:
   1049                  tmp16 = BUILD_UINT16( pData[1], pData[0] );
   1050                  attLen = osal_nv_item_len( ZCD_NV_PANID );
   1051                  ret = osal_nv_write( ZCD_NV_PANID, 0, attLen, &tmp16 );
   1052                  len = 1;
   1053                  break;
   1054          
   1055                case SPI_CMD_SYS_SET_CHANNELS:
   1056                  tmp32 = BUILD_UINT32( pData[3], pData[2], pData[1], pData[0] );
   1057                  attLen = osal_nv_item_len( ZCD_NV_CHANLIST );
   1058                  ret = osal_nv_write( ZCD_NV_CHANLIST, 0, attLen, &tmp32 );
   1059                  len = 1;
   1060                  break;
   1061          
   1062                case SPI_CMD_SYS_SET_SECLEVEL:
   1063                  attLen = osal_nv_item_len( ZCD_NV_SECURITY_LEVEL );
   1064                  ret = osal_nv_write( ZCD_NV_SECURITY_LEVEL, 0, attLen, pData );
   1065                  len = 1;
   1066                  break;
   1067          
   1068                case SPI_CMD_SYS_SET_PRECFGKEY:
   1069                  attLen = osal_nv_item_len( ZCD_NV_PRECFGKEY );
   1070                  ret = osal_nv_write( ZCD_NV_PRECFGKEY, 0, attLen, pData );
   1071                  len = 1;
   1072                  break;
   1073          
   1074                case SPI_CMD_SYS_GET_NV_INFO:
   1075                  MT_ProcessGetNvInfo();
   1076                  break;
   1077          #endif // NONWK
   1078          
   1079                case SPI_CMD_SYS_GET_DEVICE_INFO:
   1080                  MT_ProcessGetDeviceInfo();
   1081                  break;
   1082          
   1083                case SPI_CMD_SYS_SET_NV:
   1084                  ret = MT_ProcessSetNV( pData );
   1085                  len = 1;
   1086                  break;
   1087          
   1088                case SPI_CMD_SYS_GET_NV:
   1089                  MT_ProcessGetNV( pData );
   1090                  break;
   1091          
   1092                case SPI_CMD_SYS_TIME_ALIVE:
   1093                  // Time since last reset (seconds)
   1094                  tmp32 = osal_GetSystemClock() / 1000;
   1095                  // Convert to high byte first into temp buffer
   1096                  extAddr[0] = BREAK_UINT32( tmp32, 3 );
   1097                  extAddr[1] = BREAK_UINT32( tmp32, 2 );
   1098                  extAddr[2] = BREAK_UINT32( tmp32, 1 );
   1099                  extAddr[3] = BREAK_UINT32( tmp32, 0 );
   1100                  len = sizeof ( tmp32 );
   1101                  retValue = extAddr;
   1102                  break;
   1103          
   1104                case SPI_CMD_SYS_KEY_EVENT:
   1105                  // Translate between SPI values to device values
   1106                  if ( pData[1] & 0x01 )
   1107                    x |= HAL_KEY_SW_1;
   1108                  if ( pData[1] & 0x02 )
   1109                    x |= HAL_KEY_SW_2;
   1110                  if ( pData[1] & 0x04 )
   1111                    x |= HAL_KEY_SW_3;
   1112                  if ( pData[1] & 0x08 )
   1113                    x |= HAL_KEY_SW_4;
   1114          #if defined ( HAL_KEY_SW_5 )
   1115                  if ( pData[1] & 0x10 )
   1116                    x |= HAL_KEY_SW_5;
   1117          #endif
   1118          #if defined ( HAL_KEY_SW_6 )
   1119                  if ( pData[1] & 0x20 )
   1120                    x |= HAL_KEY_SW_6;
   1121          #endif
   1122          #if defined ( HAL_KEY_SW_7 )
   1123                  if ( pData[1] & 0x40 )
   1124                    x |= HAL_KEY_SW_7;
   1125          #endif
   1126          #if defined ( HAL_KEY_SW_8 )
   1127                  if ( pData[1] & 0x80 )
   1128                    x |= HAL_KEY_SW_8;
   1129          #endif
   1130                  ret = OnBoard_SendKeys( x, pData[0]  );
   1131                  len = 1;
   1132                  break;
   1133          
   1134                case SPI_CMD_SYS_HEARTBEAT:
   1135                  ret = ZSUCCESS;
   1136                  len = 1;
   1137                  break;
   1138          
   1139          #if !defined ( NONWK )
   1140                case SPI_CMD_SYS_APP_MSG:
   1141                  ret = MTProcessAppMsg( pData, msg[2] );
   1142                  len = 0;
   1143                  break;
   1144          #endif // NONWK
   1145          
   1146                case SPI_CMD_SYS_LED_CONTROL:
   1147          #if (defined HAL_LED) && (HAL_LED == TRUE)
   1148                  ret = MTProcessLedControl( pData );
   1149                  len = 1;
   1150          #endif
   1151                  break;
   1152          
   1153          #ifdef MT_MAC_FUNC
   1154                case SPI_CMD_MAC_INIT:
   1155                case SPI_CMD_MAC_ASSOCIATE_REQ:
   1156                case SPI_CMD_MAC_ASSOCIATE_RSP:
   1157                case SPI_CMD_MAC_DISASSOCIATE_REQ:
   1158                case SPI_CMD_MAC_DATA_REQ:
   1159                case SPI_CMD_MAC_GET_REQ:
   1160                case SPI_CMD_MAC_SET_REQ:
   1161                case SPI_CMD_MAC_START_REQ:
   1162                case SPI_CMD_MAC_SCAN_REQ:
   1163                case SPI_CMD_MAC_RESET_REQ:
   1164                case SPI_CMD_MAC_GTS_REQ:
   1165                case SPI_CMD_MAC_ORPHAN_RSP:
   1166                case SPI_CMD_MAC_RX_ENABLE_REQ:
   1167                case SPI_CMD_MAC_SYNC_REQ:
   1168                case SPI_CMD_MAC_POLL_REQ:
   1169                case SPI_CMD_MAC_PURGE_REQ:
   1170                  MT_MacCommandProcessing( cmd , len , pData );
   1171                  break;
   1172          #endif
   1173          
   1174          #ifdef MT_NWK_FUNC
   1175                case SPI_CMD_NWK_INIT:
   1176                case SPI_CMD_NLDE_DATA_REQ:
   1177                case SPI_CMD_NLME_INIT_COORD_REQ:
   1178                case SPI_CMD_NLME_PERMIT_JOINING_REQ:
   1179                case SPI_CMD_NLME_JOIN_REQ:
   1180                case SPI_CMD_NLME_LEAVE_REQ:
   1181                case SPI_CMD_NLME_RESET_REQ:
   1182                case SPI_CMD_NLME_RX_STATE_REQ:
   1183                case SPI_CMD_NLME_GET_REQ:
   1184                case SPI_CMD_NLME_SET_REQ:
   1185                case SPI_CMD_NLME_NWK_DISC_REQ:
   1186                case SPI_CMD_NLME_ROUTE_DISC_REQ:
   1187                case SPI_CMD_NLME_DIRECT_JOIN_REQ:
   1188                case SPI_CMD_NLME_ORPHAN_JOIN_REQ:
   1189                case SPI_CMD_NLME_START_ROUTER_REQ:
   1190                  MT_NwkCommandProcessing( cmd , len , pData );
   1191                  break;
   1192          #endif
   1193          
   1194          #ifdef MT_ZDO_FUNC
   1195                case SPI_CMD_ZDO_AUTO_ENDDEVICEBIND_REQ:
   1196                case SPI_CMD_ZDO_AUTO_FIND_DESTINATION_REQ:
   1197                case SPI_CMD_ZDO_NWK_ADDR_REQ:
   1198                case SPI_CMD_ZDO_IEEE_ADDR_REQ:
   1199                case SPI_CMD_ZDO_NODE_DESC_REQ:
   1200                case SPI_CMD_ZDO_POWER_DESC_REQ:
   1201                case SPI_CMD_ZDO_SIMPLE_DESC_REQ:
   1202                case SPI_CMD_ZDO_ACTIVE_EPINT_REQ:
   1203                case SPI_CMD_ZDO_MATCH_DESC_REQ:
   1204                case SPI_CMD_ZDO_COMPLEX_DESC_REQ:
   1205                case SPI_CMD_ZDO_USER_DESC_REQ:
   1206                case SPI_CMD_ZDO_END_DEV_BIND_REQ:
   1207                case SPI_CMD_ZDO_BIND_REQ:
   1208                case SPI_CMD_ZDO_UNBIND_REQ:
   1209                case SPI_CMD_ZDO_MGMT_NWKDISC_REQ:
   1210                case SPI_CMD_ZDO_MGMT_LQI_REQ:
   1211                case SPI_CMD_ZDO_MGMT_RTG_REQ:
   1212                case SPI_CMD_ZDO_MGMT_BIND_REQ:
   1213                case SPI_CMD_ZDO_MGMT_DIRECT_JOIN_REQ:
   1214                case SPI_CMD_ZDO_USER_DESC_SET:
   1215                case SPI_CMD_ZDO_END_DEV_ANNCE:
   1216                case SPI_CMD_ZDO_MGMT_LEAVE_REQ:
   1217                case SPI_CMD_ZDO_MGMT_PERMIT_JOIN_REQ:
   1218                case SPI_CMD_ZDO_SERVERDISC_REQ:
   1219                case SPI_CMD_ZDO_NETWORK_START_REQ:
   1220                  MT_ZdoCommandProcessing( cmd , len , pData );
   1221                  break;
   1222          #endif
   1223          
   1224          #if defined ( MT_AF_FUNC )
   1225                case SPI_CMD_AF_INIT:
   1226                case SPI_CMD_AF_REGISTER:
   1227                case SPI_CMD_AF_SENDMSG:
   1228                  MT_afCommandProcessing( cmd , len , pData );
   1229                  break;
   1230          #endif
   1231          
   1232          #if defined ( MT_SAPI_FUNC )
   1233                case SPI_CMD_SAPI_SYS_RESET:
   1234                case SPI_CMD_SAPI_START_REQ:
   1235                case SPI_CMD_SAPI_BIND_DEVICE:
   1236                case SPI_CMD_SAPI_ALLOW_BIND:
   1237                case SPI_CMD_SAPI_SEND_DATA:
   1238                case SPI_CMD_SAPI_READ_CFG:
   1239                case SPI_CMD_SAPI_WRITE_CFG:
   1240                case SPI_CMD_SAPI_GET_DEV_INFO:
   1241                case SPI_CMD_SAPI_FIND_DEV:
   1242                case SPI_CMD_SAPI_PMT_JOIN:
   1243                  ret = MT_sapiCommandProcessing( cmd , len , pData );
   1244                  if ( ret == 0xff )
   1245                    len = 0;
   1246                  else
   1247                    len = 1;
   1248                  break;
   1249          #endif
   1250          
   1251          #if defined ( MT_USER_TEST_FUNC )
   1252                case SPI_CMD_USER_TEST:
   1253                  MT_ProcessAppUserCmd( pData );
   1254                  break;
   1255          #endif
   1256          
   1257                default:
   1258                  break;
   1259              }
   1260          
   1261              if ( len )
   1262              {
   1263                MT_BuildAndSendZToolResponse( (SPI_0DATA_MSG_LEN + len),
   1264                                              (SPI_RESPONSE_BIT | cmd),
   1265                                              len, retValue );
   1266              }
   1267            }
   1268          #endif // ZTOOL
   1269          
   1270          #if (defined HAL_LED) && (HAL_LED == TRUE)
   1271          /***************************************************************************************************
   1272           * @fn      MTProcessLedControl
   1273           *
   1274           * @brief
   1275           *
   1276           *   Process the LED Control Message
   1277           *
   1278           * @param   data - input serial buffer
   1279           *
   1280           * @return  status
   1281           ***************************************************************************************************/
   1282          byte MTProcessLedControl( byte *pData )
   1283          {
   1284            byte iLed;
   1285            byte Led;
   1286            byte iMode;
   1287            byte Mode;
   1288          
   1289            iLed = *pData++;
   1290            iMode = *pData;
   1291          
   1292            if ( iLed == 1 )
   1293              Led = HAL_LED_1;
   1294            else if ( iLed == 2 )
   1295              Led = HAL_LED_2;
  

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -