examples/TestMasterSlave/Master.c
changeset 236 905677ed00f3
parent 201 2966cd34162a
child 284 24bf3d692993
equal deleted inserted replaced
235:f812bf6b7237 236:905677ed00f3
   162 }
   162 }
   163 
   163 
   164 void TestMaster_post_sync()
   164 void TestMaster_post_sync()
   165 {
   165 {
   166 	eprintf("TestMaster_post_sync\n");
   166 	eprintf("TestMaster_post_sync\n");
   167 	eprintf("Master: %d %d %d %d %d %d %d %d %d %x %x\n",MasterMap1,MasterMap2 ,MasterMap3, MasterMap4,MasterMap5,MasterMap6,MasterMap7,MasterMap8,MasterMap9,MasterMap10,MasterMap11);
   167 	eprintf("Master: %d %d %d %d %d %d %d %d %d %x %x %d %d\n",
       
   168 		MasterMap1,
       
   169 		MasterMap2,
       
   170 		MasterMap3, 
       
   171 		MasterMap4,
       
   172 		MasterMap5,
       
   173 		MasterMap6,
       
   174 		MasterMap7,
       
   175 		MasterMap8,
       
   176 		MasterMap9,
       
   177 		MasterMap10,
       
   178 		MasterMap11,
       
   179 		MasterMap12,
       
   180 		MasterMap13);
   168 }
   181 }
   169 
   182 
   170 char query_result = 0;
   183 char query_result = 0;
   171 char waiting_answer = 0;
   184 char waiting_answer = 0;
   172 
   185 
       
   186 
       
   187 static void CheckSDO(CO_Data* d, UNS8 nodeId)
       
   188 {
       
   189 	UNS32 abortCode;	
       
   190 	if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
       
   191 		eprintf("Master : Failed in changing Slave's transmit type AbortCode :%4.4x \n", abortCode);
       
   192 
       
   193 	/* Finalise last SDO transfer with this node */
       
   194 	closeSDOtransfer(&TestMaster_Data, nodeId, SDO_CLIENT);
       
   195 }
       
   196 
       
   197 
       
   198 static int MasterSyncCount = 0;
   173 void TestMaster_post_TPDO()
   199 void TestMaster_post_TPDO()
   174 {
   200 {
   175 	eprintf("TestMaster_post_TPDO\n");
   201 	eprintf("TestMaster_post_TPDO MasterSyncCount = %d \n", MasterSyncCount);
   176 //
   202 //
   177 //	{
   203 //	{
   178 //		char zero = 0;
   204 //		char zero = 0;
   179 //		if(MasterMap4 > 0x80){
   205 //		if(MasterMap4 > 0x80){
   180 //			writeNetworkDict (
   206 //			writeNetworkDict (
   186 //				0,
   212 //				0,
   187 //				&zero); 
   213 //				&zero); 
   188 //		}
   214 //		}
   189 //	}
   215 //	}
   190 
   216 
       
   217 #if 0
   191 	if(waiting_answer){
   218 	if(waiting_answer){
   192 		UNS32 abortCode;			
   219 		UNS32 abortCode;			
   193 		UNS8 size;			
   220 		UNS8 size;			
   194 		switch(getReadResultNetworkDict (
   221 		switch(getReadResultNetworkDict (
   195 			&TestMaster_Data, 
   222 			&TestMaster_Data, 
   212 			break;
   239 			break;
   213 			case SDO_DOWNLOAD_IN_PROGRESS:
   240 			case SDO_DOWNLOAD_IN_PROGRESS:
   214 			case SDO_UPLOAD_IN_PROGRESS:
   241 			case SDO_UPLOAD_IN_PROGRESS:
   215 			break;
   242 			break;
   216 		}
   243 		}
   217 	}else if(MasterMap1 % 10 == 0){
   244 	}else if(MasterSyncCount % 10 == 0){
   218 		readNetworkDict (
   245 		readNetworkDict (
   219 			&TestMaster_Data,
   246 			&TestMaster_Data,
   220 			0x02,
   247 			0x02,
   221 			0x2002,
   248 			0x2002,
   222 			0x00,
   249 			0x00,
   223 			0);
   250 			0);
   224 		waiting_answer = 1;
   251 		waiting_answer = 1;
   225 	}
   252 	}
   226 }
   253 #endif	
       
   254 	if(MasterSyncCount % 17 == 0){
       
   255 		eprintf("Master : Ask RTR PDO (0x1402)\n");
       
   256 		sendPDOrequest(&TestMaster_Data, 0x1402 );
       
   257 		sendPDOrequest(&TestMaster_Data, 0x1403 );
       
   258 	}
       
   259 	if(MasterSyncCount % 50 == 0){
       
   260 		eprintf("Master : Change slave's transmit type to 0xFF\n");
       
   261 		UNS8 transmitiontype = 0xFF;
       
   262 		writeNetworkDictCallBack (&TestMaster_Data, /*CO_Data* d*/
       
   263 					2, /*UNS8 nodeId*/
       
   264 					0x1802, /*UNS16 index*/
       
   265 					0x02, /*UNS16 index*/
       
   266 					1, /*UNS8 count*/
       
   267 					0, /*UNS8 dataType*/
       
   268 					&transmitiontype,/*void *data*/
       
   269 					CheckSDO); /*SDOCallback_t Callback*/
       
   270 	}
       
   271 	if(MasterSyncCount % 50 == 25){
       
   272 		eprintf("Master : Change slave's transmit type to 0x00\n");
       
   273 		UNS8 transmitiontype = 0x00;
       
   274 		writeNetworkDictCallBack (&TestMaster_Data, /*CO_Data* d*/
       
   275 					2, /*UNS8 nodeId*/
       
   276 					0x1802, /*UNS16 index*/
       
   277 					0x02, /*UNS16 index*/
       
   278 					1, /*UNS8 count*/
       
   279 					0, /*UNS8 dataType*/
       
   280 					&transmitiontype,/*void *data*/
       
   281 					CheckSDO); /*SDOCallback_t Callback*/
       
   282 	}
       
   283 	MasterSyncCount++;
       
   284 }