segunda-feira, 1 de abril de 2024
WCH RISC-V
.
Informações interessantes e tecnológicas da empresa WCH dos seu circuito integrado CH208.
https://www.youtube.com/watch?v=sWPra_4kTTg em 31/03/2024 as 17:00 horas
.
terça-feira, 19 de março de 2024
sexta-feira, 6 de maio de 2016
Criação e Descontinuação
No ano 2006, Atmel lançou o AVR32A:. O núcleo AVR32 AP700x, uma plataforma de design 7 estágios pipeline à base de cache, com gerenciador de memória.
No ano 2007, Atmel lançou a segunda AVR32: O núcleo AVR32 UC3, sem gerenciador de memória.
O novo CEO em 10 de abril de 2012 Atmel anunciou o fim da vida da família dos dispositivos de núcleo AP7 a partir de 4 de abril de 2013.
O ATNGW100MKII é um kit de gateway de rede.
Ele usa o AT32AP7000 que combina estado da CPU processador de sinal digital arte AVR32 da Atmel com uma incomparável selecção de interfaces de comunicação.
O NGW100 tem duas portas Ethernet, leitor de cartões SD e MMC e conectores para USB e JTAG. O NGW100 também é uma placa de desenvolvimento ideal para o AT32AP7000.
Todos os recursos estão disponíveis, e ele suporta a comunicação em qualquer uma das interfaces de comunicação do dispositivo.
Ele usa o AT32AP7000 que combina estado da CPU processador de sinal digital arte AVR32 da Atmel com uma incomparável selecção de interfaces de comunicação.
O NGW100 tem duas portas Ethernet, leitor de cartões SD e MMC e conectores para USB e JTAG. O NGW100 também é uma placa de desenvolvimento ideal para o AT32AP7000.
Todos os recursos estão disponíveis, e ele suporta a comunicação em qualquer uma das interfaces de comunicação do dispositivo.
Two Ethernet connectors
32MB SDRAM
16MB On board flash
Expandable memory through SD or MMC memory cards
USB connector
JTAG connector for debugging or programming of flash
Expansion connectors with 63 general purpose IO or peripheral modules from AP7000
Power system and status LEDs
Two user controllable LEDs
Footprint for mictor-38 connector for NEXUS emulator
Referência
[1] https://en.wikipedia.org/wiki/AVR32 em 06/05/2016 as 7:00 horas.
.
segunda-feira, 17 de março de 2014
Andamento RPC.
Evoluindo bem o RPC.
# Data: 25/02/2014
# Hora: 10:30:06
#*********************************************************************
# Arquivo: servidorRCP.py
#
# Descrição: O arquivo servidorRPC.py executou bem apareceu
# os métodos porém, não realiza nunhuma operação sem dar
# erro.
#
# Uso: from servidorRPC import ServidorRPC
# s = ServidorRPC
# s. --> aparecem os métodos e atributos disponíveis.
#
#
# Pode ser "127.0.0.1" ou 'localhost' ou 'xxx.xxx.xx.xxx'
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
from pessoa import Pessoa
from experimento import Experimento
from temperatura import Temperatura
from luminosidade import Luminosidade
from data import Data
from hora import Hora
from maquina import Maquina
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ()
v_dicionario = {'tan':88}
v_acesso = {'técnico':77,'administrador':66,'komum':33}
v_conectado = [1,2]
servilo = SimpleXMLRPCServer(("localhost", 15000), allow_none = True, requestHandler=RequestHandler)
servilo.register_introspection_functions()
class ServidorRPC():
def __init__(self):
self.nome = 'RPC'
def acesso(nome_terminal):
"""Gerencia o acesso ao terminal.
"""
v_conectado[0] = nome_terminal
if nome_terminal == v_acesso['técnico']:
print('Conectado:', v_acesso['técnico'])
elif nome_terminal == v_acesso['administrador']:
print('Conectado:', v_acesso['administrador'])
elif nome_terminal == v_acesso['komum']:
print('Conectado:', v_acesso['komum'])
else:
print('Acesso negado! Não conectado.')
return nome_terminal
servilo.register_function(acesso, 'acesso')
def versao():
"""Exibe a versão do RPC.
"""
print('RPC Versão 9.')
servilo.register_function(versao, 'versao')
def executa():
"""Executa o servidor infinitamente!
"""
if v_conectado[0] == v_acesso['administrador']:
try:
servilo.server_close()
print ('Use "Control-C" para encerrar o servidor 2.')
servilo.serve_forever()
except KeyboardInterrupt:
servilo.server_close()
print ('Saída 2!')
else:
print('Acesso negado! Não executado.')
servilo.register_function(executa, 'executa')
def fecha():
servilo.server_close()
servilo.register_function(fecha,'fecha')
def mostra():
"""Mostra o dicionário.
"""
if v_conectado[0] == v_acesso['técnico']:
print(v_dicionario.keys())
else:
print('Acesso negado! Não mostrado.')
return -1
servilo.register_function(mostra, 'mostra')
#-----------------------------------------------------------------------------
def passo1():
'''Usando a classe Pessoa.
'''
if v_conectado[0] == v_acesso['administrador']:
print('Acessando o cadastrada do grupo.')
Pessoa.cadastro_informacoes()
Pessoa.cadastro_senhausuario()
return('Grupo acadastrado com sucesso!')
# except:
# return('Erro de grupo')
else:
print('Acesso negado! Grupo protegido.')
servilo.register_function(passo1, 'passo1')
def passo2():
'''Usando a classe experimento.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando o experimento.')
Experimento.cadastro_experimento()
return('Experimento cadastrado com sucesso!')
except:
return('Erro experimento.')
else:
return('Acesso negado! Experimento protegido.')
servilo.register_function(passo2, 'passo2')
def passo3():
'''Usando a classe data.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a data.')
datainicio = input('Entre com a data inicial : ')
Data.define_datainicio(datainicio)
datafinal = input('Entre com a data final: ')
Data.define_datafinal(datafinal)
return('Datado com sucesso!')
except:
return('Erro data.')
else:
return('Acesso negado! Data protegido.')
servilo.register_function(passo3, 'passo3')
def passo4():
'''Usando a classe temperatura.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a temperatura.')
horasx = int(input('Entre quantidade de horas/dia T: '))
Temperatura.quantidade_horasdiaT(horasx)
Temperatura.define_temperaturaprogramada()
return('Quantidade de temperaturas definidas.')
except:
return('Erro temperatura.')
else:
return ('Acesso negado! Temperatura protegido.')
servilo.register_function(passo4, 'passo4')
def passo5():
'''Usando a classe luminosidade.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a luminosidade.')
horasy = int(input('Entre quantidade de horas/dia L: '))
Luminosidade.quantidade_horasdiaL(horasy)
Luminosidade.define_luminosidadeprogramada()
return('Quantidade de luminosidades definidas.')
except:
return ('Erro luminosidade.')
else:
return('Acesso negado! Luminosidade protegido.')
servilo.register_function(passo5, 'passo5')
def passo6():
'''Usando a classe máquina.
'''
if v_conectado[0] == v_acesso['administrador']:
print('Acessando a máquina.')
# Maquina.verifica_temperatura()
# Maquina.verifica_luminosidade()
# Maquina.verifica_horario()
# Maquina.verifica_data()
return('Máquina executando.')
else:
return('Acesso negado! Máquina protegido.')
servilo.register_function(passo6, 'passo6')
servilo.register_instance(ServidorRPC())
if __name__ == '__main__':
try:
print ('Use "Control-C" para encerrar o servidor 1.')
servilo.serve_forever()
except KeyboardInterrupt:
servilo.server_close()
print ('Saída 1!')
#************************************************************************
# Data: 07/03/2014
# Hora: 17:45:06
#*********************************************************************
# Arquivo: clienteRCP.py
#
# Descrição: O arquivo clienteRCP.py executou bem apareceu
# os métodos porém, não realiza nunhuma operação sem dar
# erro.
#
# Uso: import xmlrpc.client
# s = xmlrpc.client.ServerProxy('http://localhost:15000')
# s. --> aparecem os métodos e atributos disponíveis.
#
# ('http://xxx.xxx.xx.xxx': 15000) ou ("http://127.0.0.1": 15000) ou ('http://localhost':15000)
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import xmlrpc.client
s = xmlrpc.client.ServerProxy('http://localhost:15000')
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
s.versao() # verifica a versão do sistema.
print(s.acesso(77)) # conecta-se ao sistema como usuário técnico.
print(s.mostra()) # mostra todo o dicionário.
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
print(s.acesso(77)) # conecta-se ao sistema como usuário técnico.
print(s.mostra()) # mostra todo o dicionário.
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
#s.executa() # executa o RPC infinitamente.
print(s.system.listMethods())
s.acesso(66)
print(s.passo1())
s.versao()
print(s.passo2())
print(s.passo3())
print(s.acesso(77))
print(s.mostra())
s.acesso(66)
print(s.passo4())
s.acesso(66)
print(s.passo5())
s.acesso(66)
print(s.passo6())
print('Final de sequência')
Desenvolvidos algumas classes para solucionar o problema.
O RPC acessa com precisão as classes e executa bem as suas funções como vemos nas figuras 1 e 2.
.
![]() |
Figura 1: execução 1 do RPC. |
#********************************************************************
# Autor: ubiratã uaatsim itza I.# Data: 25/02/2014
# Hora: 10:30:06
#*********************************************************************
# Arquivo: servidorRCP.py
#
# Descrição: O arquivo servidorRPC.py executou bem apareceu
# os métodos porém, não realiza nunhuma operação sem dar
# erro.
#
# Uso: from servidorRPC import ServidorRPC
# s = ServidorRPC
# s. --> aparecem os métodos e atributos disponíveis.
#
#
# Pode ser "127.0.0.1" ou 'localhost' ou 'xxx.xxx.xx.xxx'
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from xmlrpc.server import SimpleXMLRPCServer
from xmlrpc.server import SimpleXMLRPCRequestHandler
from pessoa import Pessoa
from experimento import Experimento
from temperatura import Temperatura
from luminosidade import Luminosidade
from data import Data
from hora import Hora
from maquina import Maquina
class RequestHandler(SimpleXMLRPCRequestHandler):
rpc_paths = ()
v_dicionario = {'tan':88}
v_acesso = {'técnico':77,'administrador':66,'komum':33}
v_conectado = [1,2]
servilo = SimpleXMLRPCServer(("localhost", 15000), allow_none = True, requestHandler=RequestHandler)
servilo.register_introspection_functions()
class ServidorRPC():
def __init__(self):
self.nome = 'RPC'
def acesso(nome_terminal):
"""Gerencia o acesso ao terminal.
"""
v_conectado[0] = nome_terminal
if nome_terminal == v_acesso['técnico']:
print('Conectado:', v_acesso['técnico'])
elif nome_terminal == v_acesso['administrador']:
print('Conectado:', v_acesso['administrador'])
elif nome_terminal == v_acesso['komum']:
print('Conectado:', v_acesso['komum'])
else:
print('Acesso negado! Não conectado.')
return nome_terminal
servilo.register_function(acesso, 'acesso')
def versao():
"""Exibe a versão do RPC.
"""
print('RPC Versão 9.')
servilo.register_function(versao, 'versao')
def executa():
"""Executa o servidor infinitamente!
"""
if v_conectado[0] == v_acesso['administrador']:
try:
servilo.server_close()
print ('Use "Control-C" para encerrar o servidor 2.')
servilo.serve_forever()
except KeyboardInterrupt:
servilo.server_close()
print ('Saída 2!')
else:
print('Acesso negado! Não executado.')
servilo.register_function(executa, 'executa')
def fecha():
servilo.server_close()
servilo.register_function(fecha,'fecha')
def mostra():
"""Mostra o dicionário.
"""
if v_conectado[0] == v_acesso['técnico']:
print(v_dicionario.keys())
else:
print('Acesso negado! Não mostrado.')
return -1
servilo.register_function(mostra, 'mostra')
#-----------------------------------------------------------------------------
def passo1():
'''Usando a classe Pessoa.
'''
if v_conectado[0] == v_acesso['administrador']:
print('Acessando o cadastrada do grupo.')
Pessoa.cadastro_informacoes()
Pessoa.cadastro_senhausuario()
return('Grupo acadastrado com sucesso!')
# except:
# return('Erro de grupo')
else:
print('Acesso negado! Grupo protegido.')
servilo.register_function(passo1, 'passo1')
def passo2():
'''Usando a classe experimento.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando o experimento.')
Experimento.cadastro_experimento()
return('Experimento cadastrado com sucesso!')
except:
return('Erro experimento.')
else:
return('Acesso negado! Experimento protegido.')
servilo.register_function(passo2, 'passo2')
def passo3():
'''Usando a classe data.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a data.')
datainicio = input('Entre com a data inicial : ')
Data.define_datainicio(datainicio)
datafinal = input('Entre com a data final: ')
Data.define_datafinal(datafinal)
return('Datado com sucesso!')
except:
return('Erro data.')
else:
return('Acesso negado! Data protegido.')
servilo.register_function(passo3, 'passo3')
def passo4():
'''Usando a classe temperatura.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a temperatura.')
horasx = int(input('Entre quantidade de horas/dia T: '))
Temperatura.quantidade_horasdiaT(horasx)
Temperatura.define_temperaturaprogramada()
return('Quantidade de temperaturas definidas.')
except:
return('Erro temperatura.')
else:
return ('Acesso negado! Temperatura protegido.')
servilo.register_function(passo4, 'passo4')
def passo5():
'''Usando a classe luminosidade.
'''
if v_conectado[0] == v_acesso['administrador']:
try:
print('Acessando a luminosidade.')
horasy = int(input('Entre quantidade de horas/dia L: '))
Luminosidade.quantidade_horasdiaL(horasy)
Luminosidade.define_luminosidadeprogramada()
return('Quantidade de luminosidades definidas.')
except:
return ('Erro luminosidade.')
else:
return('Acesso negado! Luminosidade protegido.')
servilo.register_function(passo5, 'passo5')
def passo6():
'''Usando a classe máquina.
'''
if v_conectado[0] == v_acesso['administrador']:
print('Acessando a máquina.')
# Maquina.verifica_temperatura()
# Maquina.verifica_luminosidade()
# Maquina.verifica_horario()
# Maquina.verifica_data()
return('Máquina executando.')
else:
return('Acesso negado! Máquina protegido.')
servilo.register_function(passo6, 'passo6')
servilo.register_instance(ServidorRPC())
if __name__ == '__main__':
try:
print ('Use "Control-C" para encerrar o servidor 1.')
servilo.serve_forever()
except KeyboardInterrupt:
servilo.server_close()
print ('Saída 1!')
#************************************************************************
![]() |
Figura 2: execução 2 do RPC |
#********************************************************************
# Autor: ubiratã uaatsim itza I.# Data: 07/03/2014
# Hora: 17:45:06
#*********************************************************************
# Arquivo: clienteRCP.py
#
# Descrição: O arquivo clienteRCP.py executou bem apareceu
# os métodos porém, não realiza nunhuma operação sem dar
# erro.
#
# Uso: import xmlrpc.client
# s = xmlrpc.client.ServerProxy('http://localhost:15000')
# s. --> aparecem os métodos e atributos disponíveis.
#
# ('http://xxx.xxx.xx.xxx': 15000) ou ("http://127.0.0.1": 15000) ou ('http://localhost':15000)
#
#*********************************************************************
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import xmlrpc.client
s = xmlrpc.client.ServerProxy('http://localhost:15000')
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
s.versao() # verifica a versão do sistema.
print(s.acesso(77)) # conecta-se ao sistema como usuário técnico.
print(s.mostra()) # mostra todo o dicionário.
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
print(s.acesso(77)) # conecta-se ao sistema como usuário técnico.
print(s.mostra()) # mostra todo o dicionário.
print(s.acesso(66)) # conecta-se ao sistema como usuário administrador.
#s.executa() # executa o RPC infinitamente.
print(s.system.listMethods())
s.acesso(66)
print(s.passo1())
s.versao()
print(s.passo2())
print(s.passo3())
print(s.acesso(77))
print(s.mostra())
s.acesso(66)
print(s.passo4())
s.acesso(66)
print(s.passo5())
s.acesso(66)
print(s.passo6())
print('Final de sequência')
![]() |
Figura 3: arquivamento das classes. |
.
Assinar:
Postagens (Atom)