Example #1
0
def obterImagemMonitoramento(evento, janela):
    """
    Envia uma mensagem ao servidor para obter uma imagem do monitoramento.
    """
    cliente = Cliente()

    # Verifica se o servidor esta ligado.
    if cliente.conectaServidor():
        cliente.enviarMensagem(settings.IMAGEM)
        endereco = '../imagens/temp2.jpg'
        arquivo = open(endereco, 'wb')
        while True:
            dados = cliente.receberMensagem(512)
            if not dados:
                break
            arquivo.write(dados)
        cliente.fecharConexao()
        arquivo.close()
        janela.webCam.set_from_file(endereco)
        janela.botaoSalvarImagem.set_sensitive(True)
        janela.botaoLimparImagem.set_sensitive(True)
    else:
        cliente.fecharConexao()
        dialogoErro(
            janela, 'Erro ao Estabelecer Conexao.',
            'Nao Foi Possivel Modificar o Estado do Monitoramento.\t\t\nO Servidor Esta Desligado.'
        )
Example #2
0
def obterImagemMonitoramento(evento, janela):
    """
    Envia uma mensagem ao servidor para obter uma imagem do monitoramento.
    """
    cliente = Cliente()

    # Verifica se o servidor esta ligado.
    if cliente.conectaServidor():
        cliente.enviarMensagem(settings.IMAGEM)
        if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:

            endereco = '../imagens/temp2.jpg'
            arquivo = open(endereco, 'wb')
            while True:
                dados = cliente.receberMensagem(512)
                if not dados:
                    break
                arquivo.write(dados)
            cliente.fecharConexao()
            arquivo.close()
            janela.webCam.set_from_file(endereco)
            janela.botaoSalvarImagem.set_sensitive(True)
            janela.botaoLimparImagem.set_sensitive(True)
    else:
        cliente.fecharConexao()
        dialogoErro(janela, 'Erro ao Estabelecer Conexao.', 'Nao Foi Possivel Modificar o Estado do Monitoramento.\t\t\nO Servidor Esta Desligado.')
Example #3
0
    def __init__(self):
        from handler import limparImagemMonitoramento, statusMonitoramento, obterImagemMonitoramento, salvarImagemMonitoramento
        super(JanelaCliente, self).__init__()

        # Criando os elementos.
        self.layout = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0)
        self.painelCentro = Gtk.Box(orientation=Gtk.Orientation.VERTICAL, spacing=0)
        self.webCam = Gtk.Image()
        self.webCam.set_from_file('../imagens/default.jpg')

        self.set_icon_from_file("../imagens/logo2.png")

        self.status_bar = Gtk.Statusbar()
        self.context_id = self.status_bar.get_context_id('status')

        self.toolbar = CustomToolbar()
        self.toolbar.set_hexpand(True)

        self.botaoIniciar = Gtk.ToolButton(stock_id=Gtk.STOCK_MEDIA_PLAY)
        self.botaoObterImagem = Gtk.ToolButton(stock_id=Gtk.STOCK_GO_DOWN)
        self.botaoSalvarImagem = Gtk.ToolButton(stock_id=Gtk.STOCK_SAVE)
        self.botaoLimparImagem = Gtk.ToolButton(stock_id=Gtk.STOCK_CLEAR)
        self.botaoSair = Gtk.ToolButton(stock_id=Gtk.STOCK_QUIT)

        # Modificando as configuracoes dos elementos.
        self.botaoIniciar.set_label('Iniciar  ')
        self.botaoObterImagem.set_label('Imagem Atual')
        self.botaoSalvarImagem.set_label('Salvar Imagem')
        self.botaoLimparImagem.set_label('Limpar Tela')

        self.botaoIniciar.set_is_important(True)
        self.botaoObterImagem.set_is_important(True)
        self.botaoSalvarImagem.set_is_important(True)
        self.botaoLimparImagem.set_is_important(True)
        self.botaoSair.set_is_important(True)

        self.botaoSalvarImagem.set_sensitive(False)
        self.botaoLimparImagem.set_sensitive(False)

        # Adicionando os elementos.
        self.toolbar.insert(self.botaoIniciar, 0)
        self.toolbar.insert(self.botaoObterImagem, 1)
        self.toolbar.insert(self.botaoSalvarImagem, 2)
        self.toolbar.insert(self.botaoLimparImagem, 3)
        self.toolbar.insert(Gtk.SeparatorToolItem(), 4)
        self.toolbar.insert(self.botaoSair, 5)

        self.painelCentro.pack_start(self.webCam, False, False, 0)

        self.layout.pack_start(self.toolbar, False, False, 0)
        self.layout.pack_start(self.painelCentro, False, False, 0)
        self.layout.pack_end(self.status_bar, False, True, 0)

        self.add(self.layout)

        # Adicionando os eventos.
        self.botaoIniciar.connect('clicked', statusMonitoramento, self)
        self.botaoObterImagem.connect('clicked', obterImagemMonitoramento, self)
        self.botaoSalvarImagem.connect('clicked', salvarImagemMonitoramento, self)
        self.botaoLimparImagem.connect('clicked', limparImagemMonitoramento, self)
        self.botaoSair.connect('clicked', Gtk.main_quit)

        # Configurando a janela.
        self.connect('delete_event', Gtk.main_quit)
        self.set_size_request(640, 540)
        self.set_resizable(False)
        self.set_position(Gtk.WindowPosition.CENTER)
        self.set_title('SEMON - Sensor de Monitoramento de Salas de Servidores')
        self.show_all()

        cliente = Cliente()
        if cliente.conectaServidor():
            cliente.enviarMensagem(settings.STATUS)

            # Obtem o estado do monitoramento.
            if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:
                resposta = cliente.receberMensagem(settings.TAM_MSN)
                self.botaoObterImagem.set_sensitive(True)
                if resposta == settings.EXECUTANDO:
                    self.status_bar.push(self.context_id, ' Monitoramento Iniciado')
                    self.botaoIniciar.set_stock_id(Gtk.STOCK_MEDIA_PAUSE)
                    self.botaoIniciar.set_label('Pausar')
                elif resposta == settings.PAUSADO:
                    self.status_bar.push(self.context_id, ' Monitoramento Pausado')
        else:
            self.botaoObterImagem.set_sensitive(False)
            self.status_bar.push(self.context_id, ' Monitoramento Desligado')
Example #4
0
def statusMonitoramento(evento, janela):
    """
    Modifica o estado do monitoramento do servidor.
    """
    cliente = Cliente()
    if cliente.conectaServidor():

        # Obtem o estado do monitoramento.
        cliente.enviarMensagem(settings.STATUS)
        resposta = cliente.receberMensagem(settings.TAM_MSN)

        # Verifica se o estado do monitoramento e de pausado.
        if resposta == settings.PAUSADO:
            cliente.conectaServidor()
            cliente.enviarMensagem(settings.INICIAR)
            janela.status_bar.push(janela.context_id,
                                   ' Monitoramento Iniciado')
            cliente.fecharConexao()
            janela.botaoIniciar.set_stock_id(Gtk.STOCK_MEDIA_PAUSE)
            janela.botaoIniciar.set_label('Pausar')

        # Verifica se o estado do monitoramento e de executando.
        elif resposta == settings.EXECUTANDO:
            cliente.conectaServidor()
            cliente.enviarMensagem(settings.PAUSAR)
            janela.status_bar.push(janela.context_id, ' Monitoramento Pausado')
            cliente.fecharConexao()
            janela.botaoIniciar.set_stock_id(Gtk.STOCK_MEDIA_PLAY)
            janela.botaoIniciar.set_label('Iniciar  ')
    else:
        cliente.fecharConexao()
        dialogoErro(
            janela, 'Erro ao Estabelecer Conexao.',
            'Nao Foi Possivel Modificar o Estado do Monitoramento.\t\t\nO Servidor Esta Desligado.'
        )
Example #5
0
def logarMonitoramento(evento, janela):
    """
    Envia uma mensagem ao servidor para logar no monitoramento.
    """
    cliente = Cliente()

    # Verifica se o servidor esta ligado.
    if cliente.conectaServidor():
        cliente.enviarMensagem(settings.LOGAR)
        email = janela.entryEmail.get_text()
        senha = janela.entrySenha.get_text()

        if len(email) < 10 or len(senha) < 5:
            dialogoErro(
                janela, 'Erro ao Realizar o Login.',
                'Nao Foi Possivel Realizar o Login. Email e/ou senha incorretos.\t'
            )
        else:
            login = '******'.format(email, senha)
            cliente.enviarMensagem(login)
            if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:
                janela.destroy()
                JanelaCliente()
            else:
                dialogoErro(
                    janela, 'Erro ao Realizar o Login.',
                    'Nao Foi Possivel Realizar o Login. Email e/ou senha incorretos.\t'
                )
            cliente.fecharConexao()
    else:
        cliente.fecharConexao()
        dialogoErro(
            janela, 'Erro ao Estabelecer Conexao.',
            'Nao Foi Possivel Realizar o Login. O Servidor Esta Desligado.\t')
Example #6
0
def statusMonitoramento(evento, janela):
    """
    Modifica o estado do monitoramento do servidor.
    """
    cliente = Cliente()
    if cliente.conectaServidor():

        # Obtem o estado do monitoramento.
        cliente.enviarMensagem(settings.STATUS)
        if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:
            resposta = cliente.receberMensagem(settings.TAM_MSN)

            # Verifica se o estado do monitoramento e de pausado.
            if resposta == settings.PAUSADO:
                cliente.conectaServidor()
                cliente.enviarMensagem(settings.INICIAR)
                if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:

                    janela.status_bar.push(janela.context_id, ' Monitoramento Iniciado')
                    cliente.fecharConexao()
                    janela.botaoIniciar.set_stock_id(Gtk.STOCK_MEDIA_PAUSE)
                    janela.botaoIniciar.set_label('Pausar')

            # Verifica se o estado do monitoramento e de executando.
            elif resposta == settings.EXECUTANDO:
                cliente.conectaServidor()
                cliente.enviarMensagem(settings.PAUSAR)
                if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:

                    janela.status_bar.push(janela.context_id, ' Monitoramento Pausado')
                    cliente.fecharConexao()
                    janela.botaoIniciar.set_stock_id(Gtk.STOCK_MEDIA_PLAY)
                    janela.botaoIniciar.set_label('Iniciar  ')
    else:
        cliente.fecharConexao()
        dialogoErro(janela, 'Erro ao Estabelecer Conexao.', 'Nao Foi Possivel Modificar o Estado do Monitoramento.\t\t\nO Servidor Esta Desligado.')
Example #7
0
def logarMonitoramento(evento, janela):
    """
    Envia uma mensagem ao servidor para logar no monitoramento.
    """
    cliente = Cliente()

    # Verifica se o servidor esta ligado.
    if cliente.conectaServidor():
        cliente.enviarMensagem(settings.LOGAR)
        if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:

            email = janela.entryEmail.get_text()
            senha = janela.entrySenha.get_text()

            if len(email) < 10 or len(senha) < 5:
                dialogoErro(janela, 'Erro ao Realizar o Login.', 'Nao Foi Possivel Realizar o Login. Email e/ou senha incorretos.\t')
            else:
                login = '******'.format(email, senha)
                login = bz2.compress(login)
                cliente.enviarMensagem(login)
                if cliente.receberMensagem(settings.TAM_MSN) == settings.OK_200:
                    janela.destroy()
                    JanelaCliente()
                else:
                    dialogoErro(janela, 'Erro ao Realizar o Login.', 'Nao Foi Possivel Realizar o Login. Email e/ou senha incorretos.\t')
                cliente.fecharConexao()
    else:
        cliente.fecharConexao()
        dialogoErro(janela, 'Erro ao Estabelecer Conexao.', 'Nao Foi Possivel Realizar o Login. O Servidor Esta Desligado.\t')