examples/TestMasterSlave/TestSlave.c
changeset 23 6a5cdca4de01
parent 0 4472ee7c6c3e
child 79 9d8959095936
--- a/examples/TestMasterSlave/TestSlave.c	Mon May 22 09:46:29 2006 +0200
+++ b/examples/TestMasterSlave/TestSlave.c	Tue May 23 01:15:22 2006 +0200
@@ -63,21 +63,21 @@
 //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
 
 /* index 0x1000 :   Device Type. */
-                    UNS32 TestSlave_obj1000 = 0x12D;
+                    UNS32 TestSlave_obj1000 = 0x12D;	// 301
                     subindex TestSlave_Index1000[] = 
                      {
                        { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1000 }
                      };
 
 /* index 0x1001 :   Error Register. */
-                    UNS8 TestSlave_obj1001 = 0x0;
+                    UNS8 TestSlave_obj1001 = 0x0;	// 0
                     subindex TestSlave_Index1001[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_obj1001 }
                      };
 
 /* index 0x1005 :   SYNC COB ID. */
-                    UNS32 TestSlave_obj1005 = 0x80;
+                    UNS32 TestSlave_obj1005 = 0x80;	// 128
                     ODCallback_t TestSlave_Index1005_callbacks[] = 
                      {
                        NULL,
@@ -88,7 +88,7 @@
                      };
 
 /* index 0x1006 :   Communication / Cycle Period. */
-                    UNS32 TestSlave_obj1006 = 0x0;
+                    UNS32 TestSlave_obj1006 = 0x0;	// 0
                     ODCallback_t TestSlave_Index1006_callbacks[] = 
                      {
                        NULL,
@@ -98,13 +98,59 @@
                        { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1006 }
                      };
 
+/* index 0x1010 :   Store parameters. */
+                    UNS8 TestSlave_highestSubIndex_obj1010 = 4; // number of subindex - 1
+                    UNS32 TestSlave_obj1010_Save_All_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1010_Save_Communication_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1010_Save_Application_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1010_Save_Manufacturer_Parameters = 0x0;	// 0
+                    ODCallback_t TestSlave_Index1010_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     };
+                    subindex TestSlave_Index1010[] = 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1010 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_All_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Communication_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Application_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1010_Save_Manufacturer_Parameters }
+                     };
+
+/* index 0x1011 :   Restore Default Parameters. */
+                    UNS8 TestSlave_highestSubIndex_obj1011 = 4; // number of subindex - 1
+                    UNS32 TestSlave_obj1011_Restore_All_Default_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1011_Restore_Communication_Default_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1011_Restore_Application_Default_Parameters = 0x0;	// 0
+                    UNS32 TestSlave_obj1011_Restore_Manufacturer_Default_Parameters = 0x0;	// 0
+                    ODCallback_t TestSlave_Index1011_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     };
+                    subindex TestSlave_Index1011[] = 
+                     {
+                       { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1011 },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_All_Default_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Communication_Default_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Application_Default_Parameters },
+                       { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Manufacturer_Default_Parameters }
+                     };
+
 /* index 0x1016 :   Consumer Heartbeat Time */
                     UNS8 TestSlave_highestSubIndex_obj1016 = 0;
                     UNS32 TestSlave_obj1016[0];
                     subindex TestSlave_Index1016[0];
 
 /* index 0x1017 :   Producer Heartbeat Time. */
-                    UNS16 TestSlave_obj1017 = 0x3E8;
+                    UNS16 TestSlave_obj1017 = 0x3E8;	// 1000
                     subindex TestSlave_Index1017[] = 
                      {
                        { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1017 }
@@ -112,10 +158,10 @@
 
 /* index 0x1018 :   Identity. */
                     UNS8 TestSlave_highestSubIndex_obj1018 = 4; // number of subindex - 1
-                    UNS32 TestSlave_obj1018_Vendor_ID = 0x0;
-                    UNS32 TestSlave_obj1018_Product_Code = 0x0;
-                    UNS32 TestSlave_obj1018_Revision_Number = 0x0;
-                    UNS32 TestSlave_obj1018_Serial_Number = 0x0;
+                    UNS32 TestSlave_obj1018_Vendor_ID = 0x0;	// 0
+                    UNS32 TestSlave_obj1018_Product_Code = 0x0;	// 0
+                    UNS32 TestSlave_obj1018_Revision_Number = 0x0;	// 0
+                    UNS32 TestSlave_obj1018_Serial_Number = 0x0;	// 0
                     subindex TestSlave_Index1018[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1018 },
@@ -127,8 +173,8 @@
 
 /* index 0x1200 :   Server SDO Parameter. */
                     UNS8 TestSlave_highestSubIndex_obj1200 = 2; // number of subindex - 1
-                    UNS32 TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x601;
-                    UNS32 TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x581;
+                    UNS32 TestSlave_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x601;	// 1537
+                    UNS32 TestSlave_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x581;	// 1409
                     subindex TestSlave_Index1200[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1200 },
@@ -138,11 +184,11 @@
 
 /* index 0x1800 :   Transmit PDO 1 Parameter. */
                     UNS8 TestSlave_highestSubIndex_obj1800 = 5; // number of subindex - 1
-                    UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182;
-                    UNS8 TestSlave_obj1800_Transmission_Type = 0x1;
-                    UNS16 TestSlave_obj1800_Inhibit_Time = 0x0;
-                    UNS16 TestSlave_obj1800_Compatibility_Entry = 0x0;
-                    UNS16 TestSlave_obj1800_Event_Timer = 0x0;
+                    UNS32 TestSlave_obj1800_COB_ID_used_by_PDO = 0x182;	// 386
+                    UNS8 TestSlave_obj1800_Transmission_Type = 0x1;	// 1
+                    UNS16 TestSlave_obj1800_Inhibit_Time = 0x0;	// 0
+                    UNS16 TestSlave_obj1800_Compatibility_Entry = 0x0;	// 0
+                    UNS16 TestSlave_obj1800_Event_Timer = 0x0;	// 0
                     subindex TestSlave_Index1800[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 },
@@ -155,11 +201,11 @@
 
 /* index 0x1801 :   Transmit PDO 2 Parameter. */
                     UNS8 TestSlave_highestSubIndex_obj1801 = 5; // number of subindex - 1
-                    UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x282;
-                    UNS8 TestSlave_obj1801_Transmission_Type = 0x1;
-                    UNS16 TestSlave_obj1801_Inhibit_Time = 0x0;
-                    UNS16 TestSlave_obj1801_Compatibility_Entry = 0x0;
-                    UNS16 TestSlave_obj1801_Event_Timer = 0x0;
+                    UNS32 TestSlave_obj1801_COB_ID_used_by_PDO = 0x282;	// 642
+                    UNS8 TestSlave_obj1801_Transmission_Type = 0x1;	// 1
+                    UNS16 TestSlave_obj1801_Inhibit_Time = 0x0;	// 0
+                    UNS16 TestSlave_obj1801_Compatibility_Entry = 0x0;	// 0
+                    UNS16 TestSlave_obj1801_Event_Timer = 0x0;	// 0
                     subindex TestSlave_Index1801[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1801 },
@@ -174,8 +220,8 @@
                     UNS8 TestSlave_highestSubIndex_obj1A00 = 2; // number of subindex - 1
                     UNS32 TestSlave_obj1A00[] = 
                     {
-                      536870920,
-                      536936456
+                      0x20000008,	// 536870920
+                      0x20010008	// 536936456
                     };
                     subindex TestSlave_Index1A00[] = 
                      {
@@ -188,8 +234,8 @@
                     UNS8 TestSlave_highestSubIndex_obj1A01 = 2; // number of subindex - 1
                     UNS32 TestSlave_obj1A01[] = 
                     {
-                      537001992,
-                      537067528
+                      0x20020008,	// 537001992
+                      0x20030008	// 537067528
                     };
                     subindex TestSlave_Index1A01[] = 
                      {
@@ -228,6 +274,8 @@
   { (subindex*)TestSlave_Index1001,sizeof(TestSlave_Index1001)/sizeof(TestSlave_Index1001[0]), 0x1001},
   { (subindex*)TestSlave_Index1005,sizeof(TestSlave_Index1005)/sizeof(TestSlave_Index1005[0]), 0x1005},
   { (subindex*)TestSlave_Index1006,sizeof(TestSlave_Index1006)/sizeof(TestSlave_Index1006[0]), 0x1006},
+  { (subindex*)TestSlave_Index1010,sizeof(TestSlave_Index1010)/sizeof(TestSlave_Index1010[0]), 0x1010},
+  { (subindex*)TestSlave_Index1011,sizeof(TestSlave_Index1011)/sizeof(TestSlave_Index1011[0]), 0x1011},
   { (subindex*)TestSlave_Index1017,sizeof(TestSlave_Index1017)/sizeof(TestSlave_Index1017[0]), 0x1017},
   { (subindex*)TestSlave_Index1018,sizeof(TestSlave_Index1018)/sizeof(TestSlave_Index1018[0]), 0x1018},
   { (subindex*)TestSlave_Index1200,sizeof(TestSlave_Index1200)/sizeof(TestSlave_Index1200[0]), 0x1200},
@@ -244,22 +292,25 @@
 const indextable * TestSlave_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks)
 {
 	int i;
+	*callbacks = NULL;
 	switch(wIndex){
-		case 0x1000: i = 0; *callbacks = NULL; break;
-		case 0x1001: i = 1; *callbacks = NULL; break;
-		case 0x1005: i = 2; *callbacks = TestSlave_Index1005_callbacks; break;
-		case 0x1006: i = 3; *callbacks = TestSlave_Index1006_callbacks; break;
-		case 0x1017: i = 4; *callbacks = NULL; break;
-		case 0x1018: i = 5; *callbacks = NULL; break;
-		case 0x1200: i = 6; *callbacks = NULL; break;
-		case 0x1800: i = 7; *callbacks = NULL; break;
-		case 0x1801: i = 8; *callbacks = NULL; break;
-		case 0x1A00: i = 9; *callbacks = NULL; break;
-		case 0x1A01: i = 10; *callbacks = NULL; break;
-		case 0x2000: i = 11; *callbacks = NULL; break;
-		case 0x2001: i = 12; *callbacks = NULL; break;
-		case 0x2002: i = 13; *callbacks = NULL; break;
-		case 0x2003: i = 14; *callbacks = NULL; break;
+		case 0x1000: i = 0;break;
+		case 0x1001: i = 1;break;
+		case 0x1005: i = 2;*callbacks = TestSlave_Index1005_callbacks; break;
+		case 0x1006: i = 3;*callbacks = TestSlave_Index1006_callbacks; break;
+		case 0x1010: i = 4;*callbacks = TestSlave_Index1010_callbacks; break;
+		case 0x1011: i = 5;*callbacks = TestSlave_Index1011_callbacks; break;
+		case 0x1017: i = 6;break;
+		case 0x1018: i = 7;break;
+		case 0x1200: i = 8;break;
+		case 0x1800: i = 9;break;
+		case 0x1801: i = 10;break;
+		case 0x1A00: i = 11;break;
+		case 0x1A01: i = 12;break;
+		case 0x2000: i = 13;break;
+		case 0x2001: i = 14;break;
+		case 0x2002: i = 15;break;
+		case 0x2003: i = 16;break;
 		default:
 			*errorCode = OD_NO_SUCH_OBJECT;
 			return NULL;
@@ -274,21 +325,21 @@
 UNS8 TestSlave_count_sync[2] = {0,};
 
 quick_index TestSlave_firstIndex = {
-  SDO_SVR : 6,
+  SDO_SVR : 8,
   SDO_CLT : 0,
   PDO_RCV : 0,
   PDO_RCV_MAP : 0,
-  PDO_TRS : 7,
-  PDO_TRS_MAP : 9
+  PDO_TRS : 9,
+  PDO_TRS_MAP : 11
 };
 
 quick_index TestSlave_lastIndex = {
-  SDO_SVR : 6,
+  SDO_SVR : 8,
   SDO_CLT : 0,
   PDO_RCV : 0,
   PDO_RCV_MAP : 0,
-  PDO_TRS : 8,
-  PDO_TRS_MAP : 10
+  PDO_TRS : 10,
+  PDO_TRS_MAP : 12
 };
 
 UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0]);