예제 #1
0
 def OnOpen(self, event):
     if self.changed:
         dialog_res = wx.MessageBox(
             'Do you want to save changes?',
             'Please confirm',
             wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL,
             self
         )
         if dialog_res == wx.CANCEL:
             return
         elif dialog_res == wx.YES:
             if self.OnSave(None) == tools.FAIL:
                 return
     dialog = wx.FileDialog(
         self,
         message="Choose PAR file",
         style=wx.OPEN,
         wildcard='*.par',
         defaultFile='*.par'
     )
     if dialog.ShowModal() == wx.ID_OK:
         new_robo, flag = parfile.readpar(
             dialog.GetFilename()[:-4], dialog.GetPath()
         )
         if new_robo is None:
             self.message_error('File could not be read!')
         else:
             if flag == tools.FAIL:
                 self.message_warning(
                     "While reading file an error occured."
                 )
             self.robo = new_robo
             self.feed_data()
예제 #2
0
 def OnOpen(self, event):
     if self.changed:
         dialog_res = wx.MessageBox(
             'Do you want to save changes?', 'Please confirm',
             wx.ICON_QUESTION | wx.YES_NO | wx.CANCEL, self)
         if dialog_res == wx.CANCEL:
             return
         elif dialog_res == wx.YES:
             if self.OnSave(None) == tools.FAIL:
                 return
     dialog = wx.FileDialog(self,
                            message="Choose PAR file",
                            style=wx.OPEN,
                            wildcard='*.par',
                            defaultFile='*.par')
     if dialog.ShowModal() == wx.ID_OK:
         new_robo, flag = parfile.readpar(dialog.GetFilename()[:-4],
                                          dialog.GetPath())
         if new_robo is None:
             self.message_error('File could not be read!')
         else:
             if flag == tools.FAIL:
                 self.message_warning(
                     "While reading file an error occured.")
             self.robo = new_robo
             self.feed_data()
예제 #3
0
    def load_robot(self):
        """
        Load either the default robot or the last used robot at the
        start of the program.

        Returns:
            An instance of `Robot` class.
        """
        par_file_path = configfile.get_last_robot()
        if par_file_path is None:
            # when last used robot was not saved
            return samplerobots.rx90()
        elif not os.path.exists(par_file_path):
            # when the PAR file does not exist
            self.message_error("The PAR file does not exist.")
            return samplerobots.rx90()
        else:
            robo_name = os.path.split(par_file_path)[1][:-4]
            robo, flag = parfile.readpar(robo_name, par_file_path)
            if robo is None:
                robo = samplerobots.rx90()
                self.message_error("File could not be read!")
            elif flag == tools.FAIL:
                robo = samplerobots.rx90()
                self.message_warning(
                    "While reading file an error occured."
                )
            return robo
예제 #4
0
 def test_readwrite(self):
     parfile.writepar(self.orig_robo)
     fname = filemgr.get_clean_name(self.orig_robo.name) + ".par"
     file_path = os.path.join(self.orig_robo.directory, fname)
     new_robo, flag = parfile.readpar(self.orig_robo.name, file_path)
     self.assertEqual(flag, tools.OK)
     l1 = self.orig_robo.get_geom_head()
     l2 = self.orig_robo.get_dynam_head()
     l3 = self.orig_robo.get_ext_dynam_head()
     for name in l3[1:]+l2[1:]+l1[1:]:
         for i in xrange(1, self.orig_robo.NL):
             self.assertEqual(self.orig_robo.get_val(i, name),
                              new_robo.get_val(i, name))
예제 #5
0
 def test_readwrite(self):
     parfile.writepar(self.orig_robo)
     fname = filemgr.get_clean_name(self.orig_robo.name) + ".par"
     file_path = os.path.join(self.orig_robo.directory, fname)
     new_robo, flag = parfile.readpar(self.orig_robo.name, file_path)
     self.assertEqual(flag, tools.OK)
     l1 = self.orig_robo.get_geom_head()
     l2 = self.orig_robo.get_dynam_head()
     l3 = self.orig_robo.get_ext_dynam_head()
     for name in l3[1:]+l2[1:]+l1[1:]:
         for i in xrange(1, self.orig_robo.NL):
             self.assertEqual(self.orig_robo.get_val(i, name),
                              new_robo.get_val(i, name))