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)
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)
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)
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