# HG changeset patch
# User etisserant
# Date 1191340711 -7200
# Node ID 340348f0193f14165e7d17e118d3377a42ff1698
# Parent  7ba4302a99998d5e9c5f9feabace9b0c255722b8
Now, SetNodeId will change 1200h SDO server params to new defaul values only if already set to appropriate default values.

diff -r 7ba4302a9999 -r 340348f0193f src/states.c
--- a/src/states.c	Tue Oct 02 17:57:16 2007 +0200
+++ b/src/states.c	Tue Oct 02 17:58:31 2007 +0200
@@ -242,12 +242,16 @@
 {
   UNS16 offset = d->firstIndex->SDO_SVR;
   if(offset){
+    /* Adjust COB-ID Client->Server (rx) only id already set to default value*/
+    if(*(UNS32*)d->objdict[offset].pSubindex[1].pObject = 0x600 + *d->bDeviceNodeId){
       /* cob_id_client = 0x600 + nodeId; */
       *(UNS32*)d->objdict[offset].pSubindex[1].pObject = 0x600 + nodeId;
+    }
+    /* Adjust COB-ID Server -> Client (tx) only id already set to default value*/
+    if(*(UNS32*)d->objdict[offset].pSubindex[2].pObject = 0x580 + *d->bDeviceNodeId){
       /* cob_id_server = 0x580 + nodeId; */
       *(UNS32*)d->objdict[offset].pSubindex[2].pObject = 0x580 + nodeId;
-      /* node Id client. As we do not know the value, we put the node Id Server */
-      /* *(UNS8*)d->objdict[offset].pSubindex[3].pObject = nodeId; */
+    }
   }
 
   /*