📄 mtel.lst
字号:
967 }
968 #endif
969
970 #if defined( MT_AF_CB_FUNC )
971 // Set the corresponding callback subscription bit for an AF callback.
972 if (( callbackID & 0xFFF0 ) == SPI_AF_CB_TYPE )
973 {
974 // Based on the action field, either enable or disable subscription.
975 if ( pData[2] )
976 _afCallbackSub |= ( 1 << ( pData[1] & 0x0F ) );
977 else
978 _afCallbackSub &= ~( 1 << ( pData[1] & 0x0F ) );
979 }
980 #endif
981 #if defined( MT_SAPI_CB_FUNC )
982 // Set the corresponding callback subscription bit for an SAPI callback.
983 if (( callbackID & 0xFFF0 ) == SPI_SAPI_CB_TYPE )
984 {
985 // Based on the action field, either enable or disable subscription.
986 if ( pData[2] )
987 _sapiCallbackSub |= ( 1 << ( pData[1] & 0x0F ) );
988 else
989 _sapiCallbackSub &= ~( 1 << ( pData[1] & 0x0F ) );
990 }
991 #endif
992 }
993 len = 1;
994 ret = ZSUCCESS;
995 break;
996
997 case SPI_CMD_SYS_PING:
998 // Get a message buffer to build response message
999 // The Ping response now has capabilities included
1000
1001 // Build Capabilities
1002 tmp16 = MT_CAP_MAC | MT_CAP_NWK | MT_CAP_AF |
1003 MT_CAP_ZDO | MT_CAP_USER_TEST | MT_CAP_SAPI_FUNC;
1004
1005 // Convert to high byte first into temp buffer
1006 extAddr[0] = HI_UINT16( tmp16 );
1007 extAddr[1] = LO_UINT16( tmp16 );
1008 len = sizeof ( tmp16 );
1009 retValue = extAddr;
1010 break;
1011
1012 case SPI_CMD_SYS_VERSION:
1013 {
1014 #if !defined ( NONWK )
1015 uint8 i = NLME_GetProtocolVersion() - 1;
1016 #else
1017 uint8 i = 1; // just say '1.1' -- irrelevant if stack isn't there anyway
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:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -