Python Aplicado às Redes de Comunicação UERJ-FEN-DETEL Prof. Gil Pinheiro UERJ-FEN-DETEL Prof. Gil Pinheiro - Out/2011 O que é Python? • Linguagem de programação – Interpretada – Interativa – Orientada a objetos UERJ-FEN-DETEL • Inventada por Guido Van Rossum, em 1990 • O nome Python Prof. Gil Pinheiro - Out/2011 UERJ-FEN-DETEL Características do Python • • • • • • • Extensível (C, C++, Fortran, Java) Orientada a objetos Prototipagem e aprendizado rápidos Boa legibilidade Tratamento de exceções Gratuita (código aberto) Extensa biblioteca Prof. Gil Pinheiro - Out/2011 Objetivos do Python UERJ-FEN-DETEL • Desenhada para ser simples, apesar de poderosa • Permite programação modular • Grande ênfase na legibilidade • Rápido desenvolvimento de aplicações Prof. Gil Pinheiro - Out/2011 Instalação e Uso • Disponível em: http://ww.python.org/download • Carregar e instalar em seu computador • Pode ser usada nos modos UERJ-FEN-DETEL – interativo – batelada • IDLE é o editor de programas padrão Prof. Gil Pinheiro - Out/2011 Modo Interativo UERJ-FEN-DETEL • Quando os comandos são utilizados na console (IDLE), sendo processados pelo interpretador de comandos interativamente. Prof. Gil Pinheiro - Out/2011 Porta de Comunicação UERJ-FEN-DETEL • Dispositivo de comunicação de um computador (DTE) ou equipamento de rede (DCE) • Exemplos: Porta Serial, porta Ethernet, porta USB, porta Paralela • A porta de comunicação pode ser – Paralela – ex.: Porta de impressora – Serial – ex.: portas RS-232, USB, Ethernet Prof. Gil Pinheiro - Out/2011 UERJ-FEN-DETEL Portas de um PC Prof. Gil Pinheiro - Out/2011 UERJ-FEN-DETEL Usando Python com a Porta Serial (RS-232 ou RS-485) Prof. Gil Pinheiro - Out/2011 UERJ-FEN-DETEL Biblioteca pyserial • Biblioteca Python para comunicação através de porta serial (UART) • A porta pode usar RS-232 ou RS-485 • Funciona com conversores USB/Serial • Disponível gratuitamente em: http://pyserial.sourceforge.net/ • Python deve estar instalado previamente • Seguir procedimentos de instalação do site Prof. Gil Pinheiro - Out/2011 Programas Exemplo • Programas Exemplo da Pyserial UERJ-FEN-DETEL – Varredura das portas seriais disponíveis – Redirecionador TCP/IP x RS-232 – Emulador de terminal Telnet Prof. Gil Pinheiro - Out/2011 Biblioteca pyserial UERJ-FEN-DETEL Classe Serial Prof. Gil Pinheiro - Out/2011 UERJ-FEN-DETEL Classe Serial Exemplo de atributo Exemplo de método Prof. Gil Pinheiro - Out/2011 Programa loopback UERJ-FEN-DETEL • Efetua o envio e o recebimento de uma string • Deve receber a mesma seqüência enviada (eco), se não houver erro • Este é o processo do loopback, receber exatamente o que enviou. • Serve para testar enlaces de comunicação • Exemplos: – loopback-1: um PC – loopback-2: dois PCs Prof. Gil Pinheiro - Out/2011 Loopback - 1 Computador Windows Programa em Python Biblioteca pyserial RS-232 UERJ-FEN-DETEL TX RX GND • Programa envia seqüência pela UART • Seqüência é recebida pela UART e armazenada no buffer • Programa entra em espera para ler a seqüência recebida (eco) • Programa imprime seqüência na tela Prof. Gil Pinheiro - Out/2011 Loopback - 2 • Computador1: Computador - 1 Computador - 2 Windows Windows Programa - 1 em Python Programa - 2 em Python Biblioteca pyserial Biblioteca pyserial UERJ-FEN-DETEL RS-232 TX – Programa1 envia seqüência pela UART1 – Programa1 entra em espera para receber seqüência – Programa1 imprime seqüência na tela • Computador2: RS-232 RX GND TX RX GND Prof. Gil Pinheiro - Out/2011 – Programa2 entra em espera para receber seqüência – Programa2 imprime seqüência na tela – Programa2 envia seqüência pela UART2 Usando uma porta de comunicação serial • • • • • Importar a biblioteca Criar objeto “porta” Parametrizar a “porta” Inicializar a “porta” Efetuar a comunicação UERJ-FEN-DETEL – Escrever e/ou ler na “porta” • Liberar a “porta” Prof. Gil Pinheiro - Out/2011 Usando uma porta de comunicação – loopback-1 UERJ-FEN-DETEL • Importar a biblioteca • Criar objeto “porta” • Parametrizar a “porta” Prof. Gil Pinheiro - Out/2011 Usando uma porta de comunicação – loopback-1 • Inicializar a “porta” • Efetuar a comunicação UERJ-FEN-DETEL – Enviar seqüência de bytes Prof. Gil Pinheiro - Out/2011 Usando uma porta de comunicação – loopback-1 • Efetuar a comunicação – Aguardar e receber seqüência de bytes (eco) – Mostrar a seqüência recebida na tela UERJ-FEN-DETEL • Liberar uso da porta Prof. Gil Pinheiro - Out/2011