]> rtime.felk.cvut.cz Git - CanFestival-3.git/commitdiff
Bug on Domain data writing in gen_cfile fixed
authorlbessard <lbessard>
Thu, 21 Jun 2007 15:08:43 +0000 (15:08 +0000)
committerlbessard <lbessard>
Thu, 21 Jun 2007 15:08:43 +0000 (15:08 +0000)
Bug on closing tab fixed

objdictgen/gen_cfile.py
objdictgen/nodemanager.py
objdictgen/objdictedit.py

index abc8fcc1a4e6ef71bca41ea721fcefc1038ac114..684dcb182a876e1673cf22403b3815adff76edbd 100644 (file)
@@ -164,6 +164,9 @@ def GenerateFileContent(Manager, headerfilepath):
             if typeinfos[2] == "visible_string":
                 texts["value"] = "\"%s\""%values
                 texts["comment"] = ""
+            elif typeinfos[2] == "domain":
+                texts["value"] = "\"%s\""%''.join(["\\x%2.2x"%ord(char) for char in value])
+                texts["comment"] = ""
             else:
                 texts["value"] = "0x%X"%values
                 texts["comment"] = "\t/* %s */"%str(values)
@@ -206,7 +209,9 @@ def GenerateFileContent(Manager, headerfilepath):
                                 sep = ""
                             if typeinfos[2] == "visible_string":
                                 value = "\"%s\""%value
-                            else:
+                            elif typeinfos[2] == "domain":
+                                value = "\"%s\""%''.join(["\\x%2.2x"%ord(char) for char in value])
+                           else:
                                 comment = "\t/* %s */"%str(value)
                                 value = "0x%X"%value
                             mappedVariableContent += "    %s%s%s\n"%(value, sep, comment)
@@ -243,7 +248,10 @@ def GenerateFileContent(Manager, headerfilepath):
                         if typeinfos[2] == "visible_string":
                             texts["value"] = "\"%s\""%value
                             texts["comment"] = ""
-                        else:
+                        elif typeinfos[2] == "domain":
+                            texts["value"] = "\"%s\""%''.join(["\\x%2.2x"%ord(char) for char in value])
+                            texts["comment"] = ""                      
+                       else:
                             texts["value"] = "0x%X"%value
                             texts["comment"] = "\t/* %s */"%str(value)
                         texts["name"] = FormatName(subentry_infos["name"])
@@ -463,7 +471,11 @@ CO_Data %(NodeName)s_Data = CANOPEN_NODE_DATA_INITIALIZER(%(NodeName)s);
 #                          Write Header File Content
 #-------------------------------------------------------------------------------
 
+    texts["file_include_name"] = headerfilepath.replace(".", "_").upper()
     HeaderFileContent = generated_tag + """
+#ifdef %(file_include_name)s
+#define %(file_include_name)s
+
 #include "data.h"
 
 /* Prototypes of function provided by object dictionnary */
@@ -472,10 +484,11 @@ const indextable * %(NodeName)s_scanIndexOD (UNS16 wIndex, UNS32 * errorCode, OD
 
 /* Master node data struct */
 extern CO_Data %(NodeName)s_Data;
-
 """%texts
     HeaderFileContent += strDeclareHeader
     
+    HeaderFileContent += "\n#endif // %(file_include_name)s\n"%texts
+    
     return fileContent,HeaderFileContent
 
 #-------------------------------------------------------------------------------
index 0ec8fbc2ae1bf0d29ad8a772a8245e1879c80b5e..75aaf53be71899b364abe2b295747156ecfaad35 100755 (executable)
@@ -306,9 +306,8 @@ class NodeManager:
         result = eds_utils.GenerateNode(filepath, self.ScriptDirectory)
         if isinstance(result, Node):
             self.CurrentNode = result
-            if len(self.UndoBuffers) == 0:
-                index = self.AddNodeBuffer()
-                self.SetCurrentFilePath("")
+            index = self.AddNodeBuffer()
+            self.SetCurrentFilePath("")
             self.BufferCurrentNode()
             return index
         else:
index b462540ac3e05228675416c4a96022dd774d1cb6..1150d4b090ea1583a38f95d713d3091bd243b233 100755 (executable)
@@ -29,7 +29,7 @@ import wx.grid
 from types import *
 import os, re, platform, sys, time, traceback, getopt
 
-__version__ = "$Revision: 1.21 $"
+__version__ = "$Revision: 1.22 $"
 
 from node import OD_Subindex, OD_MultipleSubindexes, OD_IdenticalSubindexes, OD_IdenticalIndexes
 
@@ -395,10 +395,11 @@ class objdictedit(wx.Frame):
         # At init selected = -1
         if selected >= 0:
             window = self.FileOpened.GetPage(selected)
-            self.Manager.ChangeCurrentNode(window.GetIndex())
-            self.RefreshBufferState()
-            self.RefreshStatusBar()
-            self.RefreshProfileMenu()
+            if window:
+                self.Manager.ChangeCurrentNode(window.GetIndex())
+                self.RefreshBufferState()
+                self.RefreshStatusBar()
+                self.RefreshProfileMenu()
         event.Skip()
 
     def OnHelpDS301Menu(self, event):
@@ -453,6 +454,8 @@ class objdictedit(wx.Frame):
             if answer == wxID_YES:
                 self.Manager.ChangeCurrentNode(0)
                 for i in xrange(self.FileOpened.GetPageCount()):
+                    window = self.FileOpened.GetPage(i)
+                    self.Manager.ChangeCurrentNode(window.GetIndex())
                     if self.Manager.CurrentIsSaved():
                         self.Manager.CloseCurrent()
                     else: