Você está na página 1de 23

Universidade do Minho

Sistemas Embebidos em Tempo Real

Ptolemy – Serial Port

PG11103 -Paulo José Martins


Mestrado Eng. Mecatrónica – Universidade do Minho
Guimarães,2010
PTOLEMY
open-source software framework

Desenvolvimento orientado ao actor :


Objectos de software que comunicam entre
si através de mensagens enviadas para as
respectivas portas
PTOLEMY

 Modelos
Um modelo é uma interconecção de actores.

No Ptolemy a semântica de um modelo não é determinada pelo


framework mas antes por um componente do modelo designado por
director, que implementa um modelo de computação.

 Tipos de directores (modelos)


- process networks (PN)
- discrete-events (DE)
- dataflow (SDF)
- synchronous/reactive(SR)
- rendezvous-based models
- 3-D visualization, and continuous-time
PTOLEMY

 Hierarquia

Cada nível de hirarquia pode ter o seu próprio modelo, diferente dos demais.

Um dos grandes desafios do projecto é precisamente combinar


hirarquicamente os modelos de forma a obter outros modelos;

A combinação do modelo synchronous/reactive com máquinas de estado


produz StateCharts
PTOLEMY
 Hierarquia
Modelo Z

Modelo x
Actor1

Director 1

Actor.n
Nível de Hierarquia n

Modelo y
Actor1

Director 2

Actor.n
Nível de Hierarquia n-1
PTOLEMY

 Vergil – o que é?
Ambiente de desenvolvimento gráfico do Ptolemy


Instalação e configuração
Verificar os requisitos e plugins desejados antes da compilação

export $PTII = raíz da instalação do Ptolemy

Importante ter a CLASSPATH bem definida

Bem como outras variáveis de ambiente:

JAVA_HOME
LD_LIBRARY...
Etc..
PTOLEMY

 Vergil
Ambiente de desenvolvimento gráfico do Ptolemy


Problemas identificados

Problemas com a versão java re nativa do fedora 14 (e anteriores) IcedTea
- remoção
Incompatibilidade e problemas no “carregamento” de livrarias (.so .soi386)

- downgrade de versões já instaladas


- criação de links simbólicos (excessivos)
PTOLEMY
Exemplo - Serial Port

Requisitos:

 RXTX

 JAVA COM API


PTOLEMY


RXTX


Copiar librarias

Copiar .jar RXTXcom.jar

Adicionar os utilizadores que vão executar a
livraria rxtx ao grupo uucp e ao grupo lock.

Certificar-se que o grupo lock detém o
directório /var/lock
PTOLEMY
 RXTX

 Adicionar os utilizadores que vão executar a


livraria rxtx ao grupo uucp e ao grupo lock.
 Certificar-se que o driver cdc-acm está
compilado e carregado no Kernel
(modprobe cdc-acm -solução temporária)
PTOLEMY

 SerialPort em funcionamento

 Actores
 Director
 Parâmetros
 Código
 ...
PTOLEMY

 SerialPort em funcionamento
PTOLEMY
 SerialPort em funcionamento - Serialcom

Este é o principal actor do exemplo. Nele se definem os parâmetros


principais da comunicação. Existem também outros parametros que
permitem excutar funções específicas.
PTOLEMY
 SerialPort em funcionamento - Serialcom

Através da conveniente conjugação dos parâmetros MaximumOutputSize,


MinimumOutputSize, discardOld Data e blocking, conseguem-se executar
funções especiais, como por exemplo receber apenas o último byte
disponivel, descartando toda a restante informação. Para esse caso, por
exemplo,ter-se-ia que definir como 1 quer MaximumOutputSize quer
MinimumOutputSize e definir como true discardOld Data.

Outras combinações são possíveis.


PTOLEMY
 SerialPort em funcionamento – Clock

Este actor é o responsável por enviar em


tempos bem definidos os valores para a
porta série(serão ainda antes convertidos
para um vector de Bytes).
PTOLEMY
 SerialPort em funcionamento

 Conversões de tipos – é necessário


converter
os dados a enviar dotipo string para o tipo byte,
e o inverso para fazer o display nas janelas
output on the serial port e input on the serial
port.
PTOLEMY
 SerialPort - Alteração ao exemplo original

Foi acrescentado um actor ArrowKeySensor, que permite saber quando uma


das teclas de direcção(setas) foi premida, e eliminado o actor Clock. Este
actor está por sua vez ligado a um do tipo Pulse que envia certos valores
para serem convertidos para bytes e posteriormente enviados para a porta
serie.
PTOLEMY
 SerialPort - Alteração ao exemplo original

Este modo de funcionamento altera o paradigma do exemplo uma vez que


anteriormente os eventos ocorriam em momentos bem determinados e
periodicamente, e agora ocorrem em momentos bem determinados mas
aperiódicos (podem até nem ocorrer, desde que as teclas n sejam premidas).
PTOLEMY
 SerialPort - Análise do código
PTOLEMY

 Constrangimentos
Erros Imprevisíveis
ls -la /etc/alternatives/ |grep java
404 ln -s /usr/java/jdk1.6.0_23/bin/java /etc/alternatives/java
405 cp /etc/alternatives/java /etc/alternatives/java.back
406 rm /etc/alternatives/java
407 ln -s /usr/java/jdk1.6.0_23/bin/java /etc/alternatives/java
408 update-alternatives --config java
409 ln -s /usr/java/jdk1.6.0_23/bin/java /etc/alternatives/java
410 update-alternatives --config java

lrwxrwxrwx. 1 root root 30 Dec 28 15:28 java -> /usr/java/jdk1.6.0_23/bin/java


PTOLEMY

 Constrangimentos


Domínio da Multiplicidade de frameworks, modelos, ambientes

Complexidade/abstracção

Curva de aprendizagem

Ćomunidade pequena e pouco activa/suporte (apesar dos exemplos
documentados)
PTOLEMY
Conclusão
O Ptolemy é extremamente útil para modelar e simular,
mas pode até ser utilizado como ferramenta de
programação(desenvolvimento) e integração de
vários frameworks. Permite fazer tudo isso segundo
vários paradigmas (directores) e até mesmo a
combinação dos mesmos. Contra si tem o facto de
ser tão vasto e poderoso que para o utilizar em toda a
sua potencialidade terá de ser primeiro percorrida
uma curva de aprendizagem proporcional à sua
própria complexidade e do modelo a implementar.
Muito útil por exemplo, para aferir da viabilidade de
determinados modelos antes de proceder à aquisição
de material para implementação física do mesmo. É
sem dúvida uma ferramenta poderosa.
FIM

Você também pode gostar