Beispiel #1
0
    def __init__(self, str_status_led):

        self.neopixel_importado = neopixel_importado
        self.str_status_led = str_status_led
        self.config = config.Config()

        if self.neopixel_importado:
            # LED strip configuration:
            self.LED_COUNT = self.config.led_count  # Number of LED pixels.
            self.LED_PIN = self.config.led_pin  # GPIO pin connected to the pixels (18 uses PWM!).
            self.LED_FREQ_HZ = 800000  # LED signal frequency in hertz (usually 800khz)
            self.LED_DMA = 10  # DMA channel to use for generating signal (try 10)
            self.LED_BRIGHTNESS = 255  # Set to 0 for darkest and 255 for brightest
            self.LED_INVERT = self.config.led_invert  # True to invert the signal (when using NPN transistor level shift)
            self.LED_CHANNEL = 0  # set to '1' for GPIOs 13, 19, 41, 45 or 53
            #LED_PIN        = 10      # GPIO pin connected to the pixels (10 uses SPI /dev/spidev0.0).

            # Create NeoPixel object with appropriate configuration.
            self.strip = Adafruit_NeoPixel(self.LED_COUNT, self.LED_PIN,
                                           self.LED_FREQ_HZ, self.LED_DMA,
                                           self.LED_INVERT,
                                           self.LED_BRIGHTNESS,
                                           self.LED_CHANNEL)
            # Intialize the library (must be called once before other functions).
            self.strip.begin()

        else:
            self.conexao_rpi = conexao.Conexao()
Beispiel #2
0
class Genero:

    CAMINHO_DB = '../DB/fat'
    DB_NOME = 'fat_genero'
    EXTENS_DB = '.csv'
    SEP = ';'
    TBL_FAT_GENERO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB

    dados = conexao.Conexao().dados()

    def tabelaGeneros(self):
        # inicializa variaveis
        confianca = []
        hora = []
        id_dim_genero = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_genero = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_genero.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'gênero':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'confiança':
                                    confianca.append(item_valor)
                                if item_chave == 'valor':
                                    for indice in dim_genero:
                                        if indice[1] == item_valor:
                                            id_dim_genero.append(indice[0])
                                    guids.append(chave)
                        if item == 'data':
                            id_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').date()
                            hora_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').time()
                            id_dim_data.append(id_data)
                            hora.append(hora_data)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_genero': ids,
            'id_genero': id_dim_genero,
            'vlr_confianca': confianca,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)

    def fatoGenero(self):
        df = self.tabelaGeneros()
        df.to_csv(self.TBL_FAT_GENERO, index=False, sep=self.SEP)
Beispiel #3
0
class Emocao:

    CAMINHO_DB = '../DB/dim'
    DB_NOME = 'dim_emocao'
    EXTENS_DB = '.csv'
    SEP = ';'

    TBL_DIM_EMOCAO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB

    dados = conexao.Conexao().dados()

    def tabelaEmocoes(self):
        emocoes = []
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'sentimentos':
                            for item_chave, item_valor in atributo.items():
                                emocoes.append(item_chave)

        emocoes_distinct = np.unique(np.array(emocoes))
        ids = [i + 1 for i in range(0, len(emocoes_distinct))]

        dimensao = {'id_emocao': ids, 'descricao_emocao': emocoes_distinct}

        return pd.DataFrame.from_dict(dimensao)

    def dimensaoEmocao(self):
        df = self.tabelaEmocoes()
        df.to_csv(self.TBL_DIM_EMOCAO, index=False, sep=self.SEP)
Beispiel #4
0
class Genero:

    CAMINHO_DB = '../DB/dim'
    DB_NOME = 'dim_genero'
    EXTENS_DB = '.csv'
    SEP = ';'

    TBL_DIM_GENERO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB

    dados = conexao.Conexao().dados()

    def tabelaGeneros(self):
        generos = []
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'gênero':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'valor':
                                    generos.append(item_valor)

        generos_distinct = np.unique(np.array(generos))
        ids = [i + 1 for i in range(0, len(generos_distinct))]

        dimensao = {'id_genero': ids, 'descricao_genero': generos_distinct}

        return pd.DataFrame.from_dict(dimensao)

    def dimensaoGeneros(self):
        df = self.tabelaGeneros()
        df.to_csv(self.TBL_DIM_GENERO, index=False, sep=self.SEP)
Beispiel #5
0
    def __init__(self):

        # Definindo variáveis do Tkinter
        self.app = Tk()
        self.app.title('Sway LED')

        # StringVar para as classes definir os status do programa
        self.str_status_leds = StringVar()
        # self.str_status_leds.trace("w", self.alterar_status)

        # Frames usados na janela do aplicativo
        self.frameCores = Frame(self.app)
        self.frameEfeitos = Frame(self.app)
        self.frameLightpaint = Frame(self.app)
        self.frameDancypi = Frame(self.app)
        self.frameServerled = Frame(self.app)
        self.frameConfig = Frame(self.app)
        self.frameConfigApp = Frame(self.app)

        # Chamando a classe Led (levando a stringvar de status), de Configurações, conexão e construir aplicação
        # self.led = led.Led(self.str_status_leds)
        self.config = config.Config()
        self.conexao = conexao.Conexao()
        self.build = gui.ConstruirAplicacao(self.app, self.str_status_leds)

        # Função para inserir todos os widgets necessários e alterar a tela
        self.construir_menu()
        self.mudar_tela(app_iniciando=True)

        # Abrir o aplicativo
        self.app.mainloop()
Beispiel #6
0
    def tabelaPessoas(self):
        # inicializa variaveis
        confianca = []
        confianca_idade = []
        vlr_idade = []
        hora = []
        id_dim_genero = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_genero = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_genero.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'gênero':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'confiança':
                                    confianca.append(item_valor)
                                if item_chave == 'valor':
                                    for indice in dim_genero:
                                        if indice[1] == item_valor:
                                            id_dim_genero.append(indice[0])
                                    guids.append(chave)
                        if item == 'data':
                            id_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').date()
                            hora_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').time()
                            id_dim_data.append(id_data)
                            hora.append(hora_data)
                        if item == 'idade':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'confiança':
                                    confianca_idade.append(item_valor)
                                if item_chave == 'valor':
                                    vlr_idade.append(item_valor)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_pessoa': ids,
            'id_genero': id_dim_genero,
            'vlr_confianca_genero': confianca,
            'idade_estimada': vlr_idade,
            'vlr_confianca_idade': confianca_idade,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)
Beispiel #7
0
    def __init__(self, app, var_status_leds):

        self._app = app

        self.config = config.Config()

        self.led = led.Led(var_status_leds)

        self.conexao = conexao.Conexao()

        self.var_status_leds = var_status_leds

        self.verificar_se_temos_led()
Beispiel #8
0
    def tabelaSentimentos(self):
        # inicializa variaveis
        confianca = []
        vlr_resultado = []
        hora = []
        id_dim_emocao = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_emocao = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_emocao.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'sentimentos':
                            for item_chave, item_valor in atributo.items():
                                id_atributo = self.pesquisaID(
                                    item_chave, dim_emocao)
                                id_dim_emocao.append(id_atributo)
                                for k1, v1 in item_valor.items():
                                    if k1 == 'confiança':
                                        confianca.append(v1)
                                    if k1 == 'valor':
                                        vlr_resultado.append(v1)
                                guids.append(chave)

        for guid in guids:
            data, hora_valor_valor = self.dataHora(guid)
            id_dim_data.append(data)
            hora.append(hora_valor_valor)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_emocao': ids,
            'id_emocao': id_dim_emocao,
            'vlr_confianca': confianca,
            'vlr_resultado': vlr_resultado,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)
Beispiel #9
0
    def tabelaCartazes(self):
        # inicializa variaveis
        hora = []
        id_dim_cartaz = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_cartaz = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_cartaz.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'foto':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'url':
                                    nome_cartaz = self.trataCartazNome(
                                        item_valor)
                                    cartaz = self.pesquisaID(
                                        nome_cartaz, dim_cartaz)
                                    id_dim_cartaz.append(cartaz)
                                    guids.append(chave)
                        if item == 'data':
                            id_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').date()
                            hora_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').time()
                            id_dim_data.append(id_data)
                            hora.append(hora_data)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_cartaz': ids,
            'id_cartaz': id_dim_cartaz,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)
Beispiel #10
0
    def recebe_pacote(self, pack):
        #tenho de dar um jeito de arrumar isso
        if not (pack.ip_origem, pack.porta_origem) in self.conexoes.keys():
            self.conexoes[(pack.ip_origem,
                           pack.porta_origem)] = conexao.Conexao(
                               500, pack.ip_origem, pack.porta_origem,
                               pack.ip_destino, pack.porta_destino)
        flags = pack.checa_flags()
        print('INCOMING > ip origem : ',pack.ip_origem, \
              ' | porta origem : ', pack.porta_origem, \
              ' | ip destino : ', pack.ip_destino,\
              ' | porta destino : ',pack.porta_destino,\
              ' | numero de sequencia : ', pack.numero_de_sequencia, \
              ' | numero de ack :', pack.numero_de_acknowledgement,\
              ' | FIN : ', flags[0], ' | SYN : ', flags[1],\
              ' | RST : ', flags[2], ' | ACK : ', flags[3],
              ' | conteudo : ', pack.conteudo.decode("UTF-8") if len(pack.conteudo) > 0 else '""')
        p = self.conexoes[(pack.ip_origem,
                           pack.porta_origem)].recebe_pacote(pack)
        for packet in p:
            flags = packet.checa_flags()
            if type(packet.conteudo) is int:
                packet.conteudo = packet.conteudo.to_bytes(2, byteorder='big')
            print('OUTGOING > ip origem : ',packet.ip_origem, \
                  ' | porta origem : ', packet.porta_origem, \
                  ' | ip destino : ', packet.ip_destino,\
                  ' | porta destino : ',packet.porta_destino,\
                  ' | numero de sequencia : ', packet.numero_de_sequencia, \
                  ' | numero de ack :', packet.numero_de_acknowledgement,\
                  ' | FIN : ', flags[0], ' | SYN : ', flags[1],\
                  ' | RST : ', flags[2], ' | ACK : ', flags[3],
                  ' | conteudo : NOPE')#, packet.conteudo.decode("UTF-8") if len(pack.conteudo) > 0 else '""')

            #if packet.numero_de_sequencia == 0:
            #  packet.numero_de_sequencia = self.conexoes[(pack.ip_origem, pack.porta_origem)].
            pack.ativa_flags(fin=False, syn=False, rst=False, ack=True)
            self.fd.sendto(packet.serialize(), (packet.ip_destino, \
                                                packet.porta_destino))
Beispiel #11
0
class Cartaz:
    
    CAMINHO_DB = '../DB/dim'
    DB_NOME = 'dim_cartaz'
    EXTENS_DB = '.csv'
    SEP = ';'
    
    TBL_DIM_CARTAZ = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB
    
    dados = conexao.Conexao().dados()
    
    def tabelaCartazes(self):
        cartazes = []
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'foto':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'url':
                                    cartazes.append(item_valor)
        cartazes_tratados = []                        
        for item in cartazes:
            nome = item.split('_')
            cartazes_tratados.append(nome[-3]+ ' ' + str(nome[-2]))

        cartazes_distinct = np.unique(np.array(cartazes_tratados))
        ids = [i + 1 for i in range(0, len(cartazes_distinct))]
        
        dimensao = {'id_cartaz': ids, 'descricao_cartaz': cartazes_distinct}
        
        return pd.DataFrame.from_dict(dimensao)
    
    def dimensaoCartazes(self):
        df = self.tabelaCartazes()
        df.to_csv(self.TBL_DIM_CARTAZ, index=False ,sep=self.SEP)
Beispiel #12
0
class Sentimento:

    CAMINHO_DB = '../DB/fat'
    DB_NOME = 'fat_sentimento'
    EXTENS_DB = '.csv'
    SEP = ';'
    TBL_FAT_SENTIMENTO = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB

    dados = conexao.Conexao().dados()

    def pesquisaID(self, emocao, dimensao):
        for indice in dimensao:
            if indice[1] == emocao:
                return indice[0]

    def dataHora(self, guid):
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'data':
                            if chave == guid:
                                id_data = datetime.strptime(
                                    atributo, '%Y-%m-%d %H:%M:%S.%f').date()
                                hora_data = datetime.strptime(
                                    atributo, '%Y-%m-%d %H:%M:%S.%f').time()
                                return id_data, hora_data

    def tabelaSentimentos(self):
        # inicializa variaveis
        confianca = []
        vlr_resultado = []
        hora = []
        id_dim_emocao = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_emocao = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_emocao.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'sentimentos':
                            for item_chave, item_valor in atributo.items():
                                id_atributo = self.pesquisaID(
                                    item_chave, dim_emocao)
                                id_dim_emocao.append(id_atributo)
                                for k1, v1 in item_valor.items():
                                    if k1 == 'confiança':
                                        confianca.append(v1)
                                    if k1 == 'valor':
                                        vlr_resultado.append(v1)
                                guids.append(chave)

        for guid in guids:
            data, hora_valor_valor = self.dataHora(guid)
            id_dim_data.append(data)
            hora.append(hora_valor_valor)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_emocao': ids,
            'id_emocao': id_dim_emocao,
            'vlr_confianca': confianca,
            'vlr_resultado': vlr_resultado,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)

    def fatoSentimento(self):
        df = self.tabelaSentimentos()
        df.to_csv(self.TBL_FAT_SENTIMENTO, index=False, sep=self.SEP)
Beispiel #13
0
class Queries(object):
    """
    Classe com queries mais utilizadas no projeto

    Modo de uso
    Queries.tickers() - retorna um frame com o resultado da query
    """

    conexao = conexao.Conexao()

    @staticmethod
    def tickers():
        """Função que retorna a lista de ticker, ticker_id e empresa_id

        Returns:
            pd.DataFrame()
        """
        sql = "select id, ticker, empresa_id from assets_ticker"
        return Queries.conexao.query(sql)

    @staticmethod
    def valor_mercado():
        """Função que retorna o valor de mercado das empresas

        Returns:
            pd.DataFrame()
        """
        sql = "select empresa_id, ticker_id, date, valor from assets_valormercado"
        return Queries.conexao.query(sql)

    @staticmethod
    def precos_ajustado():
        """Função que retorna o preço de fechamento e preço médio ajustado das empresas

        Returns:
            pd.DataFrame()
        """
        sql = "select date, ticker_id, preult, premed from assets_precohistoricoajustado"
        return Queries.conexao.query(sql)

    @staticmethod
    def precos_nao_ajustado():
        """Função que retorna o volume e o preço de fechamento não ajustado das empresas

        Returns:
            pd.DataFrame()
        """
        sql = "select date, ticker_id, voltot, preult from assets_historicalprice where tpmerc=10"
        return Queries.conexao.query(sql)

    @staticmethod
    def volume_mercado():
        """Função que retorna as informações da tabela volumemercado
        Essas informações são utilizadas para compor o backtest.

        Returns:
            pd.DataFrame()
        """
        sql = "select * from assets_volumemercado"
        return Queries.conexao.query(sql)

    @staticmethod
    def patrimonio_liquido():
        """Função que retorna o patrimônio líquido das empresas

        Returns:
            pd.DataFrame()
        """
        sql = "select empresa_id, ticker_id, date, data_de_divulgacao, valor from assets_patrimonioliquido"
        return Queries.conexao.query(sql)

    @staticmethod
    def lucros():
        """Função que retorna o lucro líquido das empresas

        Returns:
            pd.DataFrame()
        """
        sql = "select ticker_id, empresa_id, date, lucro_liquido from assets_informacoesfinanceiras " \
              "order by empresa_id, date"
        return Queries.conexao.query(sql)

    @staticmethod
    def pesos():
        """Função que retorna os pesos de otimização

        Returns:
            pd.DataFrame()
        """
        sql = "select * from pandas_pesos"
        return Queries.conexao.query(sql)
Beispiel #14
0
    def iniciar_conexao(self, status):

        cx = conexao.Conexao()

        cx.enviar_teste()
        status.set('aaaa')
Beispiel #15
0
class Cartaz:

    CAMINHO_DB = '../DB/fat'
    DB_NOME = 'fat_cartaz'
    EXTENS_DB = '.csv'
    SEP = ';'
    TBL_FAT_CARTAZ = CAMINHO_DB + '/' + DB_NOME + EXTENS_DB

    dados = conexao.Conexao().dados()

    def trataCartazNome(self, nome):
        nome_resultado = nome.split('_')
        return nome_resultado[-3] + ' ' + str(nome_resultado[-2])

    def pesquisaID(self, nome, dimensao):
        for indice in dimensao:
            if indice[1] == nome:
                return indice[0]

    def tabelaCartazes(self):
        # inicializa variaveis
        hora = []
        id_dim_cartaz = []
        id_dim_data = []
        guids = []

        # carrega dimensões
        dim_cartaz = conexao.Conexao().carregaDimensao(
            '../DB/dim/dim_cartaz.csv')

        # carrega os dados da fato
        for chave, valor in self.dados.items():
            for k, v in valor.items():
                if k == 'resposta':
                    for item, atributo in v.items():
                        if item == 'foto':
                            for item_chave, item_valor in atributo.items():
                                if item_chave == 'url':
                                    nome_cartaz = self.trataCartazNome(
                                        item_valor)
                                    cartaz = self.pesquisaID(
                                        nome_cartaz, dim_cartaz)
                                    id_dim_cartaz.append(cartaz)
                                    guids.append(chave)
                        if item == 'data':
                            id_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').date()
                            hora_data = datetime.strptime(
                                atributo, '%Y-%m-%d %H:%M:%S.%f').time()
                            id_dim_data.append(id_data)
                            hora.append(hora_data)

        ids = [i + 1 for i in range(0, len(guids))]

        fato = {
            'id_fato_cartaz': ids,
            'id_cartaz': id_dim_cartaz,
            'data': id_dim_data,
            'hora': hora,
            'guid': guids
        }

        return pd.DataFrame.from_dict(fato)

    def fatoCartaz(self):
        df = self.tabelaCartazes()
        df.to_csv(self.TBL_FAT_CARTAZ, index=False, sep=self.SEP)