# Created by Leo from: C:\Python23\Tom\leo\Speech.leo # @path c:\python23\tom2 # << newspeach declarations >> import urllib2 import wx import Image import StringIO import ImageChops import image_view import ImageStat import ImageEnhance import sys, time, math, string, win32event, pythoncom, os from win32com.client import constants import win32con import string import pickle import win32api import win32com.client import threading from wx.stc import * import keyword from wx.iewin import * import glob from wx.lib.evtmgr import eventManager from wx.lib.scrolledpanel import ScrolledPanel import googollib import rserve #import ArgImagePlugin,BmpImagePlugin,BufrStubImagePlugin,CurImagePlugin,DcxImagePlugin,EpsImagePlugin,FitsStubImagePlugin,FliImagePlugin,FpxImagePlugin,GbrImagePlugin,GifImagePlugin,GribStubImagePlugin,Hdf5StubImagePlugin,IcoImagePlugin,ImImagePlugin,ImtImagePlugin,IptcImagePlugin,JpegImagePlugin,McIdasImagePlugin,MicImagePlugin,MpegImagePlugin,MspImagePlugin,PalmImagePlugin,PcdImagePlugin,PcxImagePlugin,PdfImagePlugin,PixarImagePlugin,PngImagePlugin,PpmImagePlugin,PsdImagePlugin,SgiImagePlugin,SunImagePlugin,TgaImagePlugin,TiffImagePlugin,WmfImagePlugin,XbmImagePlugin,XpmImagePlugin,XVThumbImagePlugin speaker = win32com.client.Dispatch("SAPI.SpVoice") shell = win32com.client.Dispatch("WScript.Shell") faces = { 'times': 'Times New Roman', 'mono' : 'Courier New', 'helv' : 'Arial', 'other': 'Comic Sans MS', 'size' : 10, 'size2': 8, } try: items = pickle.load(open('save.p')) except IOError: items = {u'turn on tee vee': u'sendKeys("^(%z)")', u'channel forty two': u'sendKeys("42")', u'close program now': u'sendKeys("%( )c")', u'channel thirty six': u'sendKeys("36")', u'play woman rock': u"say('please stand by')\nbrowseTo('http://release.theplatform.com/deliverable.select?pid=Mf5zobHmqTDt6bze2ThXCugPnEUpJQQh&UserID=choiceradio')", u'channel sixteen': u'sendKeys("16")', u'open tee vee guide': u"browseTo('http://tv.yahoo.com/grid?lineup=us_AZ02423&dur=&.intl=us&startdate=0&starthour=0&genres=0')", u'channel thirty four': u'sendKeys("34")', u'channel forty four': u'sendKeys("44")', u'play raggae': u"say('please stand by')\nbrowseTo('http://www.totallyradio.com/asx/live/reggae.asx')", u'computer': u"say('working')", u'channel forty': u'sendKeys("40")', u'channel thirty eight': u'sendKeys("38")', u'stop music': u'sendKeys("^(s)")', u'play mellow yellow': u"say('please stand by')\nbrowseTo('http://radio.player.loudeye.com/LoudSE/radio.jsp?anID=22&aID=1874&dsoID=4')", u'channel seven': u'sendKeys("7")', u'channel two': u'sendKeys("2")', u'play new age': u"say('please stand by')\nbrowseTo('http://release.theplatform.com/deliverable.select?pid=tXSTT6E-SWIv_678ayYHCdIp51IFHhLb&UserID=choiceradio')"} # -- end -- << newspeach declarations >> # <> (1 of 15) def PILToPy(image): ret = "import Image\n" ret += "\n" ret += "mode = %s\n" % repr(image.mode) ret += "size = %s\n" % repr(image.size) ret += "data = %s\n" % repr(image.tostring()) ret += "img = Image.fromstring(mode, size, data)\n" return ret # <> (2 of 15) def PILToWX(image): "convert a PIL image to a wx.Image" if (image.mode == 'RGBA'): bk = Image.new("RGB", image.size, (255, 250, 255)) image = Image.composite(image, bk, image) if (image.mode != 'RGB'): image = image.convert('RGB') imageData = image.tostring('raw', 'RGB') imageWx = wx.EmptyImage(image.size[0], image.size[1]) imageWx.SetData(imageData) imageWx.SetMaskColour(255, 250, 255) return imageWx # <> (3 of 15) def sorted(x): x.sort() return x # <> (4 of 15) def WXToPIL(image, mode = 'RGBA'): "convert a wx.Image to a PIL RGBA image" imageData = image.GetData() size = (image.GetWidth(), image.GetHeight()) imagePIL = Image.fromstring('RGB', size, imageData) if mode != 'RGB': imagePIL = imagePIL.convert(mode) return imagePIL # <> (5 of 15) def say(text): global speaker,shell,items speaker.Speak(text) # <> (6 of 15) """Use the Windows Scripting Host sendKeys function to send keystrokes to the currently focused application. See help on the Microsoft site for values that represent special keys: common ones I use are %{TAB} for Alt-Tab, and {PGDN} and {PGUP} for page down and up, and %{F4} for Alt-F4.""" def sendKeys(keystrokes): global speaker,shell,items shell.SendKeys(keystrokes) # <> (7 of 15) """Launch a command via the Windows Scripting Host""" def start(command): global speaker,shell shell.Run(command) # <> (8 of 15) """Launch Internet Explorer, and navigate to a given URL""" def browseTo(location): global speaker,shell,items ie = win32com.client.Dispatch("InternetExplorer.Application") ie.Visible = 1 ie.Navigate(location) # <> (9 of 15) """Display a message box with the given message and title""" def message(message, title="Message"): dlg = wx.MessageDialog(app.frame, message, title, wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() # <> (10 of 15) class PythonSTC(StyledTextCtrl): # << class PythonSTC methods >> (1 of 6) def __init__(self, parent, ID): StyledTextCtrl.__init__(self, parent, ID, style = wx.NO_FULL_REPAINT_ON_RESIZE) self.CmdKeyAssign(ord('B'), STC_SCMOD_CTRL, STC_CMD_ZOOMIN) self.CmdKeyAssign(ord('N'), STC_SCMOD_CTRL, STC_CMD_ZOOMOUT) self.SetLexer(STC_LEX_PYTHON) self.SetKeyWords(0, string.join(keyword.kwlist)) self.SetProperty("fold", "1") self.SetProperty("tab.timmy.whinge.level", "1") self.SetMargins(0,0) self.SetViewWhiteSpace(False) #self.SetBufferedDraw(False) self.SetEdgeMode(STC_EDGE_BACKGROUND) self.SetEdgeColumn(200) # Setup a margin to hold fold markers #self.SetFoldFlags(16) ### WHAT IS THIS VALUE? WHAT ARE THE OTHER FLAGS? DOES IT MATTER? self.SetMarginType(2, STC_MARGIN_SYMBOL) self.SetMarginMask(2, STC_MASK_FOLDERS) self.SetMarginSensitive(2, True) self.SetMarginWidth(2, 12) if 0: # simple folder marks, like the old version self.MarkerDefine(STC_MARKNUM_FOLDER, STC_MARK_ARROW, "navy", "navy") self.MarkerDefine(STC_MARKNUM_FOLDEROPEN, STC_MARK_ARROWDOWN, "navy", "navy") # Set these to an invisible mark self.MarkerDefine(STC_MARKNUM_FOLDEROPENMID, STC_MARK_BACKGROUND, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERMIDTAIL, STC_MARK_BACKGROUND, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERSUB, STC_MARK_BACKGROUND, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERTAIL, STC_MARK_BACKGROUND, "white", "black") else: # more involved "outlining" folder marks self.MarkerDefine(STC_MARKNUM_FOLDEREND, STC_MARK_BOXPLUSCONNECTED, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDEROPENMID, STC_MARK_BOXMINUSCONNECTED, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERMIDTAIL, STC_MARK_TCORNER, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERTAIL, STC_MARK_LCORNER, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDERSUB, STC_MARK_VLINE, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDER, STC_MARK_BOXPLUS, "white", "black") self.MarkerDefine(STC_MARKNUM_FOLDEROPEN, STC_MARK_BOXMINUS, "white", "black") EVT_STC_UPDATEUI(self, ID, self.OnUpdateUI) EVT_STC_MARGINCLICK(self, ID, self.OnMarginClick) # Make some styles, The lexer defines what each style is used for, we # just have to define what each style looks like. This set is adapted from # Scintilla sample property files. self.StyleClearAll() # Global default styles for all languages self.StyleSetSpec(STC_STYLE_DEFAULT, "face:%(helv)s,size:%(size)d" % faces) self.StyleSetSpec(STC_STYLE_LINENUMBER, "back:#C0C0C0,face:%(helv)s,size:%(size2)d" % faces) self.StyleSetSpec(STC_STYLE_CONTROLCHAR, "face:%(other)s" % faces) self.StyleSetSpec(STC_STYLE_BRACELIGHT, "fore:#FFFFFF,back:#0000FF,bold") self.StyleSetSpec(STC_STYLE_BRACEBAD, "fore:#000000,back:#FF0000,bold") # Python styles # White space self.StyleSetSpec(STC_P_DEFAULT, "fore:#808080,face:%(helv)s,size:%(size)d" % faces) # Comment self.StyleSetSpec(STC_P_COMMENTLINE, "fore:#007F00,face:%(other)s,size:%(size)d" % faces) # Number self.StyleSetSpec(STC_P_NUMBER, "fore:#007F7F,size:%(size)d" % faces) # String self.StyleSetSpec(STC_P_STRING, "fore:#7F007F,italic,face:%(times)s,size:%(size)d" % faces) # Single quoted string self.StyleSetSpec(STC_P_CHARACTER, "fore:#7F007F,italic,face:%(times)s,size:%(size)d" % faces) # Keyword self.StyleSetSpec(STC_P_WORD, "fore:#00007F,bold,size:%(size)d" % faces) # Triple quotes self.StyleSetSpec(STC_P_TRIPLE, "fore:#7F0000,size:%(size)d" % faces) # Triple double quotes self.StyleSetSpec(STC_P_TRIPLEDOUBLE, "fore:#7F0000,size:%(size)d" % faces) # Class name definition self.StyleSetSpec(STC_P_CLASSNAME, "fore:#0000FF,bold,underline,size:%(size)d" % faces) # Function or method name definition self.StyleSetSpec(STC_P_DEFNAME, "fore:#007F7F,bold,size:%(size)d" % faces) # Operators self.StyleSetSpec(STC_P_OPERATOR, "bold,size:%(size)d" % faces) # Identifiers self.StyleSetSpec(STC_P_IDENTIFIER, "fore:#808080,face:%(helv)s,size:%(size)d" % faces) # Comment-blocks self.StyleSetSpec(STC_P_COMMENTBLOCK, "fore:#7F7F7F,size:%(size)d" % faces) # End of line where string is not closed self.StyleSetSpec(STC_P_STRINGEOL, "fore:#000000,face:%(mono)s,back:#E0C0E0,eol,size:%(size)d" % faces) self.SetCaretForeground("BLUE") #wx.EVT_KEY_DOWN(self, self.OnKeyPressed) # << class PythonSTC methods >> (2 of 6) def OnUpdateUI(self, evt): # check for matching braces braceAtCaret = -1 braceOpposite = -1 charBefore = None caretPos = self.GetCurrentPos() if caretPos > 0: charBefore = self.GetCharAt(caretPos - 1) styleBefore = self.GetStyleAt(caretPos - 1) # check before if charBefore and chr(charBefore) in "[]{}()" and styleBefore == STC_P_OPERATOR: braceAtCaret = caretPos - 1 # check after if braceAtCaret < 0: charAfter = self.GetCharAt(caretPos) styleAfter = self.GetStyleAt(caretPos) if charAfter and chr(charAfter) in "[]{}()" and styleAfter == STC_P_OPERATOR: braceAtCaret = caretPos if braceAtCaret >= 0: braceOpposite = self.BraceMatch(braceAtCaret) if braceAtCaret != -1 and braceOpposite == -1: self.BraceBadLight(braceAtCaret) else: self.BraceHighlight(braceAtCaret, braceOpposite) #pt = self.PointFromPosition(braceOpposite) #self.Refresh(True, wx.Rect(pt.x, pt.y, 5,5)) #print pt #self.Refresh(False) # << class PythonSTC methods >> (3 of 6) def OnMarginClick(self, evt): # fold and unfold as needed if evt.GetMargin() == 2: if evt.GetShift() and evt.GetControl(): self.FoldAll() else: lineClicked = self.LineFromPosition(evt.GetPosition()) if self.GetFoldLevel(lineClicked) & STC_FOLDLEVELHEADERFLAG: if evt.GetShift(): self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 1) elif evt.GetControl(): if self.GetFoldExpanded(lineClicked): self.SetFoldExpanded(lineClicked, False) self.Expand(lineClicked, False, True, 0) else: self.SetFoldExpanded(lineClicked, True) self.Expand(lineClicked, True, True, 100) else: self.ToggleFold(lineClicked) # << class PythonSTC methods >> (4 of 6) def FoldAll(self): lineCount = self.GetLineCount() expanding = True # find out if we are folding or unfolding for lineNum in range(lineCount): if self.GetFoldLevel(lineNum) & STC_FOLDLEVELHEADERFLAG: expanding = not self.GetFoldExpanded(lineNum) break; lineNum = 0 while lineNum < lineCount: level = self.GetFoldLevel(lineNum) if level & STC_FOLDLEVELHEADERFLAG and \ (level & STC_FOLDLEVELNUMBERMASK) == STC_FOLDLEVELBASE: if expanding: self.SetFoldExpanded(lineNum, True) lineNum = self.Expand(lineNum, True) lineNum = lineNum - 1 else: lastChild = self.GetLastChild(lineNum, -1) self.SetFoldExpanded(lineNum, False) if lastChild > lineNum: self.HideLines(lineNum+1, lastChild) lineNum = lineNum + 1 # << class PythonSTC methods >> (5 of 6) def Expand(self, line, doExpand, force=False, visLevels=0, level=-1): lastChild = self.GetLastChild(line, level) line = line + 1 while line <= lastChild: if force: if visLevels > 0: self.ShowLines(line, line) else: self.HideLines(line, line) else: if doExpand: self.ShowLines(line, line) if level == -1: level = self.GetFoldLevel(line) if level & STC_FOLDLEVELHEADERFLAG: if force: if visLevels > 1: self.SetFoldExpanded(line, True) else: self.SetFoldExpanded(line, False) line = self.Expand(line, doExpand, force, visLevels-1) else: if doExpand and self.GetFoldExpanded(line): line = self.Expand(line, True, force, visLevels-1) else: line = self.Expand(line, False, force, visLevels-1) else: line = line + 1; return line # << class PythonSTC methods >> (6 of 6) def SetValue(self, text): self.SetText(text) # -- end -- << class PythonSTC methods >> # <> (11 of 15) """The event handler for speech events""" class ContextEvents(win32com.client.getevents("SAPI.SpSharedRecoContext")): # << class ContextEvents methods >> def OnRecognition(self, StreamNumber, StreamPosition, RecognitionType, Result): global speaker,shell,items newResult = win32com.client.Dispatch(Result) #print newResult.PhraseInfo.GetText() try: # Exec the appropriate listbox entry exec items[newResult.PhraseInfo.GetText()] except: # If execution fails, display a messagebox with error and cause etype, value, tb = sys.exc_info() message = (str(etype)+":"+str(value)+ "\nat line "+`tb.tb_next.tb_lineno`+ "for text '"+newResult.PhraseInfo.GetText()+"'") dlg = wx.MessageDialog(None, message, 'Exception: '+str(etype), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() # -- end -- << class ContextEvents methods >> # <> (12 of 15) """The event handler for speech events""" class MyEvents(win32com.client.getevents("SAPI.SpSharedRecoContext")): # << class MyEvents methods >> def OnRecognition(self, StreamNumber, StreamPosition, RecognitionType, Result): self.speechresult = '' global speaker,shell,items newResult = win32com.client.Dispatch(Result) self.speechresult = newResult.PhraseInfo.GetText() # -- end -- << class MyEvents methods >> # <> (13 of 15) class MyFrame(wx.Frame): # << class MyFrame methods >> (1 of 28) def __init__(self, parent, id, title): wx.Frame.__init__(self, parent, id, title, wx.DefaultPosition, wx.DefaultSize) global speaker,shell,items self.items = items eventManager.Register(self.OnCloseWindow, wx.EVT_CLOSE, self) #eventManager.Register(self.Onsize, wx.EVT_SIZE, self) #Menus self.mainmenu = wx.MenuBar() menu=wx.Menu() exitID=wx.NewId() menu.Append(exitID, '&Load', 'Load Data') eventManager.Register(self.OnLoadData, wx.EVT_MENU, win = self,id=exitID) exitID=wx.NewId() menu.Append(exitID, '&Save', 'Save Data') eventManager.Register(self.OnSaveData, wx.EVT_MENU, win = self,id=exitID) exitID=wx.NewId() menu.Append(exitID, 'Save &As', 'Save Data As') eventManager.Register(self.OnSaveAsData, wx.EVT_MENU, win = self,id=exitID) exitID=wx.NewId() menu.Append(exitID, '&Clear', 'Clear Data') eventManager.Register(self.OnClearData, wx.EVT_MENU, win = self,id=exitID) self.mainmenu.Append (menu, '&Data') self.SetMenuBar (self.mainmenu) #Toolbar and status bar tb = self.CreateToolBar(wx.TB_HORIZONTAL|wx.NO_BORDER|wx.TB_FLAT) self.LoadToolimg() self.CreateStatusBar() tool1 = wx.NewId() tool2 = wx.NewId() tool3 = wx.NewId() tool4 = wx.NewId() tool5 = wx.NewId() tool6 = wx.NewId() tool7 = wx.NewId() tool8 = wx.NewId() tb.AddSimpleTool(tool1, self.stop_bmp, "Stop", "Stop Language interpitation") eventManager.Register(self.OnTurnOffClick, wx.EVT_TOOL, win = self,id=tool1) eventManager.Register(self.OnTurnOffClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool1) tb.AddSimpleTool(tool2, self.go_bmp, "Go", "Start Language interpitation") eventManager.Register(self.OnTurnOnClick, wx.EVT_TOOL, win = self,id=tool2) eventManager.Register(self.OnTurnOnClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool2) tb.AddSeparator() tb.AddSimpleTool(tool3, self.add_bmp, "Add", "Add New Voice Command") eventManager.Register(self.OnAddClick, wx.EVT_TOOL, win = self,id=tool3) eventManager.Register(self.OnAddClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool3) tb.AddSimpleTool(tool4, self.delete_bmp, "Delete", "Delete Voice Command") eventManager.Register(self.OnDeleteClick, wx.EVT_TOOL, win = self,id=tool4) eventManager.Register(self.OnDeleteClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool4) tb.AddSeparator() tb.AddSimpleTool(tool5, self.test_bmp, "Test", "Test Command") eventManager.Register(self.OnTestClick, wx.EVT_TOOL, win = self,id=tool5) eventManager.Register(self.OnTestClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool5) tb.AddSeparator() tb.AddSimpleTool(tool6, self.code_bmp, "Code", "Open Code Window") eventManager.Register(self.OnCodeClick, wx.EVT_TOOL, win = self,id=tool6) eventManager.Register(self.OnCodeClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool6) tb.AddSimpleTool(tool7, self.internet_bmp, "Internet", "Open Internet Window") eventManager.Register(self.OnInternetClick, wx.EVT_TOOL, win = self,id=tool7) eventManager.Register(self.OnInternetClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool7) tb.AddSimpleTool(tool8, self.camera_bmp, "Camera", "Open Camera Window") eventManager.Register(self.OnCameraClick, wx.EVT_TOOL, win = self,id=tool8) eventManager.Register(self.OnCameraClick, wx.EVT_TOOL_RCLICKED, win = self,id=tool8) tb.Realize() #start Voice self.listener = win32com.client.Dispatch("SAPI.SpSharedRecognizer") self.context = self.listener.CreateRecoContext() self.grammar = self.context.CreateGrammar() self.grammar.DictationSetState(0) self.ListItemsRule = self.grammar.Rules.Add("ListItemsRule", 33, 0) self.events = ContextEvents(self.context) self.turnedOn = True self.LISTBOX_ID = wx.NewId() self.EDITOR_ID = wx.NewId() self.panelID = wx.NewId() self.notebook = wx.Notebook(self, -1) #self.nbizer = wx.NotebookSizer(self.notebook) self.splitter = wx.SplitterWindow(self.notebook, -1, style=wx.SP_3D) self.splitter.SetSashPosition(135) self.splitter.SetMinimumPaneSize(20) self.ie = IEHtmlWin(self.notebook, -1, style = wx.NO_FULL_REPAINT_ON_RESIZE) self.ie.GoHome() self.listBox = wx.ListBox(self.splitter, self.LISTBOX_ID, wx.Point(10, 10), wx.Size(120, 200),sorted(self.items.keys()), wx.LB_SINGLE) eventManager.Register(self.OnListBoxSelect, wx.EVT_LISTBOX, self.listBox) self.listBox.SetSelection(0) self.editor = PythonSTC(self.splitter, self.panelID) self.editor.SetValue( self.items[self.listBox.GetStringSelection()]) #EVT_STC_UPDATEUI(self.editor, self.panelID, self.OnTextEntered) eventManager.Register(self.OnTextEntered, EVT_STC_UPDATEUI, self.editor) #self.panel = ScrolledPanel(self.notebook, -1, size=(-1,-1), style = wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER ) self.camera = CameraFrame(self.notebook , 0) self.splitter.SplitVertically(self.listBox, self.editor) self.searchpage = googollib.splitframe(self.notebook, -1) self.notebook.AddPage(self.splitter, "Code") #self.notebook.AddPage(self.editor, "Code") self.notebook.AddPage(self.ie, "Internet") self.notebook.AddPage(self.camera, "Camera") self.notebook.AddPage(self.searchpage, "Search") self.notebook.SetSelection(0) #self.camsize = wx.BoxSizer( wx.VERTICAL) #self.camsize.Add(self.camera.all_sizer, 1, wx.EXPAND) #self.camsize.Add(self.camera, 1, wx.EXPAND) #self.panel.SetAutoLayout( 1 ) #self.panel.SetSizer(self.camsize) self.SetWords() #self.mainsize = wx.BoxSizer( wx.VERTICAL) #self.mainsize.Add(self.nbizer, 1, wx.EXPAND) #self.SetAutoLayout(1) #self.SetSizer(self.nbizer) #maintimerID = wx.NewId() #self.maintimer = wx.Timer(self,maintimerID) #eventManager.Register(self.OnTimer, wx.EVT_TIMER, win = self,id=maintimerID) #wx.EVT_TIMER(self, maintimerID, self.OnTimer) #self.maintimer.Start(900000)#(1800000) # << class MyFrame methods >> (2 of 28) def Onsize(self, event): pass # << class MyFrame methods >> (3 of 28) def OnTimer(self, event): #print "on timer" #Weatherinfo = threading.Thread(group=None, target=self.weatherget, name=None, args=(), kwargs={}) #Weatherinfo.start() pass # << class MyFrame methods >> (4 of 28) def LoadToolimg(self): stop_data ='\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\x84\x84\x84\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x94\x94\x94\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6ZZZ!!!\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18!!!sss\xce\xce\xce\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbdRRR\x10\x10\x10\x00\x00\x00BBB\xc6\xc6\xc6\xc6\xad\xad\xc6\x08\x08\xc6\x00\x00)\x00\x00\x00\x00\x00\x10\x10\x10kkk\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6)))\x00\x00\x00RRR\xd6\xd6\xd6\xff\xde\xde\xffJJ\xff\x00\x00\xff\x00\x00\xc6\x00\x009\x00\x00\x00\x00\x00BBB\xce\xce\xce\xc6\xc6\xc6\xb5\xb5\xb5RRR\x10\x10\x10kkk\xd6\xd6\xd6\xff\xce\xce\xffBB\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xc6\x00\x00R\x00\x00\x18\x18\x18ccc\xc6\xc6\xc6\xad\xad\xad\x10\x10\x10\x00\x00\x00\xa5\xb5\xb5\xff\xc6\xc6\xffBB\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x18\x18\x18\x00\x00\x00\xa5RR\xffBB\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x18\x18\x18\x00\x00\x00\xa5\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x10\x10\x10\x00\x00\x00\xa5\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00\x00)))\xc6\xc6\xc6\xb5\xb5\xb5JJJ\x08\x08\x08s\x00\x00\xde\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xce\x00\x00Z\x00\x00\x10\x10\x10ZZZ\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6)))\x00\x00\x00Z\x00\x00\xde\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xd6\x00\x00B\x00\x00\x00\x00\x00BBB\xce\xce\xce\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbdJJJ\x08\x08\x08\x00\x00\x00J\x00\x00\xd6\x00\x00\xce\x00\x00\xd6\x00\x00\xce\x00\x00)\x00\x00\x00\x00\x00\x10\x10\x10ccc\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6RRR\x18\x18\x18\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x18\x18\x18kkk\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6{{{\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x94\x94\x94\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, stop_data) img = PILToWX(tool_img) self.stop_bmp = wx.BitmapFromImage(img) #self.stop_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\STOP.BMP', wx.BITMAP_TYPE_BMP).ConvertToBitmap() go_data ='\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\x84\x84\x84\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x94\x94\x94\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6ZZZ!!!\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x18\x18!!!sss\xce\xce\xce\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbdRRR\x10\x10\x10\x00\x00\x00BBB\xc6\xc6\xc6\xad\xc6\xad\x08\xc6\x08\x00\xc6\x00\x00)\x00\x00\x00\x00\x10\x10\x10kkk\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6)))\x00\x00\x00RRR\xd6\xd6\xd6\xde\xff\xdeJ\xffJ\x00\xff\x00\x00\xff\x00\x00\xc6\x00\x009\x00\x00\x00\x00BBB\xce\xce\xce\xc6\xc6\xc6\xb5\xb5\xb5RRR\x10\x10\x10kkk\xd6\xd6\xd6\xce\xff\xceB\xffB\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xc6\x00\x00R\x00\x18\x18\x18ccc\xc6\xc6\xc6\xad\xad\xad\x10\x10\x10\x00\x00\x00\xb5\xa5\xb5\xc6\xff\xc6B\xffB\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x18\x18\x18\x00\x00\x00R\xa5RB\xffB\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x18\x18\x18\x00\x00\x00\x00\xa5\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00)))\xc6\xc6\xc6\xad\xad\xad\x10\x10\x10\x00\x00\x00\x00\xa5\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\x84\x00\x00\x00\x00)))\xc6\xc6\xc6\xb5\xb5\xb5JJJ\x08\x08\x08\x00s\x00\x00\xde\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xce\x00\x00Z\x00\x10\x10\x10ZZZ\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6\xc6)))\x00\x00\x00\x00Z\x00\x00\xde\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xd6\x00\x00B\x00\x00\x00\x00BBB\xce\xce\xce\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbdJJJ\x08\x08\x08\x00\x00\x00\x00J\x00\x00\xd6\x00\x00\xce\x00\x00\xd6\x00\x00\xce\x00\x00)\x00\x00\x00\x00\x10\x10\x10ccc\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6RRR\x18\x18\x18\x10\x10\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x10\x10\x18\x18\x18kkk\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6{{{\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x10\x94\x94\x94\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, go_data) img = PILToWX(tool_img) self.go_bmp = wx.BitmapFromImage(img) #self.go_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\GO.BMP', wx.BITMAP_TYPE_BMP).ConvertToBitmap() inter_data ='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbf\xbf\xbf\x7f\x7f\x7f\x00\x7f\x7f\x00\x7f\x7f\x00\x7f\x7f\x00\x7f\x7f\x7f\x7f\x7f\xbf\xbf\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff?\x7f\x7f\x7f?\xbf\xbf?\xff\xff\x00\xff\xbf?\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xbf\xbf?\x7f\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x7f?\x7f\x7f\x7f\xff\x7f\x7f\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\x7f\x7f\xff\x7f\x7f\xff\x7f\x7f\xff\x00\xff\xff\x00\xff\xff?\x7f\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff?\x7f\x7f?\x7f\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\x7f\x7f\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff?\x7f\x7f\xff\xff\xff\xbf\xbf\xbf\x00\xbf\xbf\x00\x7f\xff?\x00\xff\x7f\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\x7f?\xff\x00\x00\xff\x00\xff\xff\x00\xff\xff?\x7f\xbf\xbf\xbf\xbf\x7f\x7f\x7f\x00\xff\xff\x00\xbf\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\xbf\xff\x00\x7f\xff\x00\x00\xff\x00\x7f\xff\x00\xff\xff?\xbf\xff\xff\x00\xff\x7f\x7f\x7f\x00\x7f\x7f\x00\xff\xff\x00\xff\xff\x00\x7f\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\xff\xff\xbf??\x00\xff\xff?\xbf\xff\x7f\x00\x7f???\x00\xff\xff\x00\xff\xff\x00\x7f\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x7f\x7f????\xbf\xbf\x00\xff\xff\x7f\x7f\x7f?\x00\xbf\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x7f\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x7f\x7f\x7f\x00\x00\x7f\x7f\x7f\x00\xff\xff\x7f\x7f\x7f\xff\x00\x00\xbf\x00?\x00\x00\xff\x00\xff\xff\x00\xff\xff\x00\xbf\xff\x00\x00\xff?\xbf\xbf\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x7f\x7f\x7f\x7f\x7f?\xbf\xbf\x00\xff\xff\x00\xff\xff\xff\x00\x00\xff\x00\x00\x7f\x7f\x7f\x00\xff\xff\x00\xff\xff\x00\x7f\xff\x00\x7f\xff\x00\xff\xff?\xbf\xbf?\xbf\xbf\x00\xff\xff\x7f\x7f\x7f\xbf\xbf\xbf?\x7f\x7f\x00\xff\xff\x00\xff\xff\x00\xff\xff\xbf??\xff\x00\x00\xbf????\xbf\x00\x00\xff\x00\x00\xff\x00?\xff\x00\xff\xff\x00\xff\xff\x00\xbf\xbf\xbf\xbf\xbf\xff\xff\xff?\x7f\x7f\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\xff\x00\x00?\xbf\xbf\x00\xbf\xff\x00\x00\xff\x00\x00\xff\x00\x7f\xff\x00\xff\xff\x00\xff\xff?\x7f\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff?\x7f\x7f\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x00\xff\x00\x00\xff\x00\xff\xff\x00\xff\xff?\x7f\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff?\x7f\x7f\x00\xbf\xbf\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x7f\xff\x00?\xff\x00\xff\xff\x00\xbf\xbf?\x7f\x7f\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xbf\xbf\xbf\x7f\x7f\x7f\x00\x7f\x7f\x00\x7f\x7f\x00?\x7f\x00\x7f\x7f\x7f\x7f\x7f\xbf\xbf\xbf\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, inter_data) img = PILToWX(tool_img) self.internet_bmp = wx.BitmapFromImage(img) #self.internet_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\INTERNAT.BMP', wx.BITMAP_TYPE_BMP).ConvertToBitmap() new_data ='\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5!!!\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18!!!\xb5\xb5\xb5\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\x10\x10\x10\xc6\xc6\xc6\xce\xce\xce\xce\xce\xce\xce\xce\xce\xce\xce\xce\xc6\xc6\xc6\x08\x08\x08)))\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf7\xf7\xf7\x10\x10\x10\xb5\xb5\xb5999\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00BBB\x00\x00\x00999\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xa5\xa5\xa5\x9c\x9c\x9c\x9c\x9c\x9c\x08\x08\x08\xb5\xb5\xb5\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf7\xf7\xf7\x10\x10\x10\xb5\xb5\xb5\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x18\x18\xb5\xb5\xb5\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x18\x18\xb5\xb5\xb5\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x18\x18\xb5\xb5\xb5\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x18\x18\x18\xb5\xb5\xb5\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x10\x10\x10\xb5\xb5\xb5\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xbd\xb5\xb5\xb5\x18\x18\x18\xf7\xf7\xf7\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xf7\xf7\xf7\x10\x10\x10\xbd\xbd\xbd\xc6\xc6\xc6\xc6\xc6\xc6\xbd\xbd\xbd\xb5\xb5\xb5\x10\x10\x10\xd6\xd6\xd6\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xde\xd6\xd6\xd6\x10\x10\x10\xb5\xb5\xb5\xc6\xc6\xc6\xbd\xbd\xbd\xc6\xc6\xc6\xb5\xb5\xb5\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x18\x10\x10\x10\x18\x18\x18\xbd\xbd\xbd\xbd\xbd\xbd\xc6\xc6\xc6\xbd\xbd\xbd\xbd\xbd\xbd\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xad\xbd\xbd\xbd\xc6\xc6\xc6' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, new_data) img = PILToWX(tool_img) self.add_bmp = wx.BitmapFromImage(img) #self.add_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\new.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() del_data ='\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\x80\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xc0\xc0\xc0\x80\x80\x80\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xff\xff\xff\x80\x80\x80\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\x00\x00\x80\x00\x00\x80\x00\x00\x80\x00\x00\x80\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\x00\x00\x80\x00\x00\x80\xc0\xc0\xc0\x00\x00\x80\x00\x00\x80\x00\x00\x80\xff\xff\xff\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\x00\x00\x80\x00\x00\x80\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xff\xff\xff\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xff\xff\xff\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x80\x80\x80\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0\xc0' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, del_data) img = PILToWX(tool_img) self.delete_bmp = wx.BitmapFromImage(img) #self.delete_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\delete.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() test_data ='\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\xff\xff\xff\xff\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\xff\xff\x00\xff\xff\xff\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\xff\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\xff\xff\xff\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\xff\xff\xff\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\x00\x00\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x80\x80\x00\xff\xff\x00\xff\xff\x00\xff\xff\x00\x80\x80\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, test_data) img = PILToWX(tool_img) self.test_bmp = wx.BitmapFromImage(img) #self.test_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\test.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() code_data ='\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\xbc\x17\x17\x8c\xee\xee\xf6\xac\xac\xa4\xa4\xa4\xa4\x9b\x9b\x9b\xa4\xa4\x9b\xac\xac\xa4\xf6\xf6\xfe\x07\x07\x83\xac\xac\xac \x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17\x17 \x17\x17\x8c\xee\xee\xeeQQQIIIIIIIIIQQQ\xee\xee\xee\x07\x07\x83\xac\xac\xac\x0f\x0f\x0f\xc5\xc5\xc5\xcd\xcd\xcd\xcd\xcd\xcd\xc5\xc5\xc5\x07\x07\x07\x17\x17\x8c\xee\xee\xf6\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xee\xee\xf6\x07\x07\x83\xac\xac\xac\x17\x17\x17\xf6\xf6\xf6\xfe\xfe\xfe\xfe\xfe\xfe\xf6\xf6\xf6\x17\x17\x17\x17\x17\x8c\xee\xee\xee000(((((((((888\xe6\xe6\xee\x07\x07\x83\xac\xac\xac\x17\x17\x17\xe6\xe6\xe6IIIQQQ\xe6\xe6\xe6\x07\x07\x07\x17\x17\x8c\xd5\xd5\xe6\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xd5\xd5\xe6\x07\x07\x83\xac\xac\xac\x17\x17\x17\xee\xee\xee\xa4\xa4\xa4\xac\xac\xac\xfe\xfe\xfe\xa4\xa4\xac\x17\x17\x8c\xee\xee\xf6\xac\xac\xa4\xa4\xa4\xa4\x9b\x9b\x9b\xa4\xa4\x9b\xac\xac\xa4\xf6\xf6\xfe\x07\x07\x83\xac\xac\xac\x17\x17\x17\xee\xee\xeerrrjjjbbbbbj\x17\x17\x8c\xee\xee\xeeQQQIIIIIIIIIQQQ\xee\xee\xee\x07\x07\x83\xac\xac\xac\x17\x17\x17\xee\xee\xee\x83\x83\x83zzz\x83\x83\x83zzz\x17\x17\x8c\xee\xee\xf6\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xee\xee\xf6\x07\x07\x83\xac\xac\xac\x17\x17\x17\xee\xee\xee\x93\x93\x93\x93\x93\x93\x93\x93\x93\x8b\x8b\x93\x17\x17\x8c\xee\xee\xee000(((((((((888\xe6\xe6\xee\x07\x07\x83\xac\xac\xac\x17\x17\x17\xee\xee\xeebbbYYYYYYQQY\x17\x17\x8c\xd5\xd5\xe6\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xd5\xd5\xe6\x07\x07\x83\xac\xac\xac\x0f\x0f\x0f\xa4\xa4\xa4\xb4\xb4\xb4\xbc\xbc\xbc\xb4\xb4\xb4\xac\xac\xb4\x17\x17\x8c\xee\xee\xeeQQQIIIIIIIIIQQQ\xee\xee\xee\x07\x07\x83\xb4\xb4\xb4000((( ((( (\x17\x17\x8c\xee\xee\xf6\xac\xac\xa4\xa4\xa4\xa4\x9b\x9b\x9b\xa4\xa4\x9b\xac\xac\xa4\xf6\xf6\xfe\x07\x07\x83\xbc\xbc\xbc\xc5\xc5\xc5\xc5\xc5\xc5\xbc\xbc\xbc\xc5\xc5\xc5\xc5\xc5\xc5\xb4\xb4\xbc\x17\x17\x8c\xee\xee\xeeQQQIIIIIIIIIQQQ\xee\xee\xee\x07\x07\x83\xc5\xc5\xc5\xbc\xbc\xbc\xbc\xbc\xbc\xc5\xc5\xc5\xbc\xbc\xbc\xbc\xbc\xbc\xb4\xb4\xbc\x17\x17\x8c\xee\xee\xf6\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xc5\xee\xee\xf6\x07\x07\x83\xbc\xbc\xbc\xc5\xc5\xc5\xbc\xbc\xbc\xbc\xbc\xbc\xc5\xc5\xc5\xbc\xbc\xbc\xb4\xb4\xbc\x17\x17\x8c\xee\xee\xee000(((((((((888\xe6\xe6\xee\x07\x07\x83\xc5\xc5\xc5\xbc\xbc\xbc\xc5\xc5\xc5\xbc\xbc\xbc\xc5\xc5\xc5\xbc\xbc\xbc\xbc\xbc\xc5\x18\x18\x8c\xd5\xd5\xe6\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xdd\xdd\xee\xd5\xd5\xe6\x07\x07\x83' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, code_data) img = PILToWX(tool_img) self.code_bmp = wx.BitmapFromImage(img) #self.code_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\code.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() cam_data ='\x00\x00\xff\x07\x07\xfa\x0b\x0c\xf7\x00\x00\xff\x03\x03\xfd\x0e\x0e\xf5\x00\x00\xff\x0f\x10\xf4\x04\x04\xfd\x0f\x0f\xf4\x03\x03\xfd\x08\x08\xf9-/\xdd\x0e\x0e\xf5\x00\x00\xff\x00\x00\xff\x00\x00\xff\x0c\r\xf6@C\xd0\x19\x1a\xec\x05\x06\xfbEG\xcd\x0b\x0b\xf8-.\xd4\x07\x07\xe4,.\xd4\x15\x15\xf2?A\xd124\xda\x03\x03\xfd\t\n\xf8\x17\x18\xee\x00\x00\xff\x00\x00\xff\x10\x10\xf3HK\xca)*\xe1\r\r\xf5\x10\x11\xc7RUo{\x7fSQUp$&\xba\x1b\x1c\xec\x00\x00\xff\x1d\x1f\xe9KO\xc7\x1b\x1c\xeb\x00\x00\xff\x1f \xe8"#\xe6\x14\x15\xf0\x1b\x1d\xea\x11\x12\xc6\x98\x9eT\xed\xf7F\xf6\xffK\xed\xf7G\x98\x9eT\x10\x10\xc8\x1d\x1e\xeb?B\xd1\x11\x12\xf3\x00\x00\xff\x00\x00\xff\x14\x15\xf0DG\xcdNQ\xc7\x1d\x1e\xc3\x90\x96T\xf2\xfdJ\xf2\xfcM\xf1\xfbM\xf2\xfcM\xf3\xfdJ\x92\x98S,-\xb8\x08\x08\xfa\x02\x02\xfd\x00\x00\xff\x00\x00\xff\x00\x00\xff\x04\x04\xfc\x1f \xe7-/\x92\xd7\xe0C\xf3\xfdN\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf3\xfdN\xd6\xdfB\'(\x9879\xd6:<\xd5\x01\x01\xff\x00\x00\xff\x0f\x10\xf4KN\xc824\xd5PSi\xf0\xfaH\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf0\xfaHRUh\x1c\x1d\xe8\x06\x06\xfb\x00\x00\xff\x00\x00\xff\x04\x04\xfc\x0c\x0c\xf6\x00\x00\xff9;\x82\xe4\xedE\xf2\xfcM\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf2\xfcM\xe4\xedF9;\x82#$\xe3\x17\x18\xee\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x15\x16\xf0\x1a\x1b\xb2\xba\xc2D\xf6\xffM\xf1\xfbM\xf1\xfbM\xf1\xfbM\xf6\xffM\xba\xc2C\x0c\x0c\xbd\x07\x08\xfa\x0b\x0b\xf7\x00\x00\xff\x00\x00\xff\x04\x04\xfc24\xdaFI\xcb\x19\x1a\xe3=?\x91\xcf\xd8H\xf4\xfeM\xf1\xfbM\xf4\xfeM\xcf\xd8G:=\x93\x13\x13\xe9\x10\x10\xf4\x00\x00\xff\x00\x00\xff\x00\x00\xff\x0e\x0e\xf5.0\xdd\n\x0b\xf7>A\xd2\r\x0e\xed:<\x93\xd0\xd8H\xf6\xfeM\xcf\xd8I;=\x92\x00\x00\xf8\x11\x12\xf3BE\xce!"\xe7\x01\x01\xfe\x00\x00\xff\x00\x00\xff\x00\x00\xff!"\xe7EG\xcc\x01\x02\xff\x00\x00\xebuyN\xe8\xedDtyN\x00\x00\xeb\x00\x00\xff\x00\x00\xff\x11\x12\xf2>@\xd1\x0f\x0f\xf4\x00\x00\xff\x00\x00\xff\x00\x00\xff"#\xe6\x11\x12\xf2\x00\x00\xff\x00\x00\xedAB_\x84\x85eAB_\x00\x00\xed\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x01\x01\xfe\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xee76qml\x7f66q\x00\x00\xed\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xfc\x02\x02\xdd\x05\x05\xd8\x02\x02\xdd\x00\x00\xfc\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff\x00\x00\xff' tool_mode = 'RGB' tool_size = (16, 16) tool_img = Image.fromstring(tool_mode, tool_size, cam_data) img = PILToWX(tool_img) self.camera_bmp = wx.BitmapFromImage(img) #self.camera_bmp = wx.Image('c:\\python23\\tom\\bitmaps\\camera.bmp', wx.BITMAP_TYPE_BMP).ConvertToBitmap() # << class MyFrame methods >> (5 of 28) def weatherget(self): #print "on timer" attempts = 0 while attempts < 6: attempts = attempts + 1 try: #print "attempt to download radar image from web" ins = urllib2.urlopen('http://www.ssec.wisc.edu/data/east/latest_eastvis.gif') webdata = ins.read() ins.close() webimg = Image.open(StringIO.StringIO(webdata)) except: # download failed, repeat for maxattempts times #print 'download failed, visible' webimg = None else: # download successful #print ' download successful' break attempts = 0 while attempts < 6: attempts = attempts + 1 try: # attempt to download radar image from web ins1 = urllib2.urlopen('http://www.ssec.wisc.edu/data/east/latest_eastwv.gif') webdata1 = ins1.read() ins1.close() webimg1 = Image.open(StringIO.StringIO(webdata1)) except: # download failed, repeat for maxattempts times #print 'download failed, water vapor' webimg1 = None else: # download successful #print ' download successful' break attempts = 0 while attempts < 6: attempts = attempts + 1 try: # attempt to download radar image from web ins2 = urllib2.urlopen('http://www.ssec.wisc.edu/data/east/latest_eastir.gif') webdata2 = ins2.read() ins2.close() webimg2 = Image.open(StringIO.StringIO(webdata2)) except: # download failed, repeat for maxattempts times #print 'download failed, IR' webimg2 = None attempts = 0 while attempts < 6: attempts = attempts + 1 try: # attempt to download radar image from web ins3 = urllib2.urlopen('http://www.wrh.noaa.gov/radar/images/DS.p19r0/SI.kfsx/latest.gif') webdata3 = ins3.read() ins3.close() webimg3 = Image.open(StringIO.StringIO(webdata3)) except: # download failed, repeat for maxattempts times #print 'download failed, radar' webimg3 = None else: # download successful #print ' download successful' break attempts = 0 while attempts < 6: attempts = attempts + 1 try: # attempt to download radar image from web #ins4 = file('c:\\python22\\data\\latestradar.bmp') #webdata4 = ins4.read() #ins4.close() webimg4 = Image.open('c:\\python22\\data\\latestradar.bmp')#(StringIO.StringIO(webdata4)) except: # download failed, repeat for maxattempts times #print 'download failed, repeat for latestradar.bmp' webimg4 = None else: # download successful #print ' download successful' break if webimg: try: jpegimg = webimg.convert('RGB') except: pass else: fpath = os.path.join('c:\\python22\\data', 'latestradar.gif') jpegimg.save(fpath) if webimg1: try: jpegimg1 = webimg1.convert('RGB') except: pass else: fpath = os.path.join('c:\\python22\\data\\water_vapor', 'latestradar.gif') jpegimg1.save(fpath) if webimg2: try: jpegimg2 = webimg2.convert('RGB') except: pass else: fpath = os.path.join('c:\\python22\\data\\IR', 'latestradar.gif') jpegimg2.save(fpath) if webimg3: try: jpegimg3 = webimg3.convert('RGB') except: pass else: fpath = os.path.join('c:\\python22\\data\\weathercom', 'latestradar.gif') jpegimg3.save(fpath) if webimg4: try: jpegimg4 = webimg4.convert('RGB') except: pass else: fpath = os.path.join('c:\\python22\\data\\color', 'latestradar.gif') jpegimg4.save(fpath) fpath = os.path.join('c:\\python22\\data','latestRGB.bmp') tom = self.rgb_convert() tom.save(fpath) if webimg: try: gifimg = webimg.convert('P') except: pass else: fname = 'webradar' + '-%4d%02d%02d%02d%02d%02d.gif'%time.localtime(time.time())[:6] fpath = os.path.join('c:\\python22\\data', fname) gifimg.save(fpath) #print 'createAnimation' filelist = glob.glob(os.path.join('c:\\python22\\data', 'webradar'+'*.gif')) filelist.sort() animlist = filelist[-10:] incpath = os.path.join('c:\\python22\\data','gifinc.txt' ) incs = open(incpath, 'w') for framefile in animlist: incs.write('%s\n'%framefile) incs.close() animpath = os.path.join('c:\\python22\\data', 'radaranim.gif') os.system('c:\\python22\\whirlgif -o %s -loop %d -time %d -i %s'%(animpath,15,50,incpath)) if webimg1: try: gifimg1 = webimg1.convert('P') except: pass else: fname = 'webradar' + '-%4d%02d%02d%02d%02d%02d.gif'%time.localtime(time.time())[:6] fpath = os.path.join('c:\\python22\\data\\water_vapor', fname) gifimg1.save(fpath) #print 'createAnimation' filelist = glob.glob(os.path.join('c:\\python22\\data\\water_vapor', 'webradar'+'*.gif')) filelist.sort() animlist = filelist[-10:] incpath = os.path.join('c:\\python22\\data\\water_vapor','gifinc.txt' ) incs = open(incpath, 'w') for framefile in animlist: incs.write('%s\n'%framefile) incs.close() animpath = os.path.join('c:\\python22\\data\\water_vapor', 'radaranim.gif') os.system('c:\\python22\\whirlgif -o %s -loop %d -time %d -i %s'%(animpath,15,50,incpath)) if webimg2: try: gifimg2 = webimg2.convert('P') except: pass else: fname = 'webradar' + '-%4d%02d%02d%02d%02d%02d.gif'%time.localtime(time.time())[:6] fpath = os.path.join('c:\\python22\\data\\IR', fname) gifimg2.save(fpath) #print 'createAnimation' filelist = glob.glob(os.path.join('c:\\python22\\data\\IR', 'webradar'+'*.gif')) filelist.sort() animlist = filelist[-10:] incpath = os.path.join('c:\\python22\\data\\IR','gifinc.txt' ) incs = open(incpath, 'w') for framefile in animlist: incs.write('%s\n'%framefile) incs.close() animpath = os.path.join('c:\\python22\\data\\IR','radaranim.gif') os.system('c:\\python22\\whirlgif -o %s -loop %d -time %d -i %s'%(animpath,15,50,incpath)) if webimg3: try: gifimg3 = webimg3.convert('P') except: pass else: fname = 'webradar' + '-%4d%02d%02d%02d%02d%02d.gif'%time.localtime(time.time())[:6] fpath = os.path.join('c:\\python22\\data\\weathercom', fname) gifimg3.save(fpath) #print 'createAnimation' filelist = glob.glob(os.path.join('c:\\python22\\data\\weathercom', 'webradar'+'*.gif')) filelist.sort() animlist = filelist[-10:] incpath = os.path.join('c:\\python22\\data\\weathercom','gifinc.txt' ) incs = open(incpath, 'w') for framefile in animlist: incs.write('%s\n'%framefile) incs.close() animpath = os.path.join('c:\\python22\\data\\weathercom', 'radaranim.gif') os.system('c:\\python22\\whirlgif -o %s -loop %d -time %d -i %s'%(animpath,15,50,incpath)) if webimg4: try: gifimg4 = webimg4.convert('P') except: pass else: fname = 'webradar' + '-%4d%02d%02d%02d%02d%02d.gif'%time.localtime(time.time())[:6] fpath = os.path.join('c:\\python22\\data\\color', fname) gifimg4.save(fpath) #print 'createAnimation' filelist = glob.glob(os.path.join('c:\\python22\\data\\color', 'webradar'+'*.gif')) filelist.sort() animlist = filelist[-10:] incpath = os.path.join('c:\\python22\\data\\color','gifinc.txt' ) incs = open(incpath, 'w') for framefile in animlist: incs.write('%s\n'%framefile) incs.close() animpath = os.path.join('c:\\python22\\data\\color', 'radaranim.gif') os.system('c:\\python22\\whirlgif -o %s -loop %d -time %d -i %s'%(animpath,15,50,incpath)) # << class MyFrame methods >> (6 of 28) def Prep_HTML(HTML_Txt): tag_flag = 0 link_list = [] page_txt = '' tag_text = '' pre_page = '' recur_flag = 0 for i in HTML_Txt: if i == '<': tag_flag = 1 elif i == '>': tag_flag = 0 if tag_flag == 1: tag_text = tag_text + i elif i == '>' and tag_flag == 0: tag_text = tag_text + i if count(tag_text, '<') > 1 and recur_flag == 0: recur_flag = 1 tag_text = '<' + Prep_HTML(tag_text[1:]) recur_flag = 0 if tag_text[:1] == '> (7 of 28) def rgb_convert(self): red = Image.open('c:\\python22\\data\\IR\\latestradar.bmp') green = Image.open('c:\\python22\\data\\latestradar.bmp') blue = Image.open('c:\\python22\\data\\water_vapor\\latestradar.bmp') green=green.convert('L') blue = blue.convert('L') red = red.convert('L') #red = ImageChops.invert(red) #blue = ImageChops.invert(blue) m_img = Image.merge('RGB',(red ,green,blue)) return m_img # << class MyFrame methods >> (8 of 28) def SetWords(self): self.ListItemsRule.Clear() if self.turnedOn: #print "Setting words - turned on" [ self.ListItemsRule.InitialState.AddWordTransition(None, word) for word in self.items.keys() ] else: #print "Setting words - OFF" self.ListItemsRule.InitialState.AddWordTransition(None, "computer wake up") self.grammar.Rules.Commit() self.grammar.CmdSetRuleState("ListItemsRule", 1) self.grammar.Rules.Commit() # << class MyFrame methods >> (9 of 28) def GetStory(self): stories = urllib2.urlopen('http://www.unknowncountry.com/') page = stories.read() substories = page[page.find(''):page.rfind('
')] stories.close() substories = substories.replace('src=' , 'src=http://www.unknowncountry.com') substories = substories.replace('href=' , 'href=http://www.unknowncountry.com') self.ie.LoadString(substories) # << class MyFrame methods >> (10 of 28) def OnAddClick(self,event): dlg = wx.TextEntryDialog(self, 'Text to recognize', "New item") if dlg.ShowModal() == wx.ID_OK: self.items[dlg.GetValue()] = "" self.listBox.Set(sorted(self.items.keys())) self.listBox.SetStringSelection(dlg.GetValue()) self.editor.SetValue( self.items[self.listBox.GetStringSelection()] ) self.SetWords() dlg.Destroy() # << class MyFrame methods >> (11 of 28) def OnDeleteClick(self,event): del self.items[ self.listBox.GetStringSelection() ] self.listBox.Set(sorted(self.items.keys())) self.listBox.SetSelection(0) self.editor.SetValue( self.items[self.listBox.GetStringSelection()] ) self.SetWords() # << class MyFrame methods >> (12 of 28) def OnListBoxSelect(self,event): self.editor.SetValue(self.items[self.listBox.GetStringSelection()] ) # << class MyFrame methods >> (13 of 28) def OnTestClick(self, event): codeToExecute = self.items[self.listBox.GetStringSelection()] try: exec codeToExecute except: etype, value, tb = sys.exc_info() message = (str(etype)+":"+str(value)+ "\nat line "+`tb.tb_next.tb_lineno`) dlg = wx.MessageDialog(self, message, 'Exception: '+str(etype), wx.OK | wx.ICON_INFORMATION) dlg.ShowModal() dlg.Destroy() # << class MyFrame methods >> (14 of 28) def OnTextEntered(self, event): #the_text = self.editor.GetValue() the_text = self.editor.GetText() the_text = the_text.replace('\r', '') #print the_text self.items[self.listBox.GetStringSelection()] = the_text # << class MyFrame methods >> (15 of 28) def OnSaveAsData(self, event): pass # << class MyFrame methods >> (16 of 28) def OnClearData(self, event): pass # << class MyFrame methods >> (17 of 28) def OnCodeClick(self, event): self.splitter.SplitVertically(self.listBox, self.notebook) self.notebook.SetSelection(0) self.splitter.SetSashPosition(165) self.listBox.Show(True) # << class MyFrame methods >> (18 of 28) def OnInternetClick(self, event): self.notebook.SetSelection(1) self.splitter.Unsplit(app.frame.listBox) self.ie.SetFocus() # << class MyFrame methods >> (19 of 28) def OnCameraClick(self, event): self.notebook.SetSelection(2) self.splitter.Unsplit(app.frame.listBox) self.ie.SetFocus() # << class MyFrame methods >> (20 of 28) def OnCodelClick(self, event): self.splitter.SplitVertically(self.listBox, self.editor) # << class MyFrame methods >> (21 of 28) def OnToolRClick(self, event): self.splitter.SplitVertically(self.listBox, self.ie) # << class MyFrame methods >> (22 of 28) def OnLoadData(self, event): try: self.items = pickle.load(open('save.p')) except IOError: self.items = {u'turn on tee vee': u'sendKeys("^(%z)")', u'channel forty two': u'sendKeys("42")', u'close program now': u'sendKeys("%( )c")', u'channel thirty six': u'sendKeys("36")', u'play woman rock': u"say('please stand by')\nbrowseTo('http://release.theplatform.com/deliverable.select?pid=Mf5zobHmqTDt6bze2ThXCugPnEUpJQQh&UserID=choiceradio')", u'channel sixteen': u'sendKeys("16")', u'open tee vee guide': u"browseTo('http://tv.yahoo.com/grid?lineup=us_AZ02423&dur=&.intl=us&startdate=0&starthour=0&genres=0')", u'channel thirty four': u'sendKeys("34")', u'channel forty four': u'sendKeys("44")', u'play raggae': u"say('please stand by')\nbrowseTo('http://www.totallyradio.com/asx/live/reggae.asx')", u'computer': u"say('working')", u'channel forty': u'sendKeys("40")', u'channel thirty eight': u'sendKeys("38")', u'stop music': u'sendKeys("^(s)")', u'play mellow yellow': u"say('please stand by')\nbrowseTo('http://radio.player.loudeye.com/LoudSE/radio.jsp?anID=22&aID=1874&dsoID=4')", u'channel seven': u'sendKeys("7")', u'channel two': u'sendKeys("2")', u'play new age': u"say('please stand by')\nbrowseTo('http://release.theplatform.com/deliverable.select?pid=tXSTT6E-SWIv_678ayYHCdIp51IFHhLb&UserID=choiceradio')"} # << class MyFrame methods >> (23 of 28) def OnSaveData(self, event): pickle.dump(self.items, open('save.p', 'w')) # << class MyFrame methods >> (24 of 28) def OnCloseWindow(self, event): pickle.dump(self.items, open('save.p', 'w')) if hasattr(self, "tbicon"): del self.tbicon self.Destroy() # << class MyFrame methods >> (25 of 28) def OnTurnOnClick(self, event): if not self.turnedOn: self.turnedOn = True self.SetWords() # << class MyFrame methods >> (26 of 28) def OnTurnOffClick(self, event): if (self.turnedOn): self.turnedOn = False self.SetWords() # << class MyFrame methods >> (27 of 28) def OnOff(self): self.ListItemsRule.Clear() #print "Not accepting speach" self.ListItemsRule.InitialState.AddWordTransition(None, "") self.grammar.Rules.Commit() self.grammar.CmdSetRuleState("ListItemsRule", 1) self.grammar.Rules.Commit() # << class MyFrame methods >> (28 of 28) def OnOn(self): self.ListItemsRule.Clear() #print "accepting speach" self.ListItemsRule.InitialState.AddWordTransition(None, "computer wake up") self.grammar.Rules.Commit() self.grammar.CmdSetRuleState("ListItemsRule", 1) self.grammar.Rules.Commit() # -- end -- << class MyFrame methods >> # <> (14 of 15) class MyApp(wx.App): # << class MyApp methods >> def OnInit(self): # Create an instance of our customized Frame class self.frame = MyFrame(None, -1, "Speech macros") self.frame.Show(True) # Tell wx.Windows that this is our main window self.SetTopWindow(self.frame) # Return a success flag return True # -- end -- << class MyApp methods >> # <> (15 of 15) class CameraFrame(ScrolledPanel): # << class CameraFrame methods >> (1 of 12) def __init__(self, parent, number, id = -1, size = (-1,-1),parent_note = None): ScrolledPanel.__init__(self, parent, id, wx.Point(0, 0), size, wx.TAB_TRAVERSAL|wx.SUNKEN_BORDER) #self.cam = Device(devnum=0,showVideoWindow=0) self.cam = dictofpyro['Camera'] img = self.cam.tostring() self.Imagethen = Image.fromstring('RGB',(160, 120),img) img = self.cam.tostring() self.Imagenow = Image.fromstring('RGB',(160, 120),img) self.imagedifference = ImageChops.difference(self.Imagethen,self.Imagenow) self.quartercount = 0 self.avarage = 32 eventManager.Register(self.OnCloseWindow, wx.EVT_CLOSE, self) #wx.EVT_CLOSE(self, self.OnCloseWindow) maintimerID = wx.NewId() self.maintimer = wx.Timer(self, maintimerID) eventManager.Register(self.OnTimer, wx.EVT_TIMER, win = self,id=maintimerID) #wx.EVT_TIMER(self, maintimerID, self.OnTimer) self.parent = parent_note self.glob_thing = image_view.ImageView(self, -1,tools = [ image_view.PanTool, image_view.ZoomTool, image_view.InspectTool , image_view.SharpTool , image_view.ColorTool , image_view.BrightTool , image_view.ContTool , image_view.RestoreTool , image_view.RedTool , image_view.GreenTool , image_view.BlueTool, image_view.SaveTool]) #self.glob_thing.SetScrollbars(10, 10, 60, 100) self.img_then = wx.CheckBox(self,wx.NewId(),'Then', wx.Point(65, 40), wx.Size(50, 20), wx.NO_BORDER) self.img_now = wx.CheckBox(self, wx.NewId(),'Now', wx.Point(65, 40), wx.Size(50, 20), wx.NO_BORDER) self.img_diff = wx.CheckBox(self, wx.NewId(),'Diff', wx.Point(65, 40), wx.Size(50, 20), wx.NO_BORDER) self.img_save = wx.CheckBox(self, wx.NewId(), 'Save', wx.Point(65, 40), wx.Size(150, 20), wx.NO_BORDER) self.img_openwin = wx.CheckBox(self, wx.NewId(),'Show', wx.Point(65, 40), wx.Size(50, 20), wx.NO_BORDER) self.img_none = wx.CheckBox(self, wx.NewId(),'None', wx.Point(65, 40), wx.Size(50, 20), wx.NO_BORDER) eventManager.Register(self.Onimg_noneChecked, wx.EVT_CHECKBOX, self.img_none ) eventManager.Register(self.Onimg_openwinChecked, wx.EVT_CHECKBOX, self.img_openwin ) eventManager.Register(self.Onimg_thenChecked, wx.EVT_CHECKBOX, self.img_then ) eventManager.Register(self.Onimg_nowChecked, wx.EVT_CHECKBOX, self.img_now) eventManager.Register(self.Onimg_diffChecked, wx.EVT_CHECKBOX, self.img_diff ) eventManager.Register(self.Onimg_saveChecked, wx.EVT_CHECKBOX, self.img_save ) self.img_now.SetValue(1) self.img_openwinflag = 0 self.img_thenflag = 0 self.img_nowflag = 1 self.img_diffflag = 0 self.img_saveflag = 0 #self.img_noneflag = 0 l1 = wx.StaticText(self, -1, 'Save Path') self.savefilen = wx.TextCtrl(self, -1, 'C:\\Python22\\tom\\imgtest\\', size=(125,20)) eventManager.Register(self.Ontext, wx.EVT_TEXT, self.savefilen) self.savefilepath = 'C:\\Python22\\tom\\imgtest\\' self.check_sizer = wx.BoxSizer(wx.HORIZONTAL) self.check_sizer.Add(self.img_now, 1, wx.EXPAND) self.check_sizer.Add(self.img_then, 1, wx.EXPAND) self.check_sizer.Add(self.img_diff, 1, wx.EXPAND) self.check_sizer.Add(self.img_none, 1, wx.EXPAND) self.check_sizer.Add(self.img_openwin, 1, wx.EXPAND) self.check_sizer.Add(self.img_save, 1, wx.EXPAND) self.check_sizer.Add(self.savefilen, 1, wx.EXPAND) self.check_sizer.Add(l1,1, wx.EXPAND) #StartButtonID = wx.NewId() self.StartButton = wx.Button(self, wx.NewId(), "Go", wx.Point(20, 20)) eventManager.Register(self.OnGoClick, wx.EVT_BUTTON, self.StartButton) #wx.EVT_BUTTON(self, StartButtonID, self.OnGoClick) self.StartButton.SetBackgroundColour(wx.BLUE) self.StartButton.SetForegroundColour(wx.WHITE) self.StartButton.SetDefault() #StopButtonID = wx.NewId() self.StopButton = wx.Button(self, wx.NewId(), "Stop", wx.Point(260, 20)) eventManager.Register(self.OnStopClick, wx.EVT_BUTTON, self.StopButton ) #wx.EVT_BUTTON(self, StopButtonID, self.OnStopClick) #display1ID = wx.NewId() self.display1 = wx.SpinCtrl(self, -1, "", wx.DefaultPosition,wx.Size(250, -1), wx.SP_ARROW_KEYS, 0, 200, 100, "wx.SpinCtrl") self.display1.SetValue(100) #display2ID = wx.NewId() self.display2 = wx.SpinCtrl(self, -1, "", wx.DefaultPosition,wx.Size(250, -1), wx.SP_ARROW_KEYS, 0, 500, 100, "wx.SpinCtrl2") self.display2.SetValue(100) self.StopButton.SetBackgroundColour(wx.RED) self.StopButton.SetForegroundColour(wx.WHITE) self.main_sizer = wx.BoxSizer(wx.VERTICAL) #self.button_sizer = wx.BoxSizer(wx.HORIZONTAL) self.text_sizer = wx.BoxSizer(wx.HORIZONTAL) #self.button_sizer.Add(self.StartButton, 1, wx.EXPAND) #self.button_sizer.Add(self.StopButton, 1, wx.EXPAND) self.text_sizer.Add(self.display1, 1, wx.EXPAND) self.text_sizer.Add(self.display2, 1, wx.EXPAND) self.text_sizer.Add(self.StartButton, 1, wx.EXPAND) self.text_sizer.Add(self.StopButton, 1, wx.EXPAND) #self.main_sizer.Add(self.button_sizer, 1, wx.EXPAND) self.main_sizer.Add(self.text_sizer, 1, wx.EXPAND) self.main_sizer.Add(self.check_sizer, 1, wx.EXPAND) self.main_sizer.Add(self.glob_thing, 25, wx.EXPAND) self.all_sizer = wx.BoxSizer(wx.HORIZONTAL) self.all_sizer.Add(self.main_sizer, 25, wx.EXPAND) self.SetSizer(self.all_sizer) self.SetAutoLayout(1) self.SetupScrolling() # << class CameraFrame methods >> (2 of 12) def OnTimer(self, event): self.Imagethen = self.Imagenow img = self.cam.tostring() self.Imagenow = Image.fromstring('RGB',(160, 120),img) #self.Imagenow = self.Imagenow.transpose(Image.ROTATE_270) self.imagedifference = ImageChops.difference(self.Imagethen,self.Imagenow) #print self.Imagenow.mode, ' ', self.imagedifference.mode #enh = ImageEnhance.Sharpness(self.imagedifference) #img = enh.enhance(self.display1.GetValue()/100) #enh = ImageEnhance.Color(img) #img = enh.enhance(self.display2.GetValue()/100) #self.imagedifference = self.imagedifference.convert('L') if self.img_nowflag: self.glob_thing.set_image(self.Imagenow) elif self.img_thenflag: self.glob_thing.set_image(self.Imagethen) elif self.img_diffflag: self.glob_thing.set_image(self.imagedifference) stats = ImageStat.Stat(self.imagedifference) self.tstat = stats.extrema #num1 = int(stats.sum[0] / 10000) + int(stats.sum[1] / 10000) + int(stats.sum[2] / 10000) #print img.histogram() self.tlev = self.display2.GetValue() if stats.extrema[0][1] > self.tlev: if self.img_openwinflag: if self.img_thenflag: self.Onimg_thenChecked(None) elif self.img_diffflag: self.Onimg_diffChecked(None) else: self.Onimg_nowChecked(None) self.parent.SetSelection(2) if self.img_saveflag: self.Imagenow.save(self.savefilepath + str(int(time.time())) + str(self.quartercount) + '.jpg') #self.imagedifference.save('C:\\Python22\\tom\\imgtest\\diff\\dif' + str(int(time.time())) + str(self.quartercount) + '.jpg') #self.avarage = ((self.avarage + num1) / 2) + 1 self.quartercount = self.quartercount +1 if self.quartercount == 4: self.quartercount = 0 #num1 = int(stats.sum[0] / 10000) + int(stats.sum[1] / 10000) + int(stats.sum[2] / 10000) self.display1.SetValue(int(stats.extrema[0][1])) # << class CameraFrame methods >> (3 of 12) def OnCloseWindow(self, event): self.Destroy() # << class CameraFrame methods >> (4 of 12) def OnGoClick(self, event): self.maintimer.Start(25) # << class CameraFrame methods >> (5 of 12) def Ontext(self, event): self.savefilepath = event.GetString() # << class CameraFrame methods >> (6 of 12) def Onimg_openwinChecked(self, event): self.img_openwinflag = 1 # << class CameraFrame methods >> (7 of 12) def Onimg_thenChecked(self, event): if self.img_then.IsChecked(): self.img_thenflag = 1 self.img_nowflag = 0 self.img_diffflag = 0 #self.img_noneflag = 0 self.img_now.SetValue(0) self.img_diff.SetValue(0) self.img_none.SetValue(0) else: self.img_then.SetValue(1) self.img_thenflag = 1 self.img_nowflag = 0 self.img_diffflag = 0 #self.img_noneflag = 0 self.img_now.SetValue(0) self.img_diff.SetValue(0) self.img_none.SetValue(0) # << class CameraFrame methods >> (8 of 12) def Onimg_nowChecked(self, event): if self.img_now.IsChecked(): self.img_nowflag = 1 self.img_thenflag = 0 self.img_diffflag = 0 #self.img_noneflag = 0 self.img_then.SetValue(0) self.img_diff.SetValue(0) self.img_none.SetValue(0) else: self.img_now.SetValue(1) self.img_nowflag = 1 self.img_thenflag = 0 self.img_diffflag = 0 #self.img_noneflag = 0 self.img_then.SetValue(0) self.img_diff.SetValue(0) self.img_none.SetValue(0) # << class CameraFrame methods >> (9 of 12) def Onimg_diffChecked(self, event): if self.img_diff.IsChecked(): self.img_diffflag = 1 self.img_thenflag = 0 self.img_nowflag = 0 #self.img_noneflag = 0 self.img_now.SetValue(0) self.img_then.SetValue(0) self.img_none.SetValue(0) else: self.img_diff.SetValue(1) self.img_diffflag = 1 self.img_thenflag = 0 self.img_nowflag = 0 #self.img_noneflag = 0 self.img_now.SetValue(0) self.img_then.SetValue(0) self.img_none.SetValue(0) # << class CameraFrame methods >> (10 of 12) def Onimg_noneChecked(self, event): if self.img_none.IsChecked(): self.img_diffflag = 0 #self.img_noneflag = 1 self.img_thenflag = 0 self.img_nowflag = 0 self.img_now.SetValue(0) self.img_then.SetValue(0) self.img_diff.SetValue(0) else: self.img_none.SetValue(1) self.img_diffflag = 0 #self.img_noneflag = 1 self.img_thenflag = 0 self.img_nowflag = 0 self.img_now.SetValue(0) self.img_then.SetValue(0) self.img_diff.SetValue(0) # << class CameraFrame methods >> (11 of 12) def Onimg_saveChecked(self, event): self.img_saveflag = 1 # << class CameraFrame methods >> (12 of 12) def OnStopClick(self, event): self.maintimer.Stop() # -- end -- << class CameraFrame methods >> # -- end -- <> dictofpyro = rserve.connect(None) dictofpyro.log("connection from NewSpeach") #flnm.close() #outfle.close() app = MyApp(0) # Create an instance of the application class app.MainLoop() # Tell it to start processing events