Changeset 7254

Show
Ignore:
Timestamp:
04/25/08 10:40:11 (5 years ago)
Author:
stedwar2
Message:

Added waveform save support.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • ossiedev/branches/jsnyder/ComponentProject/PythonSrc/MainFrameGlue.py

    r7246 r7254  
    66import wavedev.ComponentClass 
    77import threading 
     8import cPickle 
    89from edu.vt.ossie.jyinterface.interfaces import MainFrame 
    910 
     
    3536        self.Available_Components = [] 
    3637        self.Available_Devices = [] 
    37         self.Available_Nodes = []  
     38        self.Available_Nodes = [] 
    3839        resList = [] 
    3940 
     
    4950 
    5051        # find the .scd.xml files for each resource 
    51          
     52 
    5253        for r in resList: 
    5354            tmpResName = r[1] 
    5455            tmpResPath = r[0] + r[1] 
    5556            tmpComp = wavedev.importResource.getResource(tmpResPath,tmpResName,self) 
    56                  
     57 
    5758            if tmpComp == None: 
    5859                continue 
    5960            if tmpComp.type == 'resource': 
    6061                self.Available_Components.append(tmpComp) 
    61                
     62 
    6263            elif tmpComp.type == 'executabledevice': 
    6364                self.Available_Devices.append(tmpComp) 
    64                
     65 
    6566            elif tmpComp.type == 'loadabledevice': 
    6667                self.Available_Devices.append(tmpComp) 
    67                 
     68 
    6869            elif tmpComp.type == 'device': 
    6970                self.Available_Devices.append(tmpComp) 
    70                  
    71          
     71 
     72 
    7273        nodeList = [] 
    7374        if os.path.isdir(self.installPath + 'nodes'): 
     
    7677        else: 
    7778            errorMsg(self, "No nodes could be found in: " + self.installPath) 
    78          
     79 
    7980        # find the scd files for each node 
    8081        for node_name in nodeList: 
     
    9798            nodeName = node_name 
    9899            nodePath = self.installPath + 'nodes/' + nodeName + '/' 
    99              
     100 
    100101            print "calling getNode(", nodePath, ",", nodeName, ")" 
    101102            tmpNode = wavedev.importNode.getNode(nodePath,nodeName,self) 
    102              
     103 
    103104            if tmpNode == None: 
    104105                print "WARNING: possibly an error reading node " + nodePath + "/" + nodeName 
     
    140141        t2.ports.append(p1); t2.ports.append(p2) 
    141142        self.active_wave.components.append(t2) 
    142          
     143 
    143144        t3 = wavedev.ComponentClass.Component("Channel") 
    144145        p1 = wavedev.ComponentClass.Port('inPortCh1',copy.deepcopy(int1),'Provides') 
     
    149150        p6 = wavedev.ComponentClass.Port('outPortCh3',copy.deepcopy(int1),'Uses') 
    150151        t3.ports.extend([p1,p2,p3,p4,p5,p6]) 
    151         self.active_wave.components.append(t3)         
    152          
     152        self.active_wave.components.append(t3) 
     153 
    153154        t4 = wavedev.ComponentClass.Component("Receiver") 
    154155        p1 = wavedev.ComponentClass.Port('inPortRx1',copy.deepcopy(int1),'Provides') 
    155156        p2 = wavedev.ComponentClass.Port('outPortRx1',copy.deepcopy(int1),'Uses') 
    156157        t4.ports.append(p1); t4.ports.append(p2) 
    157         self.active_wave.components.append(t4)         
    158          
     158        self.active_wave.components.append(t4) 
     159 
    159160        temp_dev = wavedev.ComponentClass.Component("GPP") 
    160161        self.active_wave.devices.append(temp_dev) 
    161162        return [MainFrameTreeNode("Sample Waveform", self.active_wave)] 
    162          
     163 
    163164    def displayDoxygen(self, referenceMaterials): 
    164165        defaultHtml = 'index.html' 
    165166        defaultPdf = 'refman.pdf' 
    166167        docList = None 
    167         
     168 
    168169        docsPath = self.installPath + 'docs/' + referenceMaterials.name 
    169170        print docsPath 
     
    183184                errorMsg(self,'Neither index.html nor refman.pdf found in ' + docsPath + ': directory listing: ' + str(docList)) 
    184185        else: 
    185             errorMsg(self,'No directory for ' + referenceMaterials.name + ' could be found in: ' + self.installPath + 'docs')             
     186            errorMsg(self,'No directory for ' + referenceMaterials.name + ' could be found in: ' + self.installPath + 'docs') 
    186187            return 
    187188 
     
    189190    def errorMsg(self, message): 
    190191        sys.stderr.write(message) 
    191          
     192 
     193 
     194    def saveProject(self, saveProjectPath): 
     195        f = open(saveProjectPath,'w') 
     196        cPickle.dump(('project',self.active_waveform,self.active_platform),f)