diff -r dbf27bc2fd99 -r 6a5cdca4de01 examples/TestMasterSlave/TestSlave.c --- 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]);