# HG changeset patch # User etisserant # Date 1194874714 -3600 # Node ID 68e83c3ffbb5a7263fd707869da0a5573c4d4709 # Parent fed411af774a6b252b693279b86b984414993906 Better EMCY support. Now EMCY COB-ID depend on OD 1014h entry, as told in DS-301. diff -r fed411af774a -r 68e83c3ffbb5 examples/DS401_Master/TestMaster.c --- a/examples/DS401_Master/TestMaster.c Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/DS401_Master/TestMaster.c Mon Nov 12 14:38:34 2007 +0100 @@ -117,6 +117,9 @@ { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 } }; +/* index 0x1014 : Emergency COB ID */ + UNS32 TestMaster_obj1014 = 0x0; /* 0 */ + /* index 0x1016 : Consumer Heartbeat Time. */ UNS8 TestMaster_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/ UNS32 TestMaster_obj1016[] = diff -r fed411af774a -r 68e83c3ffbb5 examples/DS401_Slave_Gui/ObjDict.c --- a/examples/DS401_Slave_Gui/ObjDict.c Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/DS401_Slave_Gui/ObjDict.c Mon Nov 12 14:38:34 2007 +0100 @@ -216,6 +216,9 @@ { RW, uint32, sizeof (UNS32), (void*)&ObjDict_obj1011_Restore_All_Default_Parameters } }; +/* index 0x1014 : Emergency COB ID */ + UNS32 ObjDict_obj1014 = 0x0; /* 0 */ + /* index 0x1016 : Consumer Heartbeat Time. */ UNS8 ObjDict_highestSubIndex_obj1016 = 3; /* number of subindex - 1*/ UNS32 ObjDict_obj1016[] = diff -r fed411af774a -r 68e83c3ffbb5 examples/TestMasterMicroMod/TestMaster.c --- a/examples/TestMasterMicroMod/TestMaster.c Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/TestMasterMicroMod/TestMaster.c Mon Nov 12 14:38:34 2007 +0100 @@ -105,6 +105,9 @@ { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1006 } }; +/* index 0x1014 : Emergency COB ID */ + UNS32 TestMaster_obj1014 = 0x0; /* 0 */ + /* index 0x1016 : Consumer Heartbeat Time. */ UNS8 TestMaster_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/ UNS32 TestMaster_obj1016[] = diff -r fed411af774a -r 68e83c3ffbb5 examples/TestMasterSlave/TestMaster.c --- a/examples/TestMasterSlave/TestMaster.c Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/TestMasterSlave/TestMaster.c Mon Nov 12 14:38:34 2007 +0100 @@ -139,6 +139,13 @@ { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1011_Restore_Manufacturer_Default_Parameters } }; +/* index 0x1014 : Emergency COB ID. */ + UNS32 TestMaster_obj1014 = 0x80; /* 128 */ + subindex TestMaster_Index1014[] = + { + { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1014 } + }; + /* index 0x1016 : Consumer Heartbeat Time. */ UNS8 TestMaster_highestSubIndex_obj1016 = 1; /* number of subindex - 1*/ UNS32 TestMaster_obj1016[] = @@ -416,6 +423,7 @@ { (subindex*)TestMaster_Index1006,sizeof(TestMaster_Index1006)/sizeof(TestMaster_Index1006[0]), 0x1006}, { (subindex*)TestMaster_Index1010,sizeof(TestMaster_Index1010)/sizeof(TestMaster_Index1010[0]), 0x1010}, { (subindex*)TestMaster_Index1011,sizeof(TestMaster_Index1011)/sizeof(TestMaster_Index1011[0]), 0x1011}, + { (subindex*)TestMaster_Index1014,sizeof(TestMaster_Index1014)/sizeof(TestMaster_Index1014[0]), 0x1014}, { (subindex*)TestMaster_Index1016,sizeof(TestMaster_Index1016)/sizeof(TestMaster_Index1016[0]), 0x1016}, { (subindex*)TestMaster_Index1018,sizeof(TestMaster_Index1018)/sizeof(TestMaster_Index1018[0]), 0x1018}, { (subindex*)TestMaster_Index1280,sizeof(TestMaster_Index1280)/sizeof(TestMaster_Index1280[0]), 0x1280}, @@ -454,31 +462,32 @@ case 0x1006: i = 3;*callbacks = TestMaster_Index1006_callbacks; break; case 0x1010: i = 4;break; case 0x1011: i = 5;break; - case 0x1016: i = 6;break; - case 0x1018: i = 7;break; - case 0x1280: i = 8;break; - case 0x1400: i = 9;break; - case 0x1401: i = 10;break; - case 0x1402: i = 11;break; - case 0x1403: i = 12;break; - case 0x1600: i = 13;break; - case 0x1601: i = 14;break; - case 0x1602: i = 15;break; - case 0x1603: i = 16;break; - case 0x1F22: i = 17;break; - case 0x2000: i = 18;break; - case 0x2001: i = 19;break; - case 0x2002: i = 20;break; - case 0x2003: i = 21;break; - case 0x2004: i = 22;break; - case 0x2005: i = 23;break; - case 0x2006: i = 24;break; - case 0x2007: i = 25;break; - case 0x2008: i = 26;break; - case 0x2009: i = 27;break; - case 0x200A: i = 28;break; - case 0x200B: i = 29;break; - case 0x200C: i = 30;break; + case 0x1014: i = 6;break; + case 0x1016: i = 7;break; + case 0x1018: i = 8;break; + case 0x1280: i = 9;break; + case 0x1400: i = 10;break; + case 0x1401: i = 11;break; + case 0x1402: i = 12;break; + case 0x1403: i = 13;break; + case 0x1600: i = 14;break; + case 0x1601: i = 15;break; + case 0x1602: i = 16;break; + case 0x1603: i = 17;break; + case 0x1F22: i = 18;break; + case 0x2000: i = 19;break; + case 0x2001: i = 20;break; + case 0x2002: i = 21;break; + case 0x2003: i = 22;break; + case 0x2004: i = 23;break; + case 0x2005: i = 24;break; + case 0x2006: i = 25;break; + case 0x2007: i = 26;break; + case 0x2008: i = 27;break; + case 0x2009: i = 28;break; + case 0x200A: i = 29;break; + case 0x200B: i = 30;break; + case 0x200C: i = 31;break; default: *errorCode = OD_NO_SUCH_OBJECT; return NULL; @@ -496,18 +505,18 @@ quick_index TestMaster_firstIndex = { 0, /* SDO_SVR */ - 8, /* SDO_CLT */ - 9, /* PDO_RCV */ - 13, /* PDO_RCV_MAP */ + 9, /* SDO_CLT */ + 10, /* PDO_RCV */ + 14, /* PDO_RCV_MAP */ 0, /* PDO_TRS */ 0 /* PDO_TRS_MAP */ }; quick_index TestMaster_lastIndex = { 0, /* SDO_SVR */ - 8, /* SDO_CLT */ - 12, /* PDO_RCV */ - 16, /* PDO_RCV_MAP */ + 9, /* SDO_CLT */ + 13, /* PDO_RCV */ + 17, /* PDO_RCV_MAP */ 0, /* PDO_TRS */ 0 /* PDO_TRS_MAP */ }; diff -r fed411af774a -r 68e83c3ffbb5 examples/TestMasterSlave/TestMaster.od --- a/examples/TestMasterSlave/TestMaster.od Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/TestMasterSlave/TestMaster.od Mon Nov 12 14:38:34 2007 +0100 @@ -1,18 +1,18 @@ - - + + - - - - - - - - - + + + + + + + + + @@ -30,7 +30,7 @@ - + @@ -66,15 +66,15 @@ - - - - - - - - - + + + + + + + + + @@ -92,7 +92,7 @@ - + @@ -128,15 +128,15 @@ - - - - - - - - - + + + + + + + + + @@ -154,7 +154,7 @@ - + @@ -190,15 +190,15 @@ - - - - - - - - - + + + + + + + + + @@ -216,7 +216,7 @@ - + @@ -252,15 +252,15 @@ - - - - - - - - - + + + + + + + + + @@ -278,7 +278,7 @@ - + @@ -314,15 +314,15 @@ - - - - - - - - - + + + + + + + + + @@ -354,15 +354,15 @@ - - - - - - - - - + + + + + + + + + @@ -380,7 +380,7 @@ - + @@ -416,15 +416,15 @@ - - - - - - - - - + + + + + + + + + @@ -442,7 +442,7 @@ - + @@ -478,15 +478,15 @@ - - - - - - - - - + + + + + + + + + @@ -504,7 +504,7 @@ - + @@ -540,15 +540,15 @@ - - - - - - - - - + + + + + + + + + @@ -566,7 +566,7 @@ - + @@ -602,15 +602,15 @@ - - - - - - - - - + + + + + + + + + @@ -628,7 +628,7 @@ - + @@ -664,15 +664,15 @@ - - - - - - - - - + + + + + + + + + @@ -690,7 +690,7 @@ - + @@ -726,15 +726,15 @@ - - - - - - - - - + + + + + + + + + @@ -752,7 +752,7 @@ - + @@ -788,15 +788,15 @@ - - - - - - - - - + + + + + + + + + @@ -814,7 +814,7 @@ - + @@ -850,15 +850,15 @@ - - - - - - - - - + + + + + + + + + @@ -876,7 +876,7 @@ - + @@ -912,15 +912,15 @@ - - - - - - - - - + + + + + + + + + @@ -938,7 +938,7 @@ - + @@ -974,15 +974,15 @@ - - - - - - - - - + + + + + + + + + @@ -1000,7 +1000,7 @@ - + @@ -1035,16 +1035,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -1062,7 +1124,7 @@ - + @@ -1098,7 +1160,7 @@ - + @@ -1113,8 +1175,8 @@ - - + + @@ -1132,7 +1194,7 @@ - + @@ -1168,15 +1230,15 @@ - - - - - - - - - + + + + + + + + + @@ -1194,7 +1256,7 @@ - + @@ -1230,15 +1292,15 @@ - - - - - - - - - + + + + + + + + + @@ -1256,7 +1318,7 @@ - + @@ -1292,15 +1354,15 @@ - - - - - - - - - + + + + + + + + + @@ -1318,7 +1380,7 @@ - + @@ -1354,15 +1416,15 @@ - - - - - - - - - + + + + + + + + + @@ -1380,7 +1442,7 @@ - + @@ -1416,15 +1478,15 @@ - - - - - - - - - + + + + + + + + + @@ -1442,7 +1504,7 @@ - + @@ -1478,15 +1540,15 @@ - - - - - - - - - + + + + + + + + + @@ -1504,7 +1566,7 @@ - + @@ -1540,15 +1602,15 @@ - - - - - - - - - + + + + + + + + + @@ -1566,7 +1628,7 @@ - + @@ -1602,15 +1664,15 @@ - - - - - - - - - + + + + + + + + + @@ -1628,7 +1690,7 @@ - + @@ -1664,15 +1726,15 @@ - - - - - - - - - + + + + + + + + + @@ -1690,7 +1752,7 @@ - + @@ -1726,15 +1788,15 @@ - - - - - - - - - + + + + + + + + + @@ -1752,7 +1814,7 @@ - + @@ -1788,15 +1850,15 @@ - - - - - - - - - + + + + + + + + + @@ -1814,7 +1876,7 @@ - + @@ -1850,15 +1912,15 @@ - - - - - - - - - + + + + + + + + + @@ -1876,7 +1938,7 @@ - + @@ -1912,15 +1974,15 @@ - - - - - - - - - + + + + + + + + + @@ -1938,7 +2000,7 @@ - + @@ -1974,15 +2036,15 @@ - - - - - - - - - + + + + + + + + + @@ -2000,7 +2062,7 @@ - + @@ -2036,15 +2098,15 @@ - - - - - - - - - + + + + + + + + + @@ -2062,7 +2124,7 @@ - + @@ -2098,7 +2160,7 @@ - + @@ -2113,8 +2175,8 @@ - - + + @@ -2132,7 +2194,7 @@ - + @@ -2168,15 +2230,15 @@ - - - - - - - - - + + + + + + + + + @@ -2194,7 +2256,7 @@ - + @@ -2230,15 +2292,15 @@ - - - - - - - - - + + + + + + + + + @@ -2256,7 +2318,7 @@ - + @@ -2291,70 +2353,132 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2369,26 +2493,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -2403,7 +2527,7 @@ - + @@ -2418,75 +2542,75 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -2501,8 +2625,8 @@ - - + + @@ -2520,7 +2644,7 @@ - + @@ -2535,7 +2659,7 @@ - + @@ -2550,137 +2674,13 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + - + @@ -2695,8 +2695,8 @@ - - + + @@ -2714,7 +2714,7 @@ - + @@ -2750,15 +2750,15 @@ - - - - - - - - - + + + + + + + + + @@ -2776,7 +2776,7 @@ - + @@ -2812,15 +2812,15 @@ - - - - - - - - - + + + + + + + + + @@ -2838,7 +2838,7 @@ - + @@ -2874,15 +2874,15 @@ - - - - - - - - - + + + + + + + + + @@ -2900,7 +2900,7 @@ - + @@ -2936,15 +2936,15 @@ - - - - - - - - - + + + + + + + + + @@ -2962,7 +2962,7 @@ - + @@ -2998,15 +2998,15 @@ - - - - - - - - - + + + + + + + + + @@ -3024,7 +3024,7 @@ - + @@ -3060,15 +3060,15 @@ - - - - - - - - - + + + + + + + + + @@ -3086,7 +3086,7 @@ - + @@ -3122,15 +3122,15 @@ - - - - - - - - - + + + + + + + + + @@ -3148,7 +3148,7 @@ - + @@ -3183,420 +3183,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -3611,26 +3199,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -3645,7 +3233,7 @@ - + @@ -3660,75 +3248,199 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3743,8 +3455,8 @@ - - + + @@ -3762,7 +3474,7 @@ - + @@ -3777,7 +3489,7 @@ - + @@ -3792,21 +3504,21 @@ - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + @@ -3824,7 +3536,7 @@ - + @@ -3839,152 +3551,130 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -3999,26 +3689,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -4033,7 +3723,7 @@ - + @@ -4048,13 +3738,261 @@ - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4069,26 +4007,26 @@ - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + @@ -4103,7 +4041,7 @@ - + @@ -4118,21 +4056,83 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -4150,7 +4150,7 @@ - + @@ -4185,34 +4185,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4227,18 +4227,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -4248,15 +4248,15 @@ - - - - - - - - - + + + + + + + + + @@ -4274,7 +4274,7 @@ - + @@ -4310,15 +4310,15 @@ - - - - - - - - - + + + + + + + + + @@ -4336,7 +4336,7 @@ - + @@ -4371,34 +4371,34 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -4413,18 +4413,18 @@ - - - - - - - - - - - - + + + + + + + + + + + + @@ -4434,15 +4434,15 @@ - - - - - - - - - + + + + + + + + + @@ -4460,7 +4460,7 @@ - + @@ -4495,194 +4495,8 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + @@ -4697,8 +4511,8 @@ - - + + @@ -4716,7 +4530,7 @@ - + @@ -4731,7 +4545,7 @@ - + @@ -4746,21 +4560,207 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - + + + + + + + + + @@ -4778,7 +4778,7 @@ - + @@ -4814,15 +4814,15 @@ - - - - - - - - - + + + + + + + + + @@ -4840,7 +4840,7 @@ - + @@ -4876,15 +4876,15 @@ - - - - - - - - - + + + + + + + + + @@ -4902,7 +4902,7 @@ - + @@ -4938,7 +4938,7 @@ - + @@ -4953,8 +4953,8 @@ - - + + @@ -4972,7 +4972,7 @@ - + @@ -5008,7 +5008,7 @@ - + @@ -5063,7 +5063,7 @@ - + @@ -5073,7 +5073,7 @@ - + @@ -5082,7 +5082,7 @@ - + @@ -5091,7 +5091,7 @@ - + @@ -5100,14 +5100,18 @@ + + + + - + - + @@ -5116,7 +5120,7 @@ - + @@ -5128,7 +5132,7 @@ - + @@ -5143,7 +5147,7 @@ - + @@ -5153,7 +5157,7 @@ - + @@ -5172,7 +5176,7 @@ - + @@ -5182,27 +5186,27 @@ - + - + - + - - + + - + @@ -5211,9 +5215,9 @@ - + - + @@ -5222,20 +5226,20 @@ - + - + - - - - - - - - - + + + + + + + + + @@ -5267,15 +5271,15 @@ - - - - - - - - - + + + + + + + + + @@ -5307,15 +5311,15 @@ - - - - - - - - - + + + + + + + + + @@ -5347,15 +5351,15 @@ - - - - - - - - - + + + + + + + + + @@ -5387,15 +5391,15 @@ - - - - - - - - - + + + + + + + + + @@ -5427,15 +5431,15 @@ - - - - - - - - - + + + + + + + + + @@ -5467,15 +5471,15 @@ - - - - - - - - - + + + + + + + + + @@ -5507,15 +5511,15 @@ - - - - - - - - - + + + + + + + + + @@ -5547,15 +5551,15 @@ - - - - - - - - - + + + + + + + + + @@ -5587,15 +5591,15 @@ - - - - - - - - - + + + + + + + + + @@ -5627,15 +5631,15 @@ - - - - - - - - - + + + + + + + + + @@ -5667,15 +5671,15 @@ - - - - - - - - - + + + + + + + + + @@ -5707,15 +5711,15 @@ - - - - - - - - - + + + + + + + + + @@ -5746,18 +5750,18 @@ - + - - - - - - - - - + + + + + + + + + @@ -5775,7 +5779,7 @@ - + @@ -5811,15 +5815,15 @@ - - - - - - - - - + + + + + + + + + @@ -5837,7 +5841,7 @@ - + @@ -5873,15 +5877,15 @@ - - - - - - - - - + + + + + + + + + @@ -5899,7 +5903,7 @@ - + diff -r fed411af774a -r 68e83c3ffbb5 examples/TestMasterSlave/TestSlave.c --- a/examples/TestMasterSlave/TestSlave.c Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/TestMasterSlave/TestSlave.c Mon Nov 12 14:38:34 2007 +0100 @@ -176,6 +176,13 @@ { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1011_Restore_Manufacturer_Default_Parameters } }; +/* index 0x1014 : Emergency COB ID. */ + UNS32 TestSlave_obj1014 = 0x80; /* 128 */ + subindex TestSlave_Index1014[] = + { + { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1014 } + }; + /* index 0x1016 : Consumer Heartbeat Time */ UNS8 TestSlave_highestSubIndex_obj1016 = 0; UNS32 TestSlave_obj1016[]={0}; @@ -512,6 +519,7 @@ { (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_Index1014,sizeof(TestSlave_Index1014)/sizeof(TestSlave_Index1014[0]), 0x1014}, { (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}, @@ -552,32 +560,33 @@ case 0x1006: i = 4;*callbacks = TestSlave_Index1006_callbacks; break; case 0x1010: i = 5;*callbacks = TestSlave_Index1010_callbacks; break; case 0x1011: i = 6;*callbacks = TestSlave_Index1011_callbacks; break; - case 0x1017: i = 7;*callbacks = TestSlave_Index1017_callbacks; break; - case 0x1018: i = 8;break; - case 0x1200: i = 9;break; - case 0x1800: i = 10;*callbacks = TestSlave_Index1800_callbacks; break; - case 0x1801: i = 11;*callbacks = TestSlave_Index1801_callbacks; break; - case 0x1802: i = 12;*callbacks = TestSlave_Index1802_callbacks; break; - case 0x1803: i = 13;*callbacks = TestSlave_Index1803_callbacks; break; - case 0x1804: i = 14;*callbacks = TestSlave_Index1804_callbacks; break; - case 0x1A00: i = 15;break; - case 0x1A01: i = 16;break; - case 0x1A02: i = 17;break; - case 0x1A03: i = 18;break; - case 0x1A04: i = 19;break; - case 0x2000: i = 20;break; - case 0x2001: i = 21;break; - case 0x2002: i = 22;break; - case 0x2003: i = 23;break; - case 0x2004: i = 24;break; - case 0x2005: i = 25;break; - case 0x2006: i = 26;break; - case 0x2007: i = 27;break; - case 0x2008: i = 28;break; - case 0x2009: i = 29;break; - case 0x200A: i = 30;break; - case 0x200B: i = 31;break; - case 0x200C: i = 32;break; + case 0x1014: i = 7;break; + case 0x1017: i = 8;*callbacks = TestSlave_Index1017_callbacks; break; + case 0x1018: i = 9;break; + case 0x1200: i = 10;break; + case 0x1800: i = 11;*callbacks = TestSlave_Index1800_callbacks; break; + case 0x1801: i = 12;*callbacks = TestSlave_Index1801_callbacks; break; + case 0x1802: i = 13;*callbacks = TestSlave_Index1802_callbacks; break; + case 0x1803: i = 14;*callbacks = TestSlave_Index1803_callbacks; break; + case 0x1804: i = 15;*callbacks = TestSlave_Index1804_callbacks; break; + case 0x1A00: i = 16;break; + case 0x1A01: i = 17;break; + case 0x1A02: i = 18;break; + case 0x1A03: i = 19;break; + case 0x1A04: i = 20;break; + case 0x2000: i = 21;break; + case 0x2001: i = 22;break; + case 0x2002: i = 23;break; + case 0x2003: i = 24;break; + case 0x2004: i = 25;break; + case 0x2005: i = 26;break; + case 0x2006: i = 27;break; + case 0x2007: i = 28;break; + case 0x2008: i = 29;break; + case 0x2009: i = 30;break; + case 0x200A: i = 31;break; + case 0x200B: i = 32;break; + case 0x200C: i = 33;break; default: *errorCode = OD_NO_SUCH_OBJECT; return NULL; @@ -594,21 +603,21 @@ s_PDO_status TestSlave_PDO_status[5] = {s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer}; quick_index TestSlave_firstIndex = { - 9, /* SDO_SVR */ + 10, /* SDO_SVR */ 0, /* SDO_CLT */ 0, /* PDO_RCV */ 0, /* PDO_RCV_MAP */ - 10, /* PDO_TRS */ - 15 /* PDO_TRS_MAP */ + 11, /* PDO_TRS */ + 16 /* PDO_TRS_MAP */ }; quick_index TestSlave_lastIndex = { - 9, /* SDO_SVR */ + 10, /* SDO_SVR */ 0, /* SDO_CLT */ 0, /* PDO_RCV */ 0, /* PDO_RCV_MAP */ - 14, /* PDO_TRS */ - 19 /* PDO_TRS_MAP */ + 15, /* PDO_TRS */ + 20 /* PDO_TRS_MAP */ }; UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0]); diff -r fed411af774a -r 68e83c3ffbb5 examples/TestMasterSlave/TestSlave.od --- a/examples/TestMasterSlave/TestSlave.od Mon Nov 12 13:24:17 2007 +0100 +++ b/examples/TestMasterSlave/TestSlave.od Mon Nov 12 14:38:34 2007 +0100 @@ -1,10 +1,10 @@ - - + + TestSlave - + @@ -59,7 +59,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -78,7 +78,7 @@ - + @@ -87,13 +87,13 @@ - + - + @@ -102,8 +102,12 @@ + + + + - + @@ -114,7 +118,7 @@ - + @@ -123,7 +127,7 @@ - + @@ -145,7 +149,7 @@ - + @@ -155,7 +159,7 @@ - + @@ -165,13 +169,13 @@ - + - + @@ -186,7 +190,7 @@ - + @@ -199,7 +203,7 @@ - + @@ -209,17 +213,17 @@ - + - + - + - + @@ -228,10 +232,10 @@ - + - + @@ -240,7 +244,7 @@ - + @@ -251,10 +255,10 @@ - + - + EVENT @@ -263,7 +267,7 @@ - + 5000*100 µC = 500 ms @@ -272,7 +276,7 @@ - + @@ -281,7 +285,7 @@ - + 1000 ms @@ -292,10 +296,10 @@ - + - + RTR_SYNC @@ -306,10 +310,10 @@ - + - + RTR @@ -320,7 +324,7 @@ - + @@ -329,7 +333,7 @@ - + @@ -338,7 +342,7 @@ - + @@ -347,7 +351,7 @@ - + @@ -355,18 +359,18 @@ - + - - - - - - - - - + + + + + + + + + @@ -398,15 +402,15 @@ - - - - - - - - - + + + + + + + + + @@ -438,15 +442,15 @@ - - - - - - - - - + + + + + + + + + @@ -478,15 +482,15 @@ - - - - - - - - - + + + + + + + + + @@ -518,15 +522,15 @@ - - - - - - - - - + + + + + + + + + @@ -558,15 +562,15 @@ - - - - - - - - - + + + + + + + + + @@ -598,15 +602,15 @@ - - - - - - - - - + + + + + + + + + @@ -638,15 +642,15 @@ - - - - - - - - - + + + + + + + + + @@ -678,15 +682,15 @@ - - - - - - - - - + + + + + + + + + @@ -718,15 +722,15 @@ - - - - - - - - - + + + + + + + + + @@ -758,15 +762,15 @@ - - - - - - - - - + + + + + + + + + @@ -798,15 +802,15 @@ - - - - - - - - - + + + + + + + + + @@ -838,15 +842,15 @@ - - - - - - - - - + + + + + + + + + @@ -877,7 +881,7 @@ - + slave diff -r fed411af774a -r 68e83c3ffbb5 include/can_driver.h --- a/include/can_driver.h Mon Nov 12 13:24:17 2007 +0100 +++ b/include/can_driver.h Mon Nov 12 14:38:34 2007 +0100 @@ -61,7 +61,12 @@ UNS8 fc = m->cob_id.w >> 7; switch(fc) { - _P(SYNC) + case SYNC: + if(m->cob_id.w == 0x080) + printf("SYNC "); + else + printf("EMCY "); + break; _P(TIME_STAMP) _P(PDO1tx) _P(PDO1rx) diff -r fed411af774a -r 68e83c3ffbb5 include/data.h --- a/include/data.h Mon Nov 12 13:24:17 2007 +0100 +++ b/include/data.h Mon Nov 12 14:38:34 2007 +0100 @@ -102,6 +102,7 @@ UNS8* error_number; UNS32* error_first_element; UNS8* error_register; + UNS32* error_cobid; s_errors error_data[EMCY_MAX_ERRORS]; post_emcy_t post_emcy; @@ -199,6 +200,7 @@ & NODE_PREFIX ## _highestSubIndex_obj1003, /* error_number */\ & NODE_PREFIX ## _obj1003[0], /* error_first_element */\ & NODE_PREFIX ## _obj1001, /* error_register */\ + & NODE_PREFIX ## _obj1014, /* error_cobid */\ /* error_data: structure s_errors */\ {\ REPEAT_EMCY_MAX_ERRORS_TIMES(ERROR_DATA_INITIALIZER)\ diff -r fed411af774a -r 68e83c3ffbb5 objdictgen/commondialogs.py --- a/objdictgen/commondialogs.py Mon Nov 12 13:24:17 2007 +0100 +++ b/objdictgen/commondialogs.py Mon Nov 12 14:38:34 2007 +0100 @@ -953,7 +953,6 @@ label='Emergency support', name='Emergency', parent=self, pos=wx.Point(0, 0), size=wx.Size(0, 24), style=0) self.Emergency.SetValue(False) - self.Emergency.Enable(False) self.SaveConfig = wx.CheckBox(id=ID_CREATENODEDIALOGSAVECONFIG, label='Save Configuration', name='SaveConfig', parent=self, diff -r fed411af774a -r 68e83c3ffbb5 objdictgen/gen_cfile.py --- a/objdictgen/gen_cfile.py Mon Nov 12 13:24:17 2007 +0100 +++ b/objdictgen/gen_cfile.py Mon Nov 12 14:38:34 2007 +0100 @@ -363,6 +363,13 @@ UNS32 %(NodeName)s_obj1006 = 0x0; /* 0 */ """%texts + if 0x1014 not in communicationlist: + entry_infos = Node.GetEntryInfos(0x1014) + texts["EntryName"] = entry_infos["name"] + indexContents[0x1014] = """\n/* index 0x1014 : %(EntryName)s */ + UNS32 %(NodeName)s_obj1014 = 0x0; /* 0 */ +"""%texts + if 0x1016 in communicationlist: texts["nombre"] = Node.GetEntry(0x1016, 0) else: diff -r fed411af774a -r 68e83c3ffbb5 src/emcy.c --- a/src/emcy.c Mon Nov 12 13:24:17 2007 +0100 +++ b/src/emcy.c Mon Nov 12 14:38:34 2007 +0100 @@ -39,7 +39,7 @@ UNS32 OnNumberOfErrorsUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex); -UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister); +UNS8 sendEMCY(CO_Data* d, UNS16 errCode, UNS8 errRegister); /*! This is called when Index 0x1003 is updated. @@ -94,13 +94,13 @@ ** ** @return **/ -UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister) +UNS8 sendEMCY(CO_Data* d, UNS16 errCode, UNS8 errRegister) { Message m; MSG_WAR(0x3051, "sendEMCY", 0); - m.cob_id.w = cob_id ; + m.cob_id.w = *d->error_cobid; m.rtr = NOT_A_REQUEST; m.len = 8; m.data[0] = errCode & 0xFF; /* LSB */ @@ -170,7 +170,7 @@ /* send EMCY message */ if (d->CurrentCommunicationState.csEmergency) - return sendEMCY(d, *d->bDeviceNodeId + 0x080, errCode, *d->error_register); + return sendEMCY(d, errCode, *d->error_register); else return 1; } @@ -208,7 +208,7 @@ d->error_state = Error_free; /* send a EMCY message with code "Error Reset or No Error" */ if (d->CurrentCommunicationState.csEmergency) - sendEMCY(d, *d->bDeviceNodeId + 0x080, 0x0000, 0x00); + sendEMCY(d, 0x0000, 0x00); } *d->error_register = errRegister_tmp; } diff -r fed411af774a -r 68e83c3ffbb5 src/states.c --- a/src/states.c Mon Nov 12 13:24:17 2007 +0100 +++ b/src/states.c Mon Nov 12 14:38:34 2007 +0100 @@ -288,6 +288,11 @@ offset ++; } } + + /* Update EMCY COB-ID if already set to default*/ + if(*d->error_cobid == *d->bDeviceNodeId + 0x80) + *d->error_cobid = nodeId + 0x80; + /* bDeviceNodeId is defined in the object dictionary. */ *d->bDeviceNodeId = nodeId; }