--- a/examples/TestMasterSlave/Master.c Fri Jun 29 19:51:39 2007 +0200
+++ b/examples/TestMasterSlave/Master.c Mon Jul 02 18:22:58 2007 +0200
@@ -164,15 +164,41 @@
void TestMaster_post_sync()
{
eprintf("TestMaster_post_sync\n");
- 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);
+ eprintf("Master: %d %d %d %d %d %d %d %d %d %x %x %d %d\n",
+ MasterMap1,
+ MasterMap2,
+ MasterMap3,
+ MasterMap4,
+ MasterMap5,
+ MasterMap6,
+ MasterMap7,
+ MasterMap8,
+ MasterMap9,
+ MasterMap10,
+ MasterMap11,
+ MasterMap12,
+ MasterMap13);
}
char query_result = 0;
char waiting_answer = 0;
+
+static void CheckSDO(CO_Data* d, UNS8 nodeId)
+{
+ UNS32 abortCode;
+ if(getWriteResultNetworkDict (d, nodeId, &abortCode) != SDO_FINISHED)
+ eprintf("Master : Failed in changing Slave's transmit type AbortCode :%4.4x \n", abortCode);
+
+ /* Finalise last SDO transfer with this node */
+ closeSDOtransfer(&TestMaster_Data, nodeId, SDO_CLIENT);
+}
+
+
+static int MasterSyncCount = 0;
void TestMaster_post_TPDO()
{
- eprintf("TestMaster_post_TPDO\n");
+ eprintf("TestMaster_post_TPDO MasterSyncCount = %d \n", MasterSyncCount);
//
// {
// char zero = 0;
@@ -188,6 +214,7 @@
// }
// }
+#if 0
if(waiting_answer){
UNS32 abortCode;
UNS8 size;
@@ -214,7 +241,7 @@
case SDO_UPLOAD_IN_PROGRESS:
break;
}
- }else if(MasterMap1 % 10 == 0){
+ }else if(MasterSyncCount % 10 == 0){
readNetworkDict (
&TestMaster_Data,
0x02,
@@ -223,4 +250,35 @@
0);
waiting_answer = 1;
}
-}
+#endif
+ if(MasterSyncCount % 17 == 0){
+ eprintf("Master : Ask RTR PDO (0x1402)\n");
+ sendPDOrequest(&TestMaster_Data, 0x1402 );
+ sendPDOrequest(&TestMaster_Data, 0x1403 );
+ }
+ if(MasterSyncCount % 50 == 0){
+ eprintf("Master : Change slave's transmit type to 0xFF\n");
+ UNS8 transmitiontype = 0xFF;
+ writeNetworkDictCallBack (&TestMaster_Data, /*CO_Data* d*/
+ 2, /*UNS8 nodeId*/
+ 0x1802, /*UNS16 index*/
+ 0x02, /*UNS16 index*/
+ 1, /*UNS8 count*/
+ 0, /*UNS8 dataType*/
+ &transmitiontype,/*void *data*/
+ CheckSDO); /*SDOCallback_t Callback*/
+ }
+ if(MasterSyncCount % 50 == 25){
+ eprintf("Master : Change slave's transmit type to 0x00\n");
+ UNS8 transmitiontype = 0x00;
+ writeNetworkDictCallBack (&TestMaster_Data, /*CO_Data* d*/
+ 2, /*UNS8 nodeId*/
+ 0x1802, /*UNS16 index*/
+ 0x02, /*UNS16 index*/
+ 1, /*UNS8 count*/
+ 0, /*UNS8 dataType*/
+ &transmitiontype,/*void *data*/
+ CheckSDO); /*SDOCallback_t Callback*/
+ }
+ MasterSyncCount++;
+}