diff -r 73bc47a0db55 -r a2ca09ac1523 examples/gene_SYNC_HCS12/objdict.c --- a/examples/gene_SYNC_HCS12/objdict.c Wed Dec 13 14:14:18 2006 +0100 +++ b/examples/gene_SYNC_HCS12/objdict.c Wed Dec 13 14:44:27 2006 +0100 @@ -20,211 +20,254 @@ Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ +/* File generated by gen_cfile.py. Should not be modified. */ + #include "objdict.h" /**************************************************************************/ /* Declaration of the mapped variables */ /**************************************************************************/ +UNS16 acceptanceFilter1 = 0x0; // Mapped at index 0x2015, subindex 0x00 +UNS16 acceptanceFilter2 = 0x0; // Mapped at index 0x2016, subindex 0x00 +UNS16 acceptanceFilter3 = 0x0; // Mapped at index 0x2017, subindex 0x00 +UNS16 acceptanceFilter4 = 0x0; // Mapped at index 0x2018, subindex 0x00 +UNS16 mask1 = 0x0; // Mapped at index 0x2019, subindex 0x00 +UNS16 mask2 = 0x0; // Mapped at index 0x2020, subindex 0x00 +UNS16 mask3 = 0x0; // Mapped at index 0x2021, subindex 0x00 +UNS16 mask4 = 0x0; // Mapped at index 0x2022, subindex 0x00 +UNS8 applyDownloadedFilters = 0x0; // Mapped at index 0x2023, subindex 0x00 /**************************************************************************/ /* Declaration of the value range types */ /**************************************************************************/ - - -UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, UNS32 unsValue, REAL32 realValue) +UNS32 gene_SYNC_valueRangeTest (UNS8 typeValue, void * value) { switch (typeValue) { } return 0; } - /**************************************************************************/ /* The node id */ /**************************************************************************/ -/* node_id default value. - This default value is deprecated. - You should always overwrite this by using the function setNodeId(UNS8 nodeId) in your C code. -*/ -#define NODE_ID 0x03 -UNS8 gene_SYNC_bDeviceNodeId = NODE_ID; - +/* node_id default value.*/ +UNS8 gene_SYNC_bDeviceNodeId = 0x03; //*****************************************************************************/ /* Array of message processing information */ -/* Should not be modified */ const UNS8 gene_SYNC_iam_a_slave = 1; - // Macros definition - -/* Beware : -index *must* be writen 4 numbers in hexa -sub_index *must* be writen 2 numbers in hexa -size_variable_in_UNS8 *must* be writen 2 numbers in hexa -*/ -#define PDO_MAP(index, sub_index, size_variable_in_bits)\ -0x ## index ## sub_index ## size_variable_in_bits - -/** This macro helps creating the object dictionary entries. - * by calling this macro - * it creates an entry in form of: 7 of entries, pointer to the entry. - */ -#define DeclareIndexTableEntry(entryname, index) { (subindex*)entryname,sizeof(entryname)/sizeof(entryname[0]), index} +TIMER_HANDLE gene_SYNC_heartBeatTimers[0]; //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ // // OBJECT DICTIONARY // //$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ -// Make your change, depending of your application - - -/* index 0x1000 : Device type. - You have to change the value below, so - it fits your canopen-slave-module */ - - /* Not used, so, should not be modified */ - - UNS32 gene_SYNC_obj1000 = 0; - subindex gene_SYNC_Index1000[] = - { - { RO, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1000 } - }; - -/* index 0x1001 : Error register. - Change the entries to fit your application - Not used, so, should not be modified */ - UNS8 gene_SYNC_obj1001 = 0x00000000; - subindex gene_SYNC_Index1001[] = - { - { RO, uint8, sizeof(UNS8), (void*)&gene_SYNC_obj1001 } - }; - -/* index 0x1005 : COB_ID SYNC */ - /* Should not be modified */ - UNS32 gene_SYNC_obj1005 = 0x40000080; // bit 30 = 1 : device can generate a SYNC message - // Beware, it is over written when the node - // enters in reset mode - // See initResetMode() in init.c - subindex gene_SYNC_Index1005[] = - { - { RW, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1005 } - }; - -/* index 0x1006 : SYNC period */ - // For producing the SYNC signal every n micro-seconds. - // Put 0 to not producing SYNC - UNS32 gene_SYNC_obj1006 = 0x000186A0; - // Default 0 to not produce SYNC // - // Beware, it is over written when the - // node enters in reset mode. - // See initResetMode() in init.c - subindex gene_SYNC_Index1006[] = - { - { RW, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1006 } - }; - - - TIMER_HANDLE gene_SYNC_heartBeatTimers[0]; - UNS32 gene_SYNC_obj1016[0]; - UNS8 gene_SYNC_obj1016_cnt = 0; + +/* index 0x1000 : Device Type. */ + UNS32 gene_SYNC_obj1000 = 0x0; // 0 + subindex gene_SYNC_Index1000[] = + { + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1000 } + }; + +/* index 0x1001 : Error Register. */ + UNS8 gene_SYNC_obj1001 = 0x0; // 0 + subindex gene_SYNC_Index1001[] = + { + { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_obj1001 } + }; + +/* index 0x1005 : SYNC COB ID. */ + UNS32 gene_SYNC_obj1005 = 0x40000080; // 1073741952 + ODCallback_t gene_SYNC_Index1005_callbacks[] = + { + NULL, + }; + subindex gene_SYNC_Index1005[] = + { + { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1005 } + }; + +/* index 0x1006 : Communication / Cycle Period. */ + UNS32 gene_SYNC_obj1006 = 0x2710; // 10000 + ODCallback_t gene_SYNC_Index1006_callbacks[] = + { + NULL, + }; + subindex gene_SYNC_Index1006[] = + { + { RW, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1006 } + }; + +/* index 0x1008 : Manufacturer Device Name. */ + UNS8 gene_SYNC_obj1008[10] = "GENE_SYNC"; + subindex gene_SYNC_Index1008[] = + { + { RO, visible_string, sizeof (gene_SYNC_obj1008), (void*)&gene_SYNC_obj1008 } + }; + +/* index 0x1016 : Consumer Heartbeat Time */ + UNS8 gene_SYNC_highestSubIndex_obj1016 = 0; + UNS32 gene_SYNC_obj1016[0]; subindex gene_SYNC_Index1016[0]; - UNS16 gene_SYNC_obj1017 = 0x0000; -/* index 0x1018 : Identity object */ - /** index 1018: identify object. Adjust the entries for your node/company - */ - /* Values can be modified */ - - s_identity gene_SYNC_obj1018 = - { - 4, // number of supported entries - 0, // Vendor-ID (given by the can-cia) - 0, // Product Code - 0, // Revision number - 0 // serial number - }; - - subindex gene_SYNC_Index1018[] = - { - { RO, uint8, sizeof(UNS8), (void*)&gene_SYNC_obj1018.count }, - { RO, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1018.vendor_id}, - { RO, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1018.product_code}, - { RO, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1018.revision_number}, - { RO, uint32, sizeof(UNS32), (void*)&gene_SYNC_obj1018.serial_number} - }; - -/* index 0x1200 : The SDO Server parameters */ - /* BEWARE You cannot define more than one SDO server */ - /* The values should not be modified here, - but can be changed at runtime */ - // Beware that the default values that you could put here - // will be over written at the initialisation of the node. - // See setNodeId() in init.c - s_sdo_parameter gene_SYNC_obj1200 = - { 3, // Number of entries. Always 3 for the SDO - 0x000, // The cob_id transmited in CAN msg to the server - 0x000, // The cob_id received in CAN msg from the server - 0x03 // The node id of the client. Should not be modified - }; - subindex gene_SYNC_Index1200[] = - { - { RO, uint8, sizeof( UNS8 ), (void*)&gene_SYNC_obj1200.count }, - { RO, uint32, sizeof( UNS32), (void*)&gene_SYNC_obj1200.cob_id_client }, - { RO, uint32, sizeof( UNS32), (void*)&gene_SYNC_obj1200.cob_id_server }, - { RW, uint8, sizeof( UNS8), (void*)&gene_SYNC_obj1200.node_id } - }; - -/* index 0x1280 : SDO client parameter */ - s_sdo_parameter gene_SYNC_obj1280 = - { 3, // Nb of entries - 0x000, // cobid transmited to the server. The good value should be 0x600 + server nodeId - 0x000, // cobid received from the server. The good value should be 0x580 + server nodeId - 0x00 // server NodeId - }; - subindex gene_SYNC_Index1280[] = - { - { RO, uint8, sizeof( UNS8 ), (void*)&gene_SYNC_obj1280.count }, - { RW, uint8, sizeof( UNS32 ), (void*)&gene_SYNC_obj1280.cob_id_client }, - { RW, uint8, sizeof( UNS32 ), (void*)&gene_SYNC_obj1280.cob_id_server }, - { RW, uint8, sizeof( UNS8 ), (void*)&gene_SYNC_obj1280.node_id } - }; - +/* index 0x1017 : Producer Heartbeat Time */ + UNS16 gene_SYNC_obj1017 = 0x0; // 0 + +/* index 0x1018 : Identity. */ + UNS8 gene_SYNC_highestSubIndex_obj1018 = 4; // number of subindex - 1 + UNS32 gene_SYNC_obj1018_Vendor_ID = 0x0; // 0 + UNS32 gene_SYNC_obj1018_Product_Code = 0x0; // 0 + UNS32 gene_SYNC_obj1018_Revision_Number = 0x0; // 0 + UNS32 gene_SYNC_obj1018_Serial_Number = 0x0; // 0 + subindex gene_SYNC_Index1018[] = + { + { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_highestSubIndex_obj1018 }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Vendor_ID }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Product_Code }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Revision_Number }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1018_Serial_Number } + }; + +/* index 0x1200 : Server SDO Parameter. */ + UNS8 gene_SYNC_highestSubIndex_obj1200 = 2; // number of subindex - 1 + UNS32 gene_SYNC_obj1200_COB_ID_Client_to_Server_Receive_SDO = 0x0; // 0 + UNS32 gene_SYNC_obj1200_COB_ID_Server_to_Client_Transmit_SDO = 0x0; // 0 + subindex gene_SYNC_Index1200[] = + { + { RO, uint8, sizeof (UNS8), (void*)&gene_SYNC_highestSubIndex_obj1200 }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1200_COB_ID_Client_to_Server_Receive_SDO }, + { RO, uint32, sizeof (UNS32), (void*)&gene_SYNC_obj1200_COB_ID_Server_to_Client_Transmit_SDO } + }; + +/* index 0x2015 : Mapped variable acceptanceFilter1 */ + subindex gene_SYNC_Index2015[] = + { + { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter1 } + }; + +/* index 0x2016 : Mapped variable acceptanceFilter2 */ + subindex gene_SYNC_Index2016[] = + { + { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter2 } + }; + +/* index 0x2017 : Mapped variable acceptanceFilter3 */ + subindex gene_SYNC_Index2017[] = + { + { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter3 } + }; + +/* index 0x2018 : Mapped variable acceptanceFilter4 */ + subindex gene_SYNC_Index2018[] = + { + { RW, uint16, sizeof (UNS16), (void*)&acceptanceFilter4 } + }; + +/* index 0x2019 : Mapped variable mask1 */ + subindex gene_SYNC_Index2019[] = + { + { RW, uint16, sizeof (UNS16), (void*)&mask1 } + }; + +/* index 0x2020 : Mapped variable mask2 */ + subindex gene_SYNC_Index2020[] = + { + { RW, uint16, sizeof (UNS16), (void*)&mask2 } + }; + +/* index 0x2021 : Mapped variable mask3 */ + subindex gene_SYNC_Index2021[] = + { + { RW, uint16, sizeof (UNS16), (void*)&mask3 } + }; + +/* index 0x2022 : Mapped variable mask4 */ + subindex gene_SYNC_Index2022[] = + { + { RW, uint16, sizeof (UNS16), (void*)&mask4 } + }; + +/* index 0x2023 : Mapped variable applyDownloadedFilters */ + subindex gene_SYNC_Index2023[] = + { + { RW, uint8, sizeof (UNS8), (void*)&applyDownloadedFilters } + }; const indextable gene_SYNC_objdict[] = { - DeclareIndexTableEntry(gene_SYNC_Index1000, 0x1000), - DeclareIndexTableEntry(gene_SYNC_Index1001, 0x1001), - DeclareIndexTableEntry(gene_SYNC_Index1005, 0x1005), - DeclareIndexTableEntry(gene_SYNC_Index1006, 0x1006), - DeclareIndexTableEntry(gene_SYNC_Index1018, 0x1018), - DeclareIndexTableEntry(gene_SYNC_Index1200, 0x1200), - DeclareIndexTableEntry(gene_SYNC_Index1280, 0x1280), + { (subindex*)gene_SYNC_Index1000,sizeof(gene_SYNC_Index1000)/sizeof(gene_SYNC_Index1000[0]), 0x1000}, + { (subindex*)gene_SYNC_Index1001,sizeof(gene_SYNC_Index1001)/sizeof(gene_SYNC_Index1001[0]), 0x1001}, + { (subindex*)gene_SYNC_Index1005,sizeof(gene_SYNC_Index1005)/sizeof(gene_SYNC_Index1005[0]), 0x1005}, + { (subindex*)gene_SYNC_Index1006,sizeof(gene_SYNC_Index1006)/sizeof(gene_SYNC_Index1006[0]), 0x1006}, + { (subindex*)gene_SYNC_Index1008,sizeof(gene_SYNC_Index1008)/sizeof(gene_SYNC_Index1008[0]), 0x1008}, + { (subindex*)gene_SYNC_Index1018,sizeof(gene_SYNC_Index1018)/sizeof(gene_SYNC_Index1018[0]), 0x1018}, + { (subindex*)gene_SYNC_Index1200,sizeof(gene_SYNC_Index1200)/sizeof(gene_SYNC_Index1200[0]), 0x1200}, + { (subindex*)gene_SYNC_Index2015,sizeof(gene_SYNC_Index2015)/sizeof(gene_SYNC_Index2015[0]), 0x2015}, + { (subindex*)gene_SYNC_Index2016,sizeof(gene_SYNC_Index2016)/sizeof(gene_SYNC_Index2016[0]), 0x2016}, + { (subindex*)gene_SYNC_Index2017,sizeof(gene_SYNC_Index2017)/sizeof(gene_SYNC_Index2017[0]), 0x2017}, + { (subindex*)gene_SYNC_Index2018,sizeof(gene_SYNC_Index2018)/sizeof(gene_SYNC_Index2018[0]), 0x2018}, + { (subindex*)gene_SYNC_Index2019,sizeof(gene_SYNC_Index2019)/sizeof(gene_SYNC_Index2019[0]), 0x2019}, + { (subindex*)gene_SYNC_Index2020,sizeof(gene_SYNC_Index2020)/sizeof(gene_SYNC_Index2020[0]), 0x2020}, + { (subindex*)gene_SYNC_Index2021,sizeof(gene_SYNC_Index2021)/sizeof(gene_SYNC_Index2021[0]), 0x2021}, + { (subindex*)gene_SYNC_Index2022,sizeof(gene_SYNC_Index2022)/sizeof(gene_SYNC_Index2022[0]), 0x2022}, + { (subindex*)gene_SYNC_Index2023,sizeof(gene_SYNC_Index2023)/sizeof(gene_SYNC_Index2023[0]), 0x2023}, }; +const indextable * gene_SYNC_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, ODCallback_t **callbacks) +{ + int i; + *callbacks = NULL; + switch(wIndex){ + case 0x1000: i = 0;break; + case 0x1001: i = 1;break; + case 0x1005: i = 2;*callbacks = gene_SYNC_Index1005_callbacks; break; + case 0x1006: i = 3;*callbacks = gene_SYNC_Index1006_callbacks; break; + case 0x1008: i = 4;break; + case 0x1018: i = 5;break; + case 0x1200: i = 6;break; + case 0x2015: i = 7;break; + case 0x2016: i = 8;break; + case 0x2017: i = 9;break; + case 0x2018: i = 10;break; + case 0x2019: i = 11;break; + case 0x2020: i = 12;break; + case 0x2021: i = 13;break; + case 0x2022: i = 14;break; + case 0x2023: i = 15;break; + default: + *errorCode = OD_NO_SUCH_OBJECT; + return NULL; + } + *errorCode = OD_SUCCESSFUL; + return &gene_SYNC_objdict[i]; +} + // To count at which received SYNC a PDO must be sent. // Even if no pdoTransmit are defined, at least one entry is computed // for compilations issues. -UNS8 gene_SYNC_count_sync[1] = {0, }; +UNS8 gene_SYNC_count_sync[1] = {0,}; quick_index gene_SYNC_firstIndex = { - SDO_SVR : 5, - SDO_CLT : 6, - PDO_RCV : 0, - PDO_RCV_MAP : 0, - PDO_TRS : 0, - PDO_TRS_MAP : 0 + SDO_SVR : 6, + SDO_CLT : 0, + PDO_RCV : 0, + PDO_RCV_MAP : 0, + PDO_TRS : 0, + PDO_TRS_MAP : 0 }; quick_index gene_SYNC_lastIndex = { - SDO_SVR : 5, - SDO_CLT : 6, - PDO_RCV : 0, - PDO_RCV_MAP : 0, - PDO_TRS : 0, - PDO_TRS_MAP : 0 + SDO_SVR : 6, + SDO_CLT : 0, + PDO_RCV : 0, + PDO_RCV_MAP : 0, + PDO_TRS : 0, + PDO_TRS_MAP : 0 }; UNS16 gene_SYNC_ObjdictSize = sizeof(gene_SYNC_objdict)/sizeof(gene_SYNC_objdict[0]);