# HG changeset patch # User etisserant # Date 1176590974 -7200 # Node ID c4908cc776a96efe2d63b423bc4dd96a9de61707 # Parent 636d875c85dd834bad80dbc4fd0965790959cbdd SetODEntry now call CO_data->storeODSubEntry(Index,SubIndex) for variables to be Stored (when column Save==True in GUI) diff -r 636d875c85dd -r c4908cc776a9 examples/TestMasterSlave/Slave.c --- a/examples/TestMasterSlave/Slave.c Sun Apr 15 00:46:40 2007 +0200 +++ b/examples/TestMasterSlave/Slave.c Sun Apr 15 00:49:34 2007 +0200 @@ -70,3 +70,17 @@ { eprintf("TestSlave_post_TPDO\n"); } + +void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex) +{ + /*TODO : + * - call getODEntry for index and subindex, + * - save content to file, database, flash, nvram, ... + * + * To ease flash organisation, index of variable to store + * can be established by scanning d->objdict[d->ObjdictSize] + * for variables to store. + * + * */ + eprintf("TestSlave_storeODSubIndex : %4.4x %2.2x\n", wIndex, bSubindex); +} diff -r 636d875c85dd -r c4908cc776a9 examples/TestMasterSlave/TestMasterSlave.c --- a/examples/TestMasterSlave/TestMasterSlave.c Sun Apr 15 00:46:40 2007 +0200 +++ b/examples/TestMasterSlave/TestMasterSlave.c Sun Apr 15 00:49:34 2007 +0200 @@ -199,6 +199,7 @@ TestSlave_Data.stopped = TestSlave_stopped; TestSlave_Data.post_sync = TestSlave_post_sync; TestSlave_Data.post_TPDO = TestSlave_post_TPDO; + TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex; if(!canOpen(&SlaveBoard,&TestSlave_Data)){ eprintf("Cannot open Slave Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate); diff -r 636d875c85dd -r c4908cc776a9 examples/TestMasterSlave/TestSlave.c --- a/examples/TestMasterSlave/TestSlave.c Sun Apr 15 00:46:40 2007 +0200 +++ b/examples/TestMasterSlave/TestSlave.c Sun Apr 15 00:49:34 2007 +0200 @@ -173,8 +173,8 @@ { { RO, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1800 }, { RW, uint32, sizeof (UNS32), (void*)&TestSlave_obj1800_COB_ID_used_by_PDO }, - { RW, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type }, - { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time }, + { RW|TO_BE_SAVE, uint8, sizeof (UNS8), (void*)&TestSlave_obj1800_Transmission_Type }, + { RW|TO_BE_SAVE, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Inhibit_Time }, { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Compatibility_Entry }, { RW, uint16, sizeof (UNS16), (void*)&TestSlave_obj1800_Event_Timer } }; diff -r 636d875c85dd -r c4908cc776a9 examples/TestMasterSlave/TestSlave.od --- a/examples/TestMasterSlave/TestSlave.od Sun Apr 15 00:46:40 2007 +0200 +++ b/examples/TestMasterSlave/TestSlave.od Sun Apr 15 00:49:34 2007 +0200 @@ -1,10 +1,10 @@ - - + + - + @@ -35,7 +35,7 @@ - + @@ -49,7 +49,7 @@ - + @@ -58,7 +58,7 @@ - + @@ -67,21 +67,21 @@ - + - + - + @@ -92,7 +92,7 @@ - + @@ -101,7 +101,7 @@ - + @@ -110,12 +110,12 @@ - - - + + + - + @@ -124,7 +124,7 @@ - + @@ -132,8 +132,31 @@ + + + + + + + + + + + + + + + + + + + + + + + - + @@ -141,18 +164,18 @@ - + - + - - + + @@ -184,15 +207,15 @@ - + - - + + @@ -224,15 +247,15 @@ - + - - + + @@ -264,15 +287,15 @@ - + - - + + @@ -303,7 +326,7 @@ - + diff -r 636d875c85dd -r c4908cc776a9 include/data.h --- a/include/data.h Sun Apr 15 00:46:40 2007 +0200 +++ b/include/data.h Sun Apr 15 00:49:34 2007 +0200 @@ -90,6 +90,7 @@ UNS8 toggle; CAN_HANDLE canHandle; scanIndexOD_t scanIndexOD; + storeODSubIndex_t storeODSubIndex; }; #define NMTable_Initializer Unknown_state, @@ -173,7 +174,8 @@ /* General */\ 0, /* toggle */\ NULL,/*NODE_PREFIX ## _canSend, /* canSend */\ - NODE_PREFIX ## _scanIndexOD /* scanIndexOD */\ + NODE_PREFIX ## _scanIndexOD, /* scanIndexOD */\ + _storeODSubIndex /* storeODSubIndex */\ } #endif /* __data_h__ */ diff -r 636d875c85dd -r c4908cc776a9 include/objacces.h --- a/include/objacces.h Sun Apr 15 00:46:40 2007 +0200 +++ b/include/objacces.h Sun Apr 15 00:49:34 2007 +0200 @@ -37,6 +37,8 @@ #include typedef UNS32 (*valueRangeTest_t)(UNS8 typeValue, void *Value); +typedef void (* storeODSubIndex_t)(UNS16 wIndex, UNS8 bSubindex); +void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex); #include "data.h" diff -r 636d875c85dd -r c4908cc776a9 include/objdictdef.h --- a/include/objdictdef.h Sun Apr 15 00:46:40 2007 +0200 +++ b/include/objdictdef.h Sun Apr 15 00:49:34 2007 +0200 @@ -86,7 +86,7 @@ #define WO 0x01 #define RO 0x02 -#define TO_BE_SAVED 0x04 +#define TO_BE_SAVE 0x04 /************************ STRUCTURES ****************************/ /** This are some structs which are neccessary for creating the entries diff -r 636d875c85dd -r c4908cc776a9 src/objacces.c --- a/src/objacces.c Sun Apr 15 00:46:40 2007 +0200 +++ b/src/objacces.c Sun Apr 15 00:49:34 2007 +0200 @@ -205,7 +205,9 @@ } /* TODO : Store dans NVRAM */ - /* if (ptrTable->pSubindex[bSubindex].bAccessType & TO_BE_SAVED) */ + if (ptrTable->pSubindex[bSubindex].bAccessType & TO_BE_SAVE){ + (*d->storeODSubIndex)(wIndex, bSubindex); + } return OD_SUCCESSFUL; }else{ *pExpectedSize = szData; @@ -231,4 +233,4 @@ return errorCode; } - +void _storeODSubIndex (UNS16 wIndex, UNS8 bSubindex){}