Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
prt.c
00001 /******************************************************************************* 00002 ******************************************************************************** 00003 ** ** 00004 ** ABCC Starter Kit version 2.01.01 (2015-12-14) ** 00005 ** ** 00006 ** Delivered with: ** 00007 ** ABCC Driver 4.01.01 (2015-12-14) ** 00008 ** ABP 7.16.01 (2015-10-14) ** 00009 ** */ 00010 /******************************************************************************* 00011 ******************************************************************************** 00012 ** COPYRIGHT NOTIFICATION (c) 2015 HMS Industrial Networks AB ** 00013 ** ** 00014 ** This code is the property of HMS Industrial Networks AB. ** 00015 ** The source code may not be reproduced, distributed, or used without ** 00016 ** permission. When used together with a product from HMS, permission is ** 00017 ** granted to modify, reproduce and distribute the code in binary form ** 00018 ** without any restrictions. ** 00019 ** ** 00020 ** THE CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. HMS DOES NOT ** 00021 ** WARRANT THAT THE FUNCTIONS OF THE CODE WILL MEET YOUR REQUIREMENTS, OR ** 00022 ** THAT THE OPERATION OF THE CODE WILL BE UNINTERRUPTED OR ERROR-FREE, OR ** 00023 ** THAT DEFECTS IN IT CAN BE CORRECTED. ** 00024 ******************************************************************************** 00025 ******************************************************************************** 00026 ** Source file for the Profinet IO object. 00027 ******************************************************************************** 00028 ******************************************************************************** 00029 */ 00030 00031 #include "abcc_td.h" 00032 #include "abcc_sys_adapt.h" 00033 #include "abcc_obj_cfg.h" 00034 #include "abcc.h" 00035 #include "prt.h" 00036 #include "abp_pnio.h" 00037 #include "string.h" 00038 #include "appl_abcc_handler.h" 00039 #include "abcc_port.h" 00040 00041 #if PRT_OBJ_ENABLE 00042 00043 /******************************************************************************* 00044 ** Defines 00045 ******************************************************************************** 00046 */ 00047 00048 /*------------------------------------------------------------------------------ 00049 ** Object attribute values 00050 **------------------------------------------------------------------------------ 00051 */ 00052 #define PRT_OA_NAME_VALUE "PROFINET IO" 00053 #define PRT_OA_REV_VALUE 1 00054 #define PRT_OA_NUM_INST_VALUE 1 00055 #define PRT_OA_HIGHEST_INST_VALUE 1 00056 00057 /******************************************************************************* 00058 ** Typedefs 00059 ******************************************************************************** 00060 */ 00061 00062 /*------------------------------------------------------------------------------ 00063 ** prt_ObjectType. 00064 ** Structure describing an ProfiNet Object. 00065 **------------------------------------------------------------------------------ 00066 */ 00067 typedef struct prt_ObjectType 00068 { 00069 const char* pcName; 00070 UINT8 bRevision; 00071 UINT16 iNumberOfInstances; 00072 UINT16 iHighestInstanceNo; 00073 } 00074 prt_ObjectType; 00075 00076 /*------------------------------------------------------------------------------ 00077 ** Forward declarations 00078 **------------------------------------------------------------------------------ 00079 */ 00080 static void InstanceCommand( ABP_MsgType* psNewMessage ); 00081 static void ObjectCommand( ABP_MsgType* psNewMessage ); 00082 00083 /******************************************************************************* 00084 ** Private Globals 00085 ******************************************************************************** 00086 */ 00087 00088 static const prt_ObjectType prt_sObject = 00089 { 00090 PRT_OA_NAME_VALUE, /* Name. */ 00091 PRT_OA_REV_VALUE, /* Revision. */ 00092 PRT_OA_NUM_INST_VALUE, /* Number of instances. */ 00093 PRT_OA_HIGHEST_INST_VALUE /* Highest instance number. */ 00094 }; 00095 00096 /******************************************************************************* 00097 ** Public Services 00098 ******************************************************************************** 00099 */ 00100 00101 void PRT_ProcessCmdMsg( ABP_MsgType* psNewMessage ) 00102 { 00103 /* 00104 ** This function processes commands to the Profinet Object and it's Instance. 00105 */ 00106 if( ABCC_GetMsgInstance( psNewMessage ) == ABP_INST_OBJ ) 00107 { 00108 /* 00109 ** Profinet object Command 00110 */ 00111 ObjectCommand( psNewMessage ); 00112 } 00113 else 00114 { 00115 /* 00116 ** Profinet instance Command 00117 */ 00118 InstanceCommand( psNewMessage ); 00119 } 00120 00121 ABCC_SendRespMsg( psNewMessage ); 00122 } 00123 00124 00125 /******************************************************************************* 00126 ** Private Services 00127 ******************************************************************************** 00128 */ 00129 00130 /*------------------------------------------------------------------------------ 00131 ** Processes commands to PRT Instances 00132 **------------------------------------------------------------------------------ 00133 ** Arguments: 00134 ** psNewMessage - Pointer to a ABP_MsgType message. 00135 ** 00136 ** Returns: 00137 ** None 00138 **------------------------------------------------------------------------------ 00139 */ 00140 static void InstanceCommand( ABP_MsgType* psNewMessage ) 00141 { 00142 /* 00143 ** This function processes commands to the Profinet Instance. 00144 */ 00145 if( ABCC_GetMsgInstance( psNewMessage ) != 1 ) 00146 { 00147 /* 00148 ** The Instance does not exist. 00149 */ 00150 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_INST ); 00151 return; 00152 } 00153 00154 switch ( ABCC_GetMsgCmdBits( psNewMessage ) ) 00155 { 00156 case ABP_CMD_GET_ATTR: 00157 00158 switch( ABCC_GetMsgCmdExt0( psNewMessage ) ) 00159 { 00160 #if PRT_IA_DEVICE_ID_ENABLE 00161 case ABP_PNIO_IA_DEVICE_ID: 00162 00163 /* 00164 ** Copy the 1st Instance 1 attribute (Device ID) to the message. 00165 */ 00166 ABCC_SetMsgData16( psNewMessage, PRT_IA_DEVICE_ID_VALUE, 0 ); 00167 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_DEVICE_ID_DS ); 00168 break; 00169 #endif 00170 #if PRT_IA_VENDOR_ID_ENABLE 00171 case ABP_PNIO_IA_VENDOR_ID: 00172 00173 /* 00174 ** Copy the 2nd Instance 1 attribute (Vendor ID) to the message. 00175 */ 00176 ABCC_SetMsgData16( psNewMessage, PRT_IA_VENDOR_ID_VALUE, 0 ); 00177 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_VENDOR_ID_DS ); 00178 break; 00179 #endif 00180 #if PRT_IA_STATION_TYPE_ENABLE 00181 case ABP_PNIO_IA_STATION_TYPE: 00182 { 00183 UINT16 iStrLength; 00184 00185 iStrLength = (UINT16)strlen( PRT_IA_STATION_TYPE_VALUE ); 00186 00187 /* 00188 ** The maximum number of elements allowed in the array should not be 00189 ** checked here. It should be checked earlier... 00190 */ 00191 if( iStrLength > ABP_PNIO_IA_STATION_TYPE_DS ) 00192 { 00193 iStrLength = ABP_PNIO_IA_STATION_TYPE_DS; 00194 } 00195 00196 /* 00197 ** Copy the 3rd Instance 1 attribute (Station Type) to the message. 00198 */ 00199 ABCC_SetMsgString( psNewMessage, PRT_IA_STATION_TYPE_VALUE, iStrLength, 0 ); 00200 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00201 break; 00202 } 00203 #endif 00204 #if PRT_IA_MAX_AR_ENABLE 00205 case ABP_PNIO_IA_MAX_AR: 00206 00207 /* 00208 ** Copy the 4th Instance 1 attribute (MaxAr) to the message. 00209 */ 00210 ABCC_SetMsgData32( psNewMessage, PRT_IA_MAX_AR_VALUE, 0 ); 00211 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_MAX_AR_DS ); 00212 break; 00213 #endif 00214 #if PRT_IA_RTM_ENABLE 00215 case ABP_PNIO_IA_RTM: 00216 00217 /* 00218 ** Copy the 7th Instance 1 attribute (Record Data Transparent Mode) to the message. 00219 */ 00220 ABCC_SetMsgData32( psNewMessage, PRT_IA_RTM_VALUE, 0 ); 00221 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_RTM_DS ); 00222 break; 00223 #endif 00224 #if PRT_IA_IM_ORDER_ID_ENABLE 00225 case ABP_PNIO_IA_IM_ORDER_ID: 00226 { 00227 UINT16 iStrLength; 00228 00229 iStrLength = (UINT16)strlen( PRT_IA_IM_ORDER_ID_VALUE ); 00230 00231 /* 00232 ** The maximum number of elements allowed in the array should not be 00233 ** checked here. It should be checked earlier... 00234 */ 00235 if( iStrLength > ABP_PNIO_IA_IM_ORDER_ID_DS ) 00236 { 00237 iStrLength = ABP_PNIO_IA_IM_ORDER_ID_DS; 00238 } 00239 00240 /* 00241 ** Copy the 8th Instance 1 attribute (IM Order ID) to the message. 00242 */ 00243 ABCC_SetMsgString( psNewMessage, PRT_IA_IM_ORDER_ID_VALUE, iStrLength, 0 ); 00244 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00245 break; 00246 } 00247 #endif 00248 #if PRT_IA_IM_SERIAL_NBR_ENABLE 00249 case ABP_PNIO_IA_IM_SERIAL_NBR: 00250 { 00251 UINT16 iStrLength; 00252 00253 iStrLength = (UINT16)strlen( PRT_IA_IM_SERIAL_NBR_VALUE ); 00254 00255 /* 00256 ** The maximum number of elements allowed in the array should not be 00257 ** checked here. It should be checked earlier... 00258 */ 00259 if( iStrLength > ABP_PNIO_IA_IM_SERIAL_NBR_DS ) 00260 { 00261 iStrLength = ABP_PNIO_IA_IM_SERIAL_NBR_DS; 00262 } 00263 00264 /* 00265 ** Copy the 9th Instance 1 attribute (IM Serial number) to the message. 00266 */ 00267 ABCC_SetMsgString( psNewMessage, PRT_IA_IM_SERIAL_NBR_VALUE, iStrLength, 0 ); 00268 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00269 break; 00270 } 00271 #endif 00272 #if PRT_IA_IM_HW_REV_ENABLE 00273 case ABP_PNIO_IA_IM_HW_REV: 00274 00275 /* 00276 ** Copy the 10th Instance 1 attribute (IM Hardware revision) to the message. 00277 */ 00278 ABCC_SetMsgData16( psNewMessage, PRT_IA_IM_HW_REV_VALUE, 0 ); 00279 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_HW_REV_DS ); 00280 break; 00281 #endif 00282 #if PRT_IA_IM_SW_REV_ENABLE 00283 case ABP_PNIO_IA_IM_SW_REV: 00284 00285 /* 00286 ** Copy the 11th Instance 1 attribute (Software revision) to the message. 00287 */ 00288 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_SW_REV_SYMBOL_VALUE, 0 ); 00289 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_SW_REV_MAJOR_VALUE, 1 ); 00290 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_SW_REV_MINOR_VALUE, 2 ); 00291 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_SW_REV_BUILD_VALUE, 3 ); 00292 00293 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_SW_REV_DS ); 00294 break; 00295 #endif 00296 #if PRT_IA_IM_REV_CNT_ENABLE 00297 case ABP_PNIO_IA_IM_REV_CNT: 00298 00299 /* 00300 ** Copy the 12th Instance 1 attribute (IM Revision Counter) to the message. 00301 */ 00302 ABCC_SetMsgData16( psNewMessage, PRT_IA_IM_REV_CNT_VALUE, 0 ); 00303 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_REV_CNT_DS ); 00304 break; 00305 #endif 00306 #if PRT_IA_IM_PROFILE_ID_ENABLE 00307 case ABP_PNIO_IA_IM_PROFILE_ID: 00308 00309 /* 00310 ** Copy the 13th Instance 1 attribute (IM Profile ID) to the message. 00311 */ 00312 ABCC_SetMsgData16( psNewMessage, PRT_IA_IM_PROFILE_ID_VALUE, 0 ); 00313 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_PROFILE_ID_DS ); 00314 break; 00315 #endif 00316 #if PRT_IA_IM_PROFILE_SPEC_TYPE_ENABLE 00317 case ABP_PNIO_IA_IM_PROFILE_SPEC_TYPE: 00318 00319 /* 00320 ** Copy the 14th Instance 1 attribute (IM Profile Specific Type) to the message. 00321 */ 00322 ABCC_SetMsgData16( psNewMessage, PRT_IA_IM_PROFILE_SPEC_TYPE_VALUE, 0 ); 00323 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_PROFILE_SPEC_TYPE_DS ); 00324 break; 00325 #endif 00326 #if PRT_IA_IM_VER_ENABLE 00327 case ABP_PNIO_IA_IM_VER: 00328 00329 /* 00330 ** Copy the 15th Instance 1 attribute (IM Version) to the message. 00331 */ 00332 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_VER_MAJOR_VALUE, 0 ); 00333 ABCC_SetMsgData8( psNewMessage, PRT_IA_IM_VER_MINOR_VALUE, 1 ); 00334 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_VER_DS ); 00335 break; 00336 #endif 00337 #if PRT_IA_IM_SUPPORTED_ENABLE 00338 case ABP_PNIO_IA_IM_SUPPORTED: 00339 00340 /* 00341 ** Copy the 16th Instance 1 attribute (IM Supported) to the message. 00342 */ 00343 ABCC_SetMsgData16( psNewMessage, PRT_IA_IM_SUPPORTED_VALUE, 0 ); 00344 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_IM_SUPPORTED_DS ); 00345 break; 00346 #endif 00347 #if PRT_IA_PORT1_MAC_ADDRESS_ENABLE 00348 case ABP_PNIO_IA_PORT1_MAC_ADDRESS: 00349 { 00350 UINT16 i; 00351 UINT8 abMac[ 6 ]; 00352 00353 /* 00354 ** Copy the 17th Instance 1 attribute (Port 1 MAC Address) to the message. 00355 */ 00356 00357 ABCC_PORT_MemCpy( abMac, PRT_IA_PORT1_MAC_ADDRESS_VALUE, 6 ); 00358 00359 for( i = 0; i < 6; i++ ) 00360 { 00361 ABCC_SetMsgData8( psNewMessage, abMac[ i ], i ); 00362 } 00363 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_PORT1_MAC_ADDRESS_DS ); 00364 break; 00365 } 00366 #endif 00367 #if PRT_IA_PORT2_MAC_ADDRESS_ENABLE 00368 case ABP_PNIO_IA_PORT2_MAC_ADDRESS: 00369 { 00370 UINT16 i; 00371 UINT8 abMac[ 6 ]; 00372 00373 /* 00374 ** Copy the 18th Instance 1 attribute (Port 2 MAC Address) to the message. 00375 */ 00376 00377 ABCC_PORT_MemCpy( abMac, PRT_IA_PORT2_MAC_ADDRESS_VALUE, 6 ); 00378 00379 for( i = 0; i < 6; i++ ) 00380 { 00381 ABCC_SetMsgData8( psNewMessage, abMac[ i ], i ); 00382 } 00383 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_PORT2_MAC_ADDRESS_DS ); 00384 break; 00385 } 00386 #endif 00387 #if PRT_IA_SYSTEM_DESCRIPTION_ENABLE 00388 case ABP_PNIO_IA_SYSTEM_DESCRIPTION: 00389 { 00390 UINT16 iStrLength; 00391 00392 iStrLength = (UINT16)strlen( PRT_IA_SYSTEM_DESCRIPTION_VALUE ); 00393 00394 /* 00395 ** Copy the 19th Instance 1 attribute (System description) to the message. 00396 */ 00397 ABCC_SetMsgString( psNewMessage, PRT_IA_SYSTEM_DESCRIPTION_VALUE, iStrLength, 0 ); 00398 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00399 break; 00400 } 00401 #endif 00402 #if PRT_IA_INTERFACE_DESCRIPTION_ENABLE 00403 case ABP_PNIO_IA_INTERFACE_DESCRIPTION: 00404 { 00405 UINT16 iStrLength; 00406 00407 iStrLength = (UINT16)strlen( PRT_IA_INTERFACE_DESCRIPTION_VALUE ); 00408 /* 00409 ** Copy the 20th Instance 1 attribute (Interface Description) to the message. 00410 */ 00411 ABCC_SetMsgString( psNewMessage, PRT_IA_INTERFACE_DESCRIPTION_VALUE, iStrLength, 0 ); 00412 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00413 break; 00414 } 00415 #endif 00416 #if PRT_IA_MOD_ID_ASSIGN_MODE_ENABLE 00417 case ABP_PNIO_IA_MOD_ID_ASSIGN_MODE: 00418 00419 /* 00420 ** Copy the 21st Instance 1 attribute (Module ID Assignment Mode) to the message. 00421 */ 00422 ABCC_SetMsgData8( psNewMessage, PRT_IA_MOD_ID_ASSIGN_MODE_VALUE, 0 ); 00423 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_MOD_ID_ASSIGN_MODE_DS ); 00424 break; 00425 #endif 00426 #if PRT_IA_SYSTEM_CONTACT_ENABLE 00427 case ABP_PNIO_IA_SYSTEM_CONTACT: 00428 { 00429 UINT16 iStrLength; 00430 00431 iStrLength = (UINT16)strlen( PRT_IA_SYSTEM_CONTACT_VALUE ); 00432 00433 /* 00434 ** Copy the 22nd Instance 1 attribute (System contact) to the message. 00435 */ 00436 ABCC_SetMsgString( psNewMessage, PRT_IA_SYSTEM_CONTACT_VALUE, iStrLength, 0 ); 00437 ABP_SetMsgResponse( psNewMessage, iStrLength ); 00438 break; 00439 } 00440 #endif 00441 #if PRT_IA_PROFIENERGY_FUNC_ENABLE 00442 case ABP_PNIO_IA_PROFIENERGY_FUNC: 00443 00444 /* 00445 ** Copy the 23rd Instance 1 attribute (PROFIenergy Functionality) to the message. 00446 */ 00447 ABCC_SetMsgData8( psNewMessage, PRT_IA_PROFIENERGY_FUNC_VALUE, 0 ); 00448 ABP_SetMsgResponse( psNewMessage, ABP_PNIO_IA_PROFIENERGY_FUNC_DS ); 00449 break; 00450 #endif 00451 default: 00452 00453 /* 00454 ** Unsupported attribute. 00455 */ 00456 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_INV_CMD_EXT_0 ); 00457 break; 00458 } 00459 break; 00460 00461 default: 00462 00463 /* 00464 ** Unsupported command. 00465 */ 00466 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00467 break; 00468 } 00469 } 00470 00471 /*------------------------------------------------------------------------------ 00472 ** Processes commands to the PRT Object (Instance 0) 00473 **------------------------------------------------------------------------------ 00474 ** Arguments: 00475 ** psNewMessage - Pointer to a ABP_MsgType message. 00476 ** 00477 ** Returns: 00478 ** None 00479 **------------------------------------------------------------------------------ 00480 */ 00481 static void ObjectCommand( ABP_MsgType* psNewMessage ) 00482 { 00483 /* 00484 ** This function processes commands to the Profinet Object (Instance 0). 00485 */ 00486 switch ( ABCC_GetMsgCmdBits( psNewMessage ) ) 00487 { 00488 case ABP_CMD_GET_ATTR: 00489 { 00490 switch( ABCC_GetMsgCmdExt0( psNewMessage ) ) 00491 { 00492 case ABP_OA_NAME: 00493 { 00494 UINT16 iStrLength; 00495 00496 /* 00497 ** Copy the attribute to a message. 00498 */ 00499 iStrLength = (UINT16)strlen( prt_sObject.pcName ); 00500 ABCC_SetMsgString( psNewMessage, prt_sObject.pcName, iStrLength, 0 ); 00501 ABP_SetMsgResponse( psNewMessage, (UINT8)iStrLength ); 00502 break; 00503 } 00504 00505 case ABP_OA_REV: 00506 00507 /* 00508 ** Copy the attribute to a message. 00509 */ 00510 ABCC_SetMsgData8( psNewMessage, prt_sObject.bRevision, 0 ); 00511 ABP_SetMsgResponse( psNewMessage, ABP_OA_REV_DS ); 00512 break; 00513 00514 case ABP_OA_NUM_INST: 00515 00516 /* 00517 ** Copy the attribute to a message. 00518 */ 00519 ABCC_SetMsgData16( psNewMessage, prt_sObject.iNumberOfInstances, 0 ); 00520 ABP_SetMsgResponse( psNewMessage, ABP_OA_NUM_INST_DS ); 00521 break; 00522 00523 case ABP_OA_HIGHEST_INST: 00524 00525 /* 00526 ** Copy the attribute to a message. 00527 */ 00528 ABCC_SetMsgData16( psNewMessage, prt_sObject.iHighestInstanceNo, 0 ); 00529 ABP_SetMsgResponse( psNewMessage, ABP_OA_HIGHEST_INST_DS ); 00530 break; 00531 00532 default: 00533 00534 /* 00535 ** Unsupported attribute. 00536 */ 00537 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_INV_CMD_EXT_0 ); 00538 break; 00539 } 00540 break; 00541 } 00542 case ABP_PNIO_CMD_GET_RECORD: 00543 00544 /* 00545 ** Optionally implement the Get Record service here. 00546 */ 00547 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00548 break; 00549 00550 case ABP_PNIO_CMD_SET_RECORD: 00551 00552 /* 00553 ** Optionally implement the Set Record service here. 00554 */ 00555 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00556 break; 00557 00558 case ABP_PNIO_CMD_GET_IM_RECORD: 00559 00560 /* 00561 ** Optionally implement the Get IM Record service here. 00562 */ 00563 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00564 break; 00565 00566 case ABP_PNIO_CMD_SET_IM_RECORD: 00567 00568 /* 00569 ** Optionally implement the Set IM Record service here. 00570 */ 00571 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00572 break; 00573 00574 case ABP_PNIO_CMD_AR_CHECK_IND: 00575 00576 /* 00577 ** Optionally implement the AR Check Ind. service here. 00578 */ 00579 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00580 break; 00581 00582 default: 00583 00584 /* 00585 ** Unsupported command. 00586 */ 00587 ABP_SetMsgErrorResponse( psNewMessage, 1, ABP_ERR_UNSUP_CMD ); 00588 break; 00589 00590 } /* End of switch( Command number ) */ 00591 } 00592 00593 #endif /* PRT_OBJ_ENABLE */
Generated on Tue Jul 12 2022 15:51:57 by
