1 / 14

Projeto: Desenvolvimento do software de opera ç ão do experimento FOTANTAR-3 para medir temperatura da alta atmosfera

Projeto: Desenvolvimento do software de opera ç ão do experimento FOTANTAR-3 para medir temperatura da alta atmosfera. CAP 365 – Ferramentas e Paradigmas de Desenvolvimento de Software Instituto Nacional de Pesquisas Espaciais (INPE) Primavera Botelho de Souza São José dos Campos

barbie
Download Presentation

Projeto: Desenvolvimento do software de opera ç ão do experimento FOTANTAR-3 para medir temperatura da alta atmosfera

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. Projeto: Desenvolvimento do software de operação do experimento FOTANTAR-3 para medir temperatura da alta atmosfera CAP 365 – Ferramentas e Paradigmas de Desenvolvimento de Software Instituto Nacional de Pesquisas Espaciais (INPE) Primavera Botelho de Souza São José dos Campos Dezembro de 2006

  2. Aplicação A pesquisa em luminescência atmosférica desenvolvida pelo grupo LUME da Divisão de Aeronomia do INPE consiste em estudar fenômenos na região da alta atmosfera. O experimento FotAntar3 deverá medir a temperatura da alta atmosfera na Antártica com o propósito de investigar a resposta da região frente às mudanças climáticas globais (registros de longo prazo > 1 década.). • Termos de Variabilidade:ciclo solar, sazonal, diurna, marés e ondas planetárias; • Relações entre a dinâmica do buraco de ozônio e a atividade de ondas planetárias na região. LUME/INPE - http://www.laser.inpe.br/lume/

  3. Fonte: Wrasse, 2000. Fonte: Wrasse, 2005. Fonte: Gobbi, 2000. Fonte: Gobbi, 2005. Histórico FotAntar-3 FotAntar-1 e 2 Fotomultiplicadora - modo de contagem; seleciona o espectro da emissão através de filtro de interferência inclinável. Softwares de operação construídos em Visual Basic (“cultura do grupo”). CCD alta resolução – armazena fótons em um dado tempo de exposição; seleciona o espectro da emissão através de filtro de interferência. Intenção de aproveitar o software em VB desenvolvido para fotômetros.

  4. Motivação Características intrínsecas da linguagem deprogramação Visual Basicacarretaram na perda de resolução da imagem, além de interferir na velocidade de transferência da imagem adquirida. • Surge a necessidade de adotar outra linguagem, cujas características permitissem: • Máxima qualidade da imagem adquirida; • Rapidez no processo de amostragem; • Contemplar uma classe de novos imageadores.

  5. Objetivo Desenvolverem C++ um software de operaçãoque satisfaça aos requisitos de qualidade e velocidade da imagem adquirida, bem como privilegie o reuso para uma classe de imageadores similares, destinados a medir temperatura da alta atmosfera.

  6. Solução em C++ • Drivers fornecidos pelo fabricante do imageador: Santa Barbara Instrument Group (SBIG) são suportados pelas linguagens VB, Delphi e C++. • Imagem adquirida é uma matriz do tipo inteiro não-sinalizado-16 bits. • Recomendação do fabricante para perdas mínimas na qualidade e bom desempenho na leitura durante transferência através da interface paralela: utilizar o tipo unsigned short. Fonte: http://www2.fundao.pro.br

  7. Comparação entre os códigos Leitura da imagem em: Visual Basic C++ For j = 0 To 1023 If j Mod 20 = 0 Then lblprogress.Caption = Str(j + 1) lblprogress.Refresh End If i = SBIGUnivDrvCommand(CC_READOUT_LINE, rlp, linedata(0)) If i <> 0 Then MsgBox "Readout exposure command failed for line " & Str(j) Exit Sub End If ' Visual Basic does not have word data types, so I truncate ' the data to avoid negative values For k = 0 To 1023 If linedata(k) > 0 Then imagedata(k, j) = linedata(k) Else imagedata(k, j) = 32767 End If Next 'k t0 = GetTickCount(); /* Reading Data */ rlp.ccd = CCD_IMAGING; rlp.readoutMode = 1; rlp.pixelStart = 0; rlp.pixelLength = 765; for(i=0; i<510; i++){ res = SBIGUnivDrvCommand(CC_READOUT_LINE, &rlp, iimage[i]); if(res != CE_NO_ERROR){ sprintf(s,"Readout Line Error = %d at row %d",res, i); MessageBox(NULL, s, "SBIG Test Message", MB_OK); return; } } t0 = GetTickCount() - t0; sprintf(s,"Time for download = %1.2lf seconds",t0/1000.0); MessageBox(NULL, s, "SBIG Test Message", MB_OK);

  8. Comparação entre as imagens obtidas Visual Basic C++

  9. Motivação Características intrínsecas da linguagem deprogramação Visual Basicacarretaram na perda de resolução da imagem, além de interferir na velocidade de transferência da imagem adquirida. • Surge a necessidade de adotar outra linguagem, cujas características permitissem: • Máxima qualidade da imagem adquirida; • Rapidez no processo de amostragem; • Contemplar uma classe de novos imageadores.

  10. Como construir em C++ um software de operação adequado a novos imageadores? • Critérios a serem avaliados: • Não se trata apenas de uma transcrição entre linguagens; • Projeto de classes compatível com as características do software de tempo real; • Migrar utilizando padrões para garantir reuso; • Funções pré-definidas para esta classe de imageadores: • Estabelecer comunicação • Abrir shutter • Adquirir imagem • Transferir imagem • Fechar shutter

  11. Fonte: Gamma et al. 1995. Design Pattern Adequado Pattern Comportamental “Chain of Responsibility" (Cadeia de Responsabilidades). Estrutura: • Vantagens: • Acoplamento reduzido • Maior flexibilidade ao atribuir responsabilidades aos objetos. • Desvantagens: • Não há garantia de recebimento da solicitação.

  12. Implementação do Modelo MFC – Microsoft Foundation Class: Application Framework //////////////////////////////////////////////////// // mstst32.cpp : Defines the class behaviors for the application BEGIN_MESSAGE_MAP(CMstst32App, CWinApp) //{{AFX_MSG_MAP(CMstst32App) ON_COMMAND(ID_APP_ABOUT, OnAppAbout) ON_COMMAND(ID_CAMERA_ESTABLISH2NDLINK, OnCameraEstablish2ndlink) ON_COMMAND(ID_CAMERA_DUMPLINESTIMING, OnCameraDumpLinesTiming) //}}AFX_MSG_MAP // Standard file based document commands ON_COMMAND(ID_FILE_NEW, CWinApp::OnFileNew) ON_COMMAND(ID_FILE_OPEN, CWinApp::OnFileOpen) ON_COMMAND(ID_CAMERA_OPENDRIVER, OnCameraOpenDriver) ON_COMMAND(ID_CAMERA_CLOSEDRIVER, OnCameraCloseDriver) ON_COMMAND(ID_CAMERA_GETDRIVERINFO, OnCameraGetDriverInfo) ON_COMMAND(ID_CAMERA_ESTABLISHLINK, OnCameraEstablishLink) ON_COMMAND(ID_CAMERA_GETCCDINFO, OnCameraGetCCDInfo) ON_COMMAND(ID_CAMERA_TAKETRACKINGIMAGE, OnCameraTakeTrackingImage) ON_COMMAND(ID_CAMERA_TAKEIMAGINGIMAGE, OnCameraTakeImagingImage) ON_COMMAND(ID_CAMERA_UPDATECLOCK, OnCameraUpdateClock) END_MESSAGE_MAP() /////////////////////////////////////////////////// //CMstst32App construction CMstst32App::CMstst32App() // Only CMstst32App object CMstst32App theApp; void CMstst32App::OnCameraOpenDriver() . . void CMstst32App::OnCameraCloseDriver() . . void CMstst32App::OnCameraGetDriverInfo() . . void CMstst32App::OnCameraEstablishLink() . . void CMstst32App::OnCameraGetCCDInfo() . . void CMstst32App::OnCameraTakeTrackingImage() . . void CMstst32App::OnCameraTakeImagingImage() . . void CMstst32App::OnCameraUpdateClock() .

  13. Resultado Final

  14. Considerações Finais Os requisitos de qualidade e rapidez da imagem adquirida levaram ao desenvolvimento de um módulo em C++. No entanto, esta solução parcial não atenderia a facilidade de se dispor de um software adaptável e reutilizável. A implementação do modelo gerou um protótipo que mostrou-se bastante adequado as características de um software de operação, sendo um passo inicial para a implementação em C++ do software final, onde serão integrado os módulos desenvolvidos anteriormente e agregadas outras funcionalidades. A utilização de um padrão promoveu ainda clareza no código para manutenção do mesmo, bem como para adaptação aos novos imageadores.

More Related