src/dcf.c
changeset 191 1e6e3d261b8f
parent 178 01d81faa3350
child 200 930be51ddc24
equal deleted inserted replaced
190:3248a2d6bb0b 191:1e6e3d261b8f
    26 
    26 
    27 const indextable *ptrTable;
    27 const indextable *ptrTable;
    28 
    28 
    29 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
    29 static void CheckSDOAndContinue(CO_Data* d, UNS8 nodeId)
    30 {
    30 {
    31 	UNS32 res;
       
    32 	UNS8 line;
       
    33 	UNS8 err;
       
    34 	UNS16 Index;
       
    35 	UNS8 SubIndex;
       
    36 	UNS32 abortCode;
    31 	UNS32 abortCode;
    37 	
    32 	
    38 	if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
    33 	if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
    39 		printf("Master : Failed in initializing slave %2.2x, AbortCode :%4.4x \n", nodeId, abortCode);
    34 	{
    40 	
    35 		MSG_ERR(0x1A01, "SDO error in consise DCF", abortCode);
       
    36 		MSG_WAR(0x2A02, "server node : ", nodeId);
       
    37 	}
       
    38 
    41 	closeSDOtransfer(d, nodeId, SDO_CLIENT);
    39 	closeSDOtransfer(d, nodeId, SDO_CLIENT);
    42 	res = decompo_dcf(d,nodeId);
    40 	decompo_dcf(d,nodeId);
    43 }
    41 }
    44 
    42 
    45 UNS32 decompo_dcf(CO_Data* d,UNS8 nodeId)
    43 UNS32 decompo_dcf(CO_Data* d,UNS8 nodeId)
    46 {
    44 {
    47 		UNS32 errorCode;
    45 		UNS32 errorCode;
    48 		UNS16 target_Index;
    46 		UNS16 target_Index;
    49 		UNS8 target_Subindex;
    47 		UNS8 target_Subindex;
    50 		UNS32 target_Size;
    48 		UNS32 target_Size;
    51 		void* target_data = NULL;
       
    52 		UNS32 res;
    49 		UNS32 res;
    53   		ODCallback_t *Callback;
    50   		ODCallback_t *Callback;
    54 
    51 
    55 		ptrTable = (*d->scanIndexOD)(0x1F22, &errorCode, &Callback);
    52 		ptrTable = (*d->scanIndexOD)(0x1F22, &errorCode, &Callback);
    56 		if (errorCode != OD_SUCCESSFUL)
    53 		if (errorCode != OD_SUCCESSFUL)
    91 				target_Index = *((UNS16*)(d->dcf_cursor)); d->dcf_cursor += 2;
    88 				target_Index = *((UNS16*)(d->dcf_cursor)); d->dcf_cursor += 2;
    92 				target_Subindex = *((UNS8*)(d->dcf_cursor++));
    89 				target_Subindex = *((UNS8*)(d->dcf_cursor++));
    93 				target_Size = *((UNS32*)(d->dcf_cursor)); d->dcf_cursor += 4;
    90 				target_Size = *((UNS32*)(d->dcf_cursor)); d->dcf_cursor += 4;
    94 	#endif
    91 	#endif
    95 				
    92 				
    96 					printf("Master : ConfigureSlaveNode %2.2x (Concise DCF)\n",nodeId);
    93 					/*printf("Master : ConfigureSlaveNode %2.2x (Concise DCF)\n",nodeId);*/
    97 					res = writeNetworkDictCallBack(d, /*CO_Data* d*/
    94 					res = writeNetworkDictCallBack(d, /*CO_Data* d*/
    98 							nodeId, /*UNS8 nodeId*/
    95 							nodeId, /*UNS8 nodeId*/
    99 							target_Index, /*UNS16 index*/
    96 							target_Index, /*UNS16 index*/
   100 							target_Subindex, /*UNS8 subindex*/
    97 							target_Subindex, /*UNS8 subindex*/
   101 							target_Size, /*UNS8 count*/
    98 							target_Size, /*UNS8 count*/