3º Encontro de Usuários do Emme – São Paulo Automação do Emme usando Python 16 Novembro 2010 Eduardo Germani Steer Davies Gleave Rua Bela Cintra, 756 Cj 21 São Paulo – SP - Brasil www.steerdaviesgleave.com 1 Automação do Emme Para que serve? Ι Executar processos complexos e ou repetitivos ■ Replicar alterações em diversos cenários ■ obter seqüência de informações (resultados) ■ Implementação de algorítmos diferentes ■ Etc. Ι Portabilidade ■ Pode ser utilizados em outros projetos ■ Pode hover intercâmbio entre usuários Ι Maior controle sobre a rede e alocações ■ Diminui erros humanos ■ “Documenta” os processos Ι Etc. 2 Automação do Emme Prompt Console Ι Linguagem de Macro ■ Arquivo de texto; ■ É parte do programa Emme; ■ Substitui o teclado para respostas a diálogos do Emme, com alguns recursos básicos de linguagem de programação (estruturado, variáveis, etc.); Desktop (interface gráfica) Ι Linguagem de programação Python ■ Arquivo de texto; ■ Programa externo; ■ Substitui o mouse e teclado na interface gráfica do Emme, com poderosa linguagem de programação. 3 Por que Python? Ι Foi criada para ser fácil de aprender ■ Muito utilizada em cursos para iniciantes; Ι É grátis; ■ acompanha o Emme, ou www.python.org; Ι É livre – pode ser alterada e redistribuída; ■ já vem com uma ampla biblioteca de módulos; Ι É poderosa ■ Moderna (OO, multiplo processamento, etc.) ■ não é de “brinquedo”; ■ pode ser utilizada para fazer programas profissionais; Ι Portabilidade ■ roda em diferentes sistemas operacionais (Windows, Mac, Linux, etc.). 4 Automação do Desktop Executado fora do Emme Ι Clique duplo no arquivo python (*.py), ou; Ι Do DOS prompt Caso o Emme esteja rodando Ι Tem que ter sido iniciado com a opção “Emme Desktop with API” Ι Ou com o parâmetro –a Conexão via TCP/IP Ι Porta padrão=4242, host padrão="127.0.0.1“ Ι Podem ser alterados Acesso remoto via LAN ou Internet Sem ordem seqüencial predefinida (orientada a eventos) 5 Automação do Desktop Exemplo 1 – Punch Nodes Ι Abre o Emme e carrega o banco de dados Ι Abre a tabela “PunchNodes” Ι Salva a tabela em arquivo texto Variante: Ι Abre o Emme em modo invisível Ι Encerra o Emme ao final 6 Automação do Desktop Exemplo 2 - Impressões Para cada cenário de uma simulação nova: Ι Imprime o volume de Automóveis Ι Imprime o volume de Caminhões Ι Imprime a comparação do volume de Automóveis com o cenário anterior Ι Imprime a comparação do volume de Caminhões com o cenário anterior Em todas as impressões, utiliza uma janela padrão e atualiza a legenda. 7 Automação do Desktop Outros exemplos de uso: Ι Comandar apresentações a clientes Ι Modificar legendas ou configurações de worksheets Ι Acrescentar ou remover layers dependendo do cenário, da janela, etc. Ι Aplicar padronização da empresa em todas as imagens Ι Gerar seqüência de impressões ou pdfs automaticamente Ι Etc. 8 Automação do Desktop Documentação: Ι Python: www.python.org Ι Emme Desktop API: ■ Guia ■ Referência de comandos ■ Programa exemplo: (C:\Program Files\INRO\Emme\Emme 3.3\Emme-3.3.3\ doc\html\desktop_api\desktopAPIExample.py) 9 Obrigado 10