Example #1
0
def CreateSettings(self):
    self = Gui(debug=False)
    self.resizable(width=False, height=False)
    self.maxsize(width=1024, height=768)
    self.maincol = self.col(weights=[0,0,1]) # Resizing of Windows
    MenuBar.Create(self)
    self.title('Doru\'s No Frills - Store Settings')
    StatusBar.Create(self)
    StoreSettings.Create(self)
    Modules.Check.openwindow = "Store Settings"
    self.mainloop()
Example #2
0
def CreateDebug(self):
    self = Gui(debug=False)
    self.resizable(width=False, height=False)
    self.maxsize(width=1024, height=768)
    self.maincol = self.col(weights=[0,0,1]) # Resizing of Windows
    MenuBar.Create(self)
    self.title('Doru\'s No Frills - Welcome')
    StatusBar.Create(self)
    WelcomeScreen.Create(self)
    Modules.Check.openwindow = "WelcomeScreen"
    self.mainloop()
Example #3
0
def ValidateLogin(self, Event=None):
    Accountlist = Account_Read()
    user = self.Login.userentry.get()
    passw = self.Login.passentry.get()
    result = Modules.ValidateLogic.Validate(user, passw, Accountlist)
    if result != False:
        self.endcol()  # Ends original GUI column
        self.Login.destroy()
        Modules.Check.userlevel = result[0]
        Modules.Check.loggeduser = user
        Modules.Check.hourlywage = result[1]
        MenuBar.Create(self)
        StatusBar.Create(self)
        WelcomeScreen.Create(self)
        self.title('Doru\'s No Frills - Welcome')
    else:
        tkMessageBox.showwarning(
            'Error', 'Username or password is incorrect, please retry')
Example #4
0
        Ignored unless useStateTags True at instantiation.
        """
        for state in (RO.Constants.sevWarning, RO.Constants.sevError):
            self.tag_configure(state,
                               color=self._sevPrefDict[state].getValue())


if __name__ == "__main__":
    from RO.Wdg.PythonTk import PythonTk
    import StatusBar
    root = PythonTk()

    text1 = Text(root, "text widget", height=5, width=20)
    text2 = Text(root,
                 readOnly=True,
                 helpText="read only text widget",
                 height=5,
                 width=20)
    statusBar = StatusBar.StatusBar(root)
    text1.grid(row=0, column=0, sticky="nsew")
    text2.grid(row=1, column=0, sticky="nsew")
    statusBar.grid(row=2, column=0, sticky="ew")
    root.grid_rowconfigure(0, weight=1)
    root.grid_rowconfigure(1, weight=1)
    root.grid_columnconfigure(0, weight=1)

    text1.insert("end", "this is an editable text widget\n")
    text2.insert("end", "this is a read-only text widget\n")

    root.mainloop()
                                else:
                                    print("=============================")
                                    print("[ ! ] Unrecognized Command.")
                                    print("=============================")
                                    print("\n")
                                    print("=============================")
                                    print("\n")
                                    continue
                            if file_name >= 'a':

                                print(
                                    "[ ! ] Enter a number or < x > to finish.")
                                continue
                            else:
                                _pk = pk.Pokemon()
                                sb.StatusBar()

                                if int(option) == 0:
                                    _pk.get_stats_hp()
                                elif int(option) == 1:
                                    _pk.get_stats_attack()
                                elif int(option) == 2:
                                    _pk.get_stats_defence()

                        else:

                            if os.stat(files[int(file_name)]).st_size != 0:

                                _wc = wc.WordsCounter(files[int(file_name)])
                                _wc.show_name()
Example #6
0
    def __init__(self, master, name, dispatcher=None, **kargs):
        Tkinter.Frame.__init__(self, master, **kargs)

        srArgs = self._getScriptFuncs(isFirst=True)
        helpURL = srArgs.pop("HelpURL", None)

        row = 0

        self.scriptFrame = Tkinter.Frame(self)
        self.scriptFrame.grid(row=row, column=0, sticky="news")
        self.scriptFrameRow = row
        self.rowconfigure(row, weight=1)
        self.columnconfigure(0, weight=1)
        row += 1

        scriptStatusBar = StatusBar.StatusBar(
            master=self,
            helpURL=helpURL,
            helpText="script status and messages",
        )
        scriptStatusBar.grid(row=row, column=0, sticky="ew")
        row += 1

        cmdStatusBar = StatusBar.StatusBar(
            master=self,
            dispatcher=dispatcher,
            summaryLen=30,
            playCmdSounds=False,
            helpURL=helpURL,
        )
        cmdStatusBar.grid(row=row, column=0, sticky="ew")
        row += 1

        buttonFrame = Tkinter.Frame(self)
        startButton = Button.Button(
            master=buttonFrame,
            text="Start",
            helpText="Start the script",
            helpURL=helpURL,
        )
        startButton.pack(side="left")
        pauseButton = Button.Button(
            master=buttonFrame,
            helpURL=helpURL,
        )
        pauseButton.pack(side="left")
        cancelButton = Button.Button(
            master=buttonFrame,
            text="Cancel",
            helpText="Halt the script",
            helpURL=helpURL,
        )
        cancelButton.pack(side="left")
        buttonFrame.grid(row=row, column=0, sticky="w")
        row += 1

        # set up contextual menu functions for all widgets
        # (except script frame, which is handled in reload)
        startButton.ctxSetConfigFunc(self._setCtxMenu)
        pauseButton.ctxSetConfigFunc(self._setCtxMenu)
        cancelButton.ctxSetConfigFunc(self._setCtxMenu)
        scriptStatusBar.ctxSetConfigFunc(self._setCtxMenu)
        cmdStatusBar.ctxSetConfigFunc(self._setCtxMenu)

        BasicScriptWdg.__init__(self,
                                master=self.scriptFrame,
                                name=name,
                                dispatcher=dispatcher,
                                statusBar=scriptStatusBar,
                                cmdStatusBar=cmdStatusBar,
                                startButton=startButton,
                                pauseButton=pauseButton,
                                cancelButton=cancelButton,
                                **srArgs)
Example #7
0
    def __init__(self):

        #Game states, tells the game what code to run depending on the current state
        self.__states = {const.GAME_STATE_MENU : self.stateMainMenu,
          const.GAME_STATE_RUNNING           : self.stateGameRunning,
          const.GAME_STATE_PLAYER_DEAD       : self.statePlayerDead,
          const.GAME_STATE_PLAYER_WINS       : self.statePlayerWins,
          const.GAME_STATE_QUITTING          : self.stateQuitting,
          const.GAME_STATE_HIGHSCORES        : self.stateHighScores}

        #Initialize pygame
        pygame.init()

        #Setup music and sound
        self.musicFile = str(Path.cwd() / "sounds" / "music1.mp3")
        pygame.mixer.pre_init(44100, -16, 2, 2048)
        pygame.mixer.init()
        pygame.mixer.music.load(self.musicFile)

        self.explodeSound = pygame.mixer.Sound(str(Path.cwd() / "sounds" / "bomb.wav"))
        self.deathSound = pygame.mixer.Sound(str(Path.cwd() / "sounds" / "yell.wav"))
        self.bossDieSound = pygame.mixer.Sound(str(Path.cwd() / "sounds" / "boss_no.wav"))

        #Setup misc pygame settings such as clock for timers and font for text
        self.__clock = pygame.time.Clock()
        self.start_ticks = 0.0
        self.font = pygame.font.Font(None, const.FONT_SIZE)

        #Setup game progression booleans
        self.gameRunning = True
        self.gameOver = False
        self.playerWins = False
        self.exitingToMenu = False
        self.musicOn = True
        self.soundOn = True

        #Makes game start in main menu
        self.gameState = const.GAME_STATE_MENU

        #Setup screen parameters and the pygame window
        self.__screenWidth = const.MAP_WIDTH * const.TILE_SIZE + const.SCREEN_OFFSET_X_LEFT + const.SCREEN_OFFSET_X_RIGHT
        self.__screenHeight = const.MAP_HEIGHT * const.TILE_SIZE + const.SCREEN_OFFSET_Y_TOP + const.SCREEN_OFFSET_Y_BOTTOM
        self.__screenSize = self.__screenWidth, self.__screenHeight
        self.__screen = pygame.display.set_mode(self.screenSize)
        pygame.display.set_caption("BomberDude")
        self.screenImage = pygame.Surface(self.screenSize)    #used to store the screen to an image, useful for semi-transparent screens 

        #Setup the MainMenu and High scores Screen
        self.theMainMenu = MainMenu.MainMenu(self.screen, self.__screenWidth, self.__screenHeight)
        self.highScores = HighScore.HighScore(self.screen, self.__screenWidth, self.__screenHeight)

        #Load starting level
        self.levelNum = 1
        self.level, self.player, self.enemies, self.boss = Level.startNewLevel(self.levelNum)

        #Retreive total number of levels stored in data directory, requires levels to be numbered sequentially
        self.numLevels = 0
        dataDir = Path.cwd() / "data"
        for f in dataDir.glob("level*.csv"):
            self.numLevels += 1

        #Create sprite groups for all game sprite objects
        self.spritePlayer = pygame.sprite.Group()
        self.spritePlayer.add(self.player)
        self.spriteEnemies = pygame.sprite.Group()
        self.spriteEnemies.add(self.enemies)
        self.spriteBombs = pygame.sprite.Group()
        self.spriteBombBlasts = pygame.sprite.Group()
        self.spriteBossBombBlasts = pygame.sprite.Group()
        self.spritePowerups = pygame.sprite.Group()

        #Create status bar for displaying player information at top of screen
        self.statusBar = StatusBar.StatusBar(0, 0)
        self.statusBar.addIcon("Down.png", 0, True)
        self.statusBar.addIcon("powerup_boot.png", 2, False, const.ICON_SCALE + 5)  #This is offset because the graphic is a little smaller than the icons
        self.statusBar.addIcon("powerup_range.png", 3, False)
        self.statusBar.addIcon("powerup_count.png", 4, False)

        #Player death screen
        imageFile = str(Path.cwd() / "graphics" / "death_screen.png")
        self.deathScreen = pygame.image.load(imageFile).convert_alpha()
        self.smallScreenRect = self.deathScreen.get_rect()
        self.smallScreenRect.x = int(self.__screenWidth / 2 - self.smallScreenRect.width / 2)
        self.smallScreenRect.y = int(self.__screenHeight / 2 - self.smallScreenRect.height / 2)

        #Game over screen image
        imageFile = str(Path.cwd() / "graphics" / "game_over_screen.png")    
        self.gameOverImage = pygame.image.load(imageFile).convert_alpha()

        #Player win screen image
        imageFile = str(Path.cwd() / "graphics" / "you_win_screen.png")
        self.playerWinsImage = pygame.image.load(imageFile).convert_alpha()

        #Screen border image
        imageFile = str(Path.cwd() / "graphics" / "border.png")
        self.borderImage = pygame.image.load(imageFile).convert()

        #Debug mode allows cheats, only for developer use
        self.__debugMode = True
Example #8
0
        return self._projectView().JB

    def FV(self):
        return self._projectView().FV


if __name__ == '__main__':
    root = tk.Tk()

    root.grid_propagate(0)
    root.rowconfigure(0, weight=1)
    root.columnconfigure(0, weight=1)
    root.configure(width=800, height=600)

    pv = ProjectViewer(root)
    sb = StatusBar(root)
    pv.grid(sticky=tkSticky.fill)
    sb.grid(sticky=tkSticky.horizontal + tkSticky.bottom)
    '''
	Add an app icon
	Taken from:
	http://stackoverflow.com/questions/16081201/setting-application-icon-in-my-python-tk-base-application-on-ubuntu

	This works on Windows and Ubuntu only
	'''
    # img = tk.Image("photo", file="icon_appicon.gif")
    img = Icon.appIcon()
    root.tk.call('wm', 'iconphoto', root._w, img)

    root.iconify()
    root.update()
Example #9
0
 def createStatusBar(self):
     self.sb = StatusBar.My_CustomStatusBar(self)
     self.SetStatusBar(self.sb)
     self.SetStatusText(u"Welcome to PyLookInside !", 0)
Example #10
0
    def initUI(self):

            # MESSAGGI STATUSBAR
            self.messages = {
                'nofoto'        : 'Non e\' presente alcuna foto!',
                'photo'         : 'Foto scattata!',
                'saved'         : 'Immagine salvata!',
                'shooting'      : 'Sto scattando foto...',
                'rifle_done'    : 'Raffica conclusa!',
                'start'         : 'Registrazione Iniziata',
                'not-active'    :  'ERRORE! Il sensore non e\' alimentato!',
                'stop'          : 'Registrazione Stoppata'
            }

            # MAIN WIDGET
            self.move(10, 300)
            self.setFixedSize(670, 630)
            self.setWindowTitle("SerialSensDecoder")

            # MAIN LAYOUT
            mainLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.TopToBottom, self)

            # OTHERS LAYOUT

            ctrlLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            statsLayout = QtGui.QGridLayout(self)
            settingsLayout = QtGui.QGridLayout(self)
            buttonsLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            bottomLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            saveLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)


            # WIDGETS
            self.imgViewer = ImgRect(self, 12, 6)
            self.histogram = QHistogram(self, 128)
            self.statusBar = StatusBar(self.messages['nofoto'])

            self.scattaButton = QtGui.QPushButton('Scatta', self)
            self.rtButton = QtGui.QPushButton('Real Time', self)
            self.saveImgButton = QtGui.QPushButton('Salva', self)

            buttonsLayout.addWidget(self.scattaButton)
            buttonsLayout.addWidget(self.rtButton)

            if (self.isSensorReady):
                self.deviceStatus = QtGui.QLabel('Device ready')
                self.deviceStatus.setStyleSheet('color: green; text-align: right')
            else:
                self.deviceStatus = QtGui.QLabel('Device NOT ready')
                self.deviceStatus.setStyleSheet('color: red; text-align: right')
                
            self.progressLabel = QtGui.QLabel('Saved Frames 0/0')
            self.savedImageAvg = QtGui.QLabel('Avg: 0')
            

            # STATS LABELS

            statsNames = ['_Stats_Image_Raw Image', 'Max', 'Min', 'Average']
            self.statsLabel = {}

            for index, name in enumerate(statsNames):

                # Add the info label

                if name.startswith('_'):
                    # Heading
                    for headIndex, heading in enumerate(name[1:].split('_')):    
                        statsLayout.addWidget(QtGui.QLabel(str(heading)), *[index, headIndex])
                else:

                    # Row name
                    statsLayout.addWidget(QtGui.QLabel(name))
                    
                    self.statsLabel[name] = QtGui.QLabel('0')
                    self.statsLabel['raw' + name] = QtGui.QLabel('0')
                    statsLayout.addWidget(self.statsLabel[name], *[index, 1])
                    statsLayout.addWidget(self.statsLabel['raw' + name], *[index, 2])

            
            self.statsLabel['time'] = QtGui.QLabel('0')
            self.statsLabel['perc'] = QtGui.QLabel('0')
            
            statsLayout.addWidget(QtGui.QLabel('Time'), *[len(statsNames),0])
            statsLayout.addWidget(self.statsLabel['time'], *[len(statsNames),1])
            statsLayout.addWidget(self.statsLabel['perc'], *[len(statsNames),2])
                    
            # SETTINGS LABELS
            self.minRange = (QtGui.QSpinBox(),[1,1]) 
            self.maxRange = (QtGui.QSpinBox(), [2,1])
            self.periodValue = (QtGui.QSpinBox(), [3,1])

            settingTitleLabel = (QtGui.QLabel('SETTINGS'),[0,0])
            minRangeLabel = (QtGui.QLabel('Black'), [1,0])
            maxRangeLabel = (QtGui.QLabel('White'), [2,0])
            periodLabel = (QtGui.QLabel('Period'), [3,0])
            self.minRange[0].setMaximum(1000000)
            self.maxRange[0].setMaximum(1000)
            self.periodValue[0].setMaximum(1200)
            self.periodValue[0].setMinimum(1)

            settingsLayout.addWidget(settingTitleLabel[0], *settingTitleLabel[1])
            settingsLayout.addWidget(minRangeLabel[0], *minRangeLabel[1])
            settingsLayout.addWidget(maxRangeLabel[0], *maxRangeLabel[1])
            settingsLayout.addWidget(periodLabel[0], *periodLabel[1])
            settingsLayout.addWidget(self.minRange[0], *self.minRange[1])
            settingsLayout.addWidget(self.maxRange[0], *self.maxRange[1])
            settingsLayout.addWidget(self.periodValue[0], *self.periodValue[1])

            # SAVE CTRL

            self.imageNumber = QtGui.QSpinBox()
            self.filename = QtGui.QLineEdit()

            self.filename.setMaximumWidth(200)
            self.imageNumber.setMaximum(2000)
            self.imageNumber.setMinimum(1)
            
            saveLayout.addWidget(QtGui.QLabel('FileName'))
            saveLayout.addWidget(self.filename)
            saveLayout.addWidget(QtGui.QLabel('Frames'))
            saveLayout.addWidget(self.imageNumber)
            saveLayout.addWidget(self.saveImgButton)

            ctrlLayout.addLayout(statsLayout)
            ctrlLayout.addLayout(settingsLayout)

            bottomLayout.addWidget(self.statusBar)
            bottomLayout.addWidget(self.deviceStatus)
            bottomLayout.addWidget(self.progressLabel)
            bottomLayout.addWidget(self.savedImageAvg)
            

            mainLayout.addWidget(self.imgViewer)
            mainLayout.addWidget(self.histogram)
            mainLayout.addLayout(ctrlLayout)
            mainLayout.addLayout(buttonsLayout)
            mainLayout.addLayout(saveLayout)
            mainLayout.addLayout(bottomLayout)

            self.setLayout(mainLayout)

            # Timer per il RT delle foto
            self.timerRt = QTimer()
            # Timer per il save
            self.timerSave = QTimer()

            self.minRange[0].setValue(5000)
            self.maxRange[0].setValue(400)
            self.periodValue[0].setValue(400)
            self.rangeChanged()
            self.show()

            # EVENTS

            self.scattaButton.clicked.connect(self.shootImage)
            #saveImgBtn.clicked.connect(self.saveImage)
            self.rtButton.clicked.connect(self.realTime)
            self.saveImgButton.clicked.connect(self.saveImage)

            # LIGHT RANGE CHANGES
            self.minRange[0].valueChanged.connect(self.rangeChanged)
            self.maxRange[0].valueChanged.connect(self.rangeChanged)

            # Agganciamo l'evento timeout()
            # all'evento scatta foto
            self.timerRt.timeout.connect(self.shootImage)
            self.timerSave.timeout.connect(self.handleSaveImage)
Example #11
0
class MainUI(QtGui.QWidget):

    def __init__(self):

            super(MainUI, self).__init__()

            # Variabile che abilita il testing  anche da riga di comando
            if ('-d' in sys.argv or '--debug' in sys.argv):
                self.debug = True
            else:
                self.debug = False

            # Crea istanza del generatore di immagini
            self.imgGenerator = ImgGenerator(72, self.debug)

            # Indice per tener traccia delle modifiche al comboBox
            self.index = 0
            # Variabile per il loop del realtime
            self.start = False
            self.saveStart = False

            # Container for saved images' average
            self.avgSaved = []

            # Variabile per init del sensore
            self.isSensorReady = self.imgGenerator.isReady()

            # Inizializza e collega i vari elementi della UI
            self.initUI()

    def initUI(self):

            # MESSAGGI STATUSBAR
            self.messages = {
                'nofoto'        : 'Non e\' presente alcuna foto!',
                'photo'         : 'Foto scattata!',
                'saved'         : 'Immagine salvata!',
                'shooting'      : 'Sto scattando foto...',
                'rifle_done'    : 'Raffica conclusa!',
                'start'         : 'Registrazione Iniziata',
                'not-active'    :  'ERRORE! Il sensore non e\' alimentato!',
                'stop'          : 'Registrazione Stoppata'
            }

            # MAIN WIDGET
            self.move(10, 300)
            self.setFixedSize(670, 630)
            self.setWindowTitle("SerialSensDecoder")

            # MAIN LAYOUT
            mainLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.TopToBottom, self)

            # OTHERS LAYOUT

            ctrlLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            statsLayout = QtGui.QGridLayout(self)
            settingsLayout = QtGui.QGridLayout(self)
            buttonsLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            bottomLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)
            saveLayout = QtGui.QBoxLayout(QtGui.QBoxLayout.LeftToRight, self)


            # WIDGETS
            self.imgViewer = ImgRect(self, 12, 6)
            self.histogram = QHistogram(self, 128)
            self.statusBar = StatusBar(self.messages['nofoto'])

            self.scattaButton = QtGui.QPushButton('Scatta', self)
            self.rtButton = QtGui.QPushButton('Real Time', self)
            self.saveImgButton = QtGui.QPushButton('Salva', self)

            buttonsLayout.addWidget(self.scattaButton)
            buttonsLayout.addWidget(self.rtButton)

            if (self.isSensorReady):
                self.deviceStatus = QtGui.QLabel('Device ready')
                self.deviceStatus.setStyleSheet('color: green; text-align: right')
            else:
                self.deviceStatus = QtGui.QLabel('Device NOT ready')
                self.deviceStatus.setStyleSheet('color: red; text-align: right')
                
            self.progressLabel = QtGui.QLabel('Saved Frames 0/0')
            self.savedImageAvg = QtGui.QLabel('Avg: 0')
            

            # STATS LABELS

            statsNames = ['_Stats_Image_Raw Image', 'Max', 'Min', 'Average']
            self.statsLabel = {}

            for index, name in enumerate(statsNames):

                # Add the info label

                if name.startswith('_'):
                    # Heading
                    for headIndex, heading in enumerate(name[1:].split('_')):    
                        statsLayout.addWidget(QtGui.QLabel(str(heading)), *[index, headIndex])
                else:

                    # Row name
                    statsLayout.addWidget(QtGui.QLabel(name))
                    
                    self.statsLabel[name] = QtGui.QLabel('0')
                    self.statsLabel['raw' + name] = QtGui.QLabel('0')
                    statsLayout.addWidget(self.statsLabel[name], *[index, 1])
                    statsLayout.addWidget(self.statsLabel['raw' + name], *[index, 2])

            
            self.statsLabel['time'] = QtGui.QLabel('0')
            self.statsLabel['perc'] = QtGui.QLabel('0')
            
            statsLayout.addWidget(QtGui.QLabel('Time'), *[len(statsNames),0])
            statsLayout.addWidget(self.statsLabel['time'], *[len(statsNames),1])
            statsLayout.addWidget(self.statsLabel['perc'], *[len(statsNames),2])
                    
            # SETTINGS LABELS
            self.minRange = (QtGui.QSpinBox(),[1,1]) 
            self.maxRange = (QtGui.QSpinBox(), [2,1])
            self.periodValue = (QtGui.QSpinBox(), [3,1])

            settingTitleLabel = (QtGui.QLabel('SETTINGS'),[0,0])
            minRangeLabel = (QtGui.QLabel('Black'), [1,0])
            maxRangeLabel = (QtGui.QLabel('White'), [2,0])
            periodLabel = (QtGui.QLabel('Period'), [3,0])
            self.minRange[0].setMaximum(1000000)
            self.maxRange[0].setMaximum(1000)
            self.periodValue[0].setMaximum(1200)
            self.periodValue[0].setMinimum(1)

            settingsLayout.addWidget(settingTitleLabel[0], *settingTitleLabel[1])
            settingsLayout.addWidget(minRangeLabel[0], *minRangeLabel[1])
            settingsLayout.addWidget(maxRangeLabel[0], *maxRangeLabel[1])
            settingsLayout.addWidget(periodLabel[0], *periodLabel[1])
            settingsLayout.addWidget(self.minRange[0], *self.minRange[1])
            settingsLayout.addWidget(self.maxRange[0], *self.maxRange[1])
            settingsLayout.addWidget(self.periodValue[0], *self.periodValue[1])

            # SAVE CTRL

            self.imageNumber = QtGui.QSpinBox()
            self.filename = QtGui.QLineEdit()

            self.filename.setMaximumWidth(200)
            self.imageNumber.setMaximum(2000)
            self.imageNumber.setMinimum(1)
            
            saveLayout.addWidget(QtGui.QLabel('FileName'))
            saveLayout.addWidget(self.filename)
            saveLayout.addWidget(QtGui.QLabel('Frames'))
            saveLayout.addWidget(self.imageNumber)
            saveLayout.addWidget(self.saveImgButton)

            ctrlLayout.addLayout(statsLayout)
            ctrlLayout.addLayout(settingsLayout)

            bottomLayout.addWidget(self.statusBar)
            bottomLayout.addWidget(self.deviceStatus)
            bottomLayout.addWidget(self.progressLabel)
            bottomLayout.addWidget(self.savedImageAvg)
            

            mainLayout.addWidget(self.imgViewer)
            mainLayout.addWidget(self.histogram)
            mainLayout.addLayout(ctrlLayout)
            mainLayout.addLayout(buttonsLayout)
            mainLayout.addLayout(saveLayout)
            mainLayout.addLayout(bottomLayout)

            self.setLayout(mainLayout)

            # Timer per il RT delle foto
            self.timerRt = QTimer()
            # Timer per il save
            self.timerSave = QTimer()

            self.minRange[0].setValue(5000)
            self.maxRange[0].setValue(400)
            self.periodValue[0].setValue(400)
            self.rangeChanged()
            self.show()

            # EVENTS

            self.scattaButton.clicked.connect(self.shootImage)
            #saveImgBtn.clicked.connect(self.saveImage)
            self.rtButton.clicked.connect(self.realTime)
            self.saveImgButton.clicked.connect(self.saveImage)

            # LIGHT RANGE CHANGES
            self.minRange[0].valueChanged.connect(self.rangeChanged)
            self.maxRange[0].valueChanged.connect(self.rangeChanged)

            # Agganciamo l'evento timeout()
            # all'evento scatta foto
            self.timerRt.timeout.connect(self.shootImage)
            self.timerSave.timeout.connect(self.handleSaveImage)

    def shootImage(self):

        if (self.isSensorReady):

            self.paintImage(self.imgGenerator.takeImage(self.periodValue[0].value()))
            
            
    def rangeChanged(self, val=0):

        """
        Cambiamo i valori di max e min
        e quindi facciamo il refresh della compressione
        """

        self.imgGenerator.setLightRange([self.maxRange[0].value(),
                                         self.minRange[0].value()])
        self.paintImage(self.imgGenerator.updateImage())

    def realTime(self):

        if self.start == True:
            # Stoppiamo il realtime sull'ultima foto
            # e rimettiamo il label corretto
            self.timerRt.stop()
            self.start = False
            self.rtButton.setText('Start')
            self.statusBar.changeMessage(self.messages['stop'])
        else:
            self.timerRt.start((self.periodValue[0].value() + 10) / 1000.0)
            self.start = True
            # Cambianmo la label dello scattaButton
            self.rtButton.setText('Stop')
            self.statusBar.changeMessage(self.messages['start'])
        

    def paintImage(self, imageInfo):

        if imageInfo is not None:
            self.imgViewer.showImage(imageInfo['image'])
            self.histogram.showImage(imageInfo['image'])

            perc = imageInfo['time'] / float(self.periodValue[0].value()*1000)

            # Update Image Stats
            for field in ['Max', 'Min', 'Average']:
                self.statsLabel[field].setText("%d" % (imageInfo[field]))
                self.statsLabel['raw' + field].setText("%d" % (imageInfo['raw' + field]))
                
            self.statsLabel['time'].setText("{0:d} us".format(imageInfo['time']))
            self.statsLabel['perc'].setText("{0:.2%}".format(perc))

            self.statusBar.changeMessage(self.messages['photo'])
            
        else:

            # The FPGA is online but the sensor is not active
            self.statusBar.changeMessage(self.messages['not-active'])

        
    def saveImage(self):

            self.text = self.filename.text()
            self.frames = self.imageNumber.value()

            self.saveMode = True
            
            if (self.text):
                self.saveMode = False

            if (self.frames and not self.saveStart):
                
                self.count = 0
                self.savedImageAvg.setText('Avg: 0')
                self.saveStart = True
                self.timerSave.start((self.periodValue[0].value() + 10) / 1000.0)

    def handleSaveImage(self):

        if self.count == self.frames:
            self.timerSave.stop()
            self.saveStart = False

            if self.saveMode:
                self.savedImageAvg.setText('Avg: %d' % (sum(self.avgSaved) / len(self.avgSaved),))
            self.avgSaved = []
            self.progressLabel.setText('Saved Frames 0/0')
            self.filename.clear()
        else:
            self.count += 1

            # Save Avg mode
            if self.saveMode:
                self.avgSaved.append(self.imgGenerator.takeImage(self.periodValue[0].value())['rawAverage'])
            else:
                self.writeToFile(self.imgGenerator.takeImage(self.periodValue[0].value())['rawImage'])
            self.progressLabel.setText('Saved Frames %d/%d' % (self.count, self.frames))

    def writeToFile(self, image):

            outFile = open('logs/' + self.text +'.dat', 'a')

            imgLength = len(image)

            for index, pix in enumerate(image):

                ending = ','
                
                if index == (imgLength-1):
                    ending = '\n'
                    
                outFile.write(str(pix) + ending)
                
            self.progressLabel.setText('Written Frames %d/%d' % (self.count, self.frames))
            
    def changeStatusBar(self):

            self.statusBar.changeMessage(self.messages['saved'])
Example #12
0
def beforeTriggerExec():
    # (Line 77) sca.Exec();
    EUDTraceLog(77)
    sca.Exec()
    # (Line 80) sys.AllyCheck();
    EUDTraceLog(80)
    sys.AllyCheck()
    # (Line 81) foreach (cp : EUDLoopPlayer()) {
    for cp in EUDLoopPlayer():
        # (Line 82) setcurpl(cp);
        EUDTraceLog(82)
        f_setcurpl(cp)
        # (Line 83) bgm.Play();
        EUDTraceLog(83)
        bgm.Play()
        # (Line 84) sys.GetDeath();
        EUDTraceLog(84)
        sys.GetDeath()
        # (Line 85) sys.GetMousePos();
        EUDTraceLog(85)
        sys.GetMousePos()
        # (Line 86) cheat.Cheat();
        EUDTraceLog(86)
        cheat.Cheat()
        # (Line 88) if(user.isAlive[cp] == 1) {
        _t1 = EUDIf()
        EUDTraceLog(88)
        if _t1(user.isAlive[cp] == 1):
            # (Line 89) user.posX[cp], user.posY[cp] = dwbreak(dwread_epd(user.character[cp] + 0x28 / 4))[[0,1]];
            EUDTraceLog(89)
            _SV([_ARRW(user.posX, cp), _ARRW(user.posY, cp)], [_SRET(f_dwbreak(f_dwread_epd(user.character[cp] + 0x28 // 4)), [0, 1])])
            # (Line 90) }
            # (Line 97) if(user.isAlive[cp] == 1) {
        EUDEndIf()
        _t2 = EUDIf()
        EUDTraceLog(97)
        if _t2(user.isAlive[cp] == 1):
            # (Line 98) if(MemoryXEPD(user.character[cp] + 0x4D / 4, Exactly, 3 << 8, 0xFF00)) {
            _t3 = EUDIf()
            EUDTraceLog(98)
            if _t3(MemoryXEPD(user.character[cp] + 0x4D // 4, Exactly, _LSH(3,8), 0xFF00)):
                # (Line 99) SetMemoryXEPD(user.character[cp] + 0x4D / 4, SetTo, 107 << 8 , 0xFF00);
                # (Line 100) }
                EUDTraceLog(99)
                DoActions(SetMemoryXEPD(user.character[cp] + 0x4D // 4, SetTo, _LSH(107,8), 0xFF00))
                # (Line 101) }
            EUDEndIf()
            # (Line 103) guard.Guard();
        EUDEndIf()
        EUDTraceLog(103)
        guard.Guard()
        # (Line 105) status.StatusBar(); // 상태바
        EUDTraceLog(105)
        status.StatusBar()
        # (Line 106) screen.LightCheck(); // 밝기 조절
        EUDTraceLog(106)
        screen.LightCheck()
        # (Line 107) potal.PotalCheck(); // 포탈 이동
        EUDTraceLog(107)
        potal.PotalCheck()
        # (Line 108) sys.PlayerLoc(); // 플레이어 로케이션
        EUDTraceLog(108)
        sys.PlayerLoc()
        # (Line 109) sys.ExpCheck(); // 경험치 변동 체크
        EUDTraceLog(109)
        sys.ExpCheck()
        # (Line 110) kill.KillCheck(); // 플레이어 킬 체크
        EUDTraceLog(110)
        kill.KillCheck()
        # (Line 112) inven.Inventory(); // 인벤토리
        EUDTraceLog(112)
        inven.Inventory()
        # (Line 113) equip.Equip(); // 장비
        EUDTraceLog(113)
        equip.Equip()
        # (Line 116) memory.MemoryCrystal(); // 저장 크리스탈
        EUDTraceLog(116)
        memory.MemoryCrystal()
        # (Line 117) save.SaveCheck(); // 저장
        EUDTraceLog(117)
        save.SaveCheck()
        # (Line 119) key.KeyDetect(cp);
        EUDTraceLog(119)
        key.KeyDetect(cp)
        # (Line 120) chat.ChatDetect(cp);
        EUDTraceLog(120)
        chat.ChatDetect(cp)
        # (Line 121) screen.WideCheckExec();
        EUDTraceLog(121)
        screen.WideCheckExec()
        # (Line 124) }
        # (Line 125) unit.clickedUnit();

    EUDTraceLog(125)
    unit.f_clickedUnit()
    # (Line 136) SetMemory(0x5124F0, SetTo, 28);
    # (Line 137) }
    EUDTraceLog(136)
    DoActions(SetMemory(0x5124F0, SetTo, 28))
Example #13
0
    menu3.grid(row=1, column=1, sticky="w")

    menu4 = OptionMenu(root,
        items = items,
        defValue = "MmmmmNnnnn A",
        callFunc = callFunc,
        defMenu = "Default",
        indicatoron = False,
        helpText = "indicatoron=False",
    )
    menu4.grid(row=0, column=2, sticky="w")

    menu5 = OptionMenu(root,
        items = items,
        defValue = "MmmmmNnnnn A",
        callFunc = callFunc,
        defMenu = "Default",
        indicatoron = False,
        helpText = "width=12 via ['width'], indicatoron=False",
    )
    menu5["width"] = 12
    menu5.grid(row=1, column=2, sticky="w")

    label = Label.Label(root, width=20, anchor="w", helpText="most recently selected value")
    label.grid(row=2, column=0, columnspan=4, sticky="w")
    
    statusBar = StatusBar.StatusBar(root, width=20)
    statusBar.grid(row=3, column=0, columnspan=4, sticky="ew")

    root.mainloop()