def HandleSaveAsCSV(self):
        Interval = tkinter.simpledialog.askinteger(
            "Interval",
            "What time interval rate (seconds) to save data at? Zero will save all datapoints.",
            parent=self.root,
            minvalue=0,
            initialvalue=1)
        if None == Interval:
            return

        options = {}
        options['filetypes'] = [('Comma Separated Value File', '.csv')]
        strInitFile = "oscar"
        pbFilename = GuiMgr.GetPlaybackFilename()
        if pbFilename != None and len(pbFilename) > 1:
            try:
                strInitFile, ext = os.path.splitext(
                    ntpath.basename(pbFilename))
            except:
                pass

        options['initialfile'] = strInitFile
        options['defaultextension'] = '.csv'
        options['parent'] = self.root

        filename = tkinter.filedialog.asksaveasfilename(**options)
        if len(filename) < 1:
            return
        try:
            GuiMgr.WriteCSVFile(filename, Interval)
        except Exception as Ex:
            GuiMgr.MessageBox_Error(str(Ex),
                                    "Unable to write to file: " + filename)
Ejemplo n.º 2
0
    def onStopLoopBtn(self):
        currNum = Playback.get().GetCurrentNumber()
        currStart = Playback.get().GetLoopMode()[1]
        maxNum = Playback.get().GetDataCount()

        if currStart >= currNum : 
            GuiMgr.MessageBox_Error("Error","You cannot set the end of a loop to be before the start")
            return
        Playback.get().SetLoopMode(Playback.RepeatMode.LOOP,currStart,currNum)
Ejemplo n.º 3
0
    def onStartLoopBtn(self):
        currNum = Playback.get().GetCurrentNumber()
        currEnd = Playback.get().GetLoopMode()[2]
        maxNum = Playback.get().GetDataCount()

        if currNum >= currEnd:
            GuiMgr.MessageBox_Error("Error","You cannot set the beginning of a loop to be beyond the end")
            return
        Playback.get().SetLoopMode(Playback.RepeatMode.LOOP,currNum,currEnd)
Ejemplo n.º 4
0
    def HandleOpen(self):
        options = {}
        options['filetypes'] = [('Oscar Data files', '.biff')]
        options['parent'] = self.root
       
        filename = tkinter.filedialog.askopenfilename(**options)
        if len(filename) < 1 :
            return

        if not GuiMgr.ReadFromFile(filename):
               GuiMgr.MessageBox_Error("Python Error","Error loading file: " + filename)

        self._PreviousFileMenuStatus = None
        GuiMgr.SetPlaybackFilename(filename)
    def ReadFromFile(self, filename):
        from Helpers import GuiMgr

        import os.path
        if not os.path.isfile(filename):
            Log.getLogger().error("Asked to read from non-existant file: " +
                                  filename)
            return False
        with open(filename, 'r+b') as fp:
            try:
                entries = pickle.load(fp)

            except Exception as ex:
                Log.getLogger().error(filename + ": " + str(ex))
                GuiMgr.MessageBox_Error(
                    "Error Loading File",
                    "The format of this file requires Python 3.4 or greater.")
                return False

            if len(entries) < 1:
                Log.getLogger().error(
                    filename + " does not appear to have any data in it. ")
                return False

            objEntry = entries[0]

            if hasattr(objEntry, 'FormatVersion'):
                entries = Configuration.get().HandleBITW_FromLoad(entries)
                self.SetData(entries)
                return True

            elif hasattr(objEntry, 'PacketNumber'):
                newList = self.ConvertFromAlphaFormat(entries)

            else:
                newList = self.ConvertFromBetaFormat(entries)

            if None != newList:
                self.SetData(newList)
                return True

            return False