1 / 16

Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg

Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg. 2 o Workshop do Projeto VAS PDPG-TI CNPq 552192/02-3 Novembro / 2004 IC/UFF, Niterói. Agenda. Estado da aplicação do cruise control Adaptações para o CBabel Tools interação paralela guardas com portas assíncronas

dolph
Download Presentation

Aplicações: Cruise Control – CBDT – QoS em CBabel Alexandre Sztajnberg

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Aplicações:Cruise Control – CBDT – QoS em CBabelAlexandre Sztajnberg 2o Workshop do Projeto VAS PDPG-TI CNPq 552192/02-3 Novembro / 2004 IC/UFF, Niterói

  2. Agenda • Estado da aplicação do cruise control • Adaptações para o CBabel Tools • interação paralela • guardas com portas assíncronas • do/done com restrições de tempo • CBDT • Estado atual • QoS em CBabel • Objetivos • Estado atual

  3. carInput splitter carController engineOn engineOff accelerator breack carSimulator engine loop getThrottle setThrottle getSpeed cruiseController enableControl disableControl recordSpeed clearSpeed correta cruiseInput on off resume tranco speedController setSpeed speedControlPace sleep 500 Configuração proposta originalmente

  4. Mutex para 4 portas de saída possibilidades Rademaker: macro (escala bem?) Usar guardas uma variável “turn” um guarda por porta a ser mutex breack accelerator engineOn engineOff

  5. Configuração atual... carController splitter carSimulator engine loop throttle speed setThrottle engineOn engineOff accelerator breack cruiseController enableControl disableControl recordSpeed clearSpeed correta cruiseInput on off resume incompleta speedController tranco speedControlPace sleep 500 setSpeed

  6. ( /* Sends the signal to the car engine and to the cruise control */ connector splitter-engineOff { // controles normais de um carro padrao in port oneway engineOff-in; out port oneway engineOff-out1; out port oneway engineOff-out2; interaction { engineOff-in > (engineOff-out1 || engineOff-out2); } } // splitter ) Conector splitter

  7. cruiseControl-con ( connector Controller-br_disa { var int INACTIVE = int(0); var int ACTIVE = int(1); var int CRUISING = int(2); var int STANDBY = int(3); var int controlState = INACTIVE; // controles normais de um carro padrao in port oneway brake; // efeito produzido no cruise control out port oneway disableControl; interaction { brake > guard (controlState==CRUISING) { alternative (ground); before {controlState=STANDBY;} } > disableControl; } } // end Control )

  8. carSimulator-mod module CarSimulator { var float throttle = float (0.0); //throttle setting 0.10 var int speed = int(0); //speed 0 .. 120 mph! var int distance = int(0); //miles*10 var int brakepedal = int(0); // brake setting 0..10 var int maxSpeed = int(120); var float maxThrottle = float(10.0); var int maxBrake = int(10); var float airResistance = maxSpeed/maxThrottle; //inverse air resistance factor var int ticksPerSecond = int(5); in port oneway setThrottle; } ) /** do { throttle=t; brakepedal=b; if (throttle<0.0) throttle=0.0; if (throttle>10.0) throttle=10.0; } **/

  9. speedControl-con ( connector SpeedControl-setSp_setThrot { staterequired int DISABLED; //speed control states staterequired int ENABLED; staterequired int state; //initial state staterequired int setSpeed; //target cruise control speed staterequired int speed; // vem do modulo engine in port oneway setSpeed; out port oneway setThrottle; // !!!!! jogada com statereq interaction { setSpeed > guard (state==ENABLED) { before { error = setSpeed - speed / 6.0; steady = setSpeed / 12.0; speed = steady+error; // ja jogo o valor no modulo... } alternative (ground); } > setThrottle; //simplified feed back control } } )

  10. Próximos passos • Terminar o modelo • Simular • Verificar o zoom...

  11. CBDT • Eclipse 3.11 • Mais estável e flexível no gerenciamento de vários workspaces • Não usa EMF • Problemas reportados pelo André na 2.X persistem na 3.X • Estado • Editor (AntLR) • Árvore (com painéis de edição) • Verificação sintática e semântica (alguma) • Modelo em objetos e Persistência em XML • Perspectivas e Wizards

  12. Perspectivas • Término do Editor… • Editor Gráfico • Gerente de Aplicações • ambiente de execução ? (JMX) • Integração com CBabel Tool • pelo XML? • Direto, gerando Maude?

  13. QoS • Utilizar a sintaxe atual de QoS • Estender o parser atual em AntLR contemplando as construções de QoS • Criar a o modelo interno • Para permitir as traduções e verificações • Reproduzir os componentes de suporte a QoS (em Maude ?) • Para permitir verificações em um nível mais amplo • Uma aplicação de Vídeo-Conferência usando JMF

  14. Estado • Leitura de artigos sobre CR-RIO, QoS, JMF e Vídeo Conferência • Estudo do Eclipse • BNF levantada (segundo os últimos artigos de CR-RIO) • Algum esforço (?) para inserir no AntLR do CBDT

  15. Perspectivas • Semântica para os contratos de QoS • Semântica para o padrão de infra-estrutura • Ainda não temos fechado • o que exatamente verificar (que respostas queremos obter) • Absoluto (dá/não-dá), percentagens ? • Recursos mínimos para implantar um serviço (por exemplo minimizando o custo total? • Estabilidade? • o que podemos prever em termos de QoS para a operação ainda durante a especificação da arquitetura

More Related