INSTITUTO TECNOLÓGICO D
INSTITUTO TECNOLÓGICO D
INSTITUTO TECNOLÓGICO D
INSTITUTO TECNOLÓGICO DE
E
E
E AERONÁ
AERONÁ
AERONÁU
AERONÁ
U
U
UTICA
TICA
TICA
TICA
CE-235 - SISTEMAS EMBARCADO DE TEMPO REAL
LISTA DE EXÉRCICIO 04
Revisão 00
Valdir Guerra Aluno
Professor Dr. Adílson Marques Cunha
ITA
2
1. INTRODUÇÃO1.1.Titulo
Relato Padronizado da disciplina CE235 – SAETR 2013- Projeto de Sistema Avionico Embarcado de Tempo Real – Listex4.
1.2.Motivação
Desenvolver habilidades no desenvolvimento de software aviônico embarcado de tempo real utilizando a ferramenta CASE SCADE, bem como desenvolver experiência em embarcar software de tempo real no RASPBERRY PI utilizando técnicas de desenvolvimento ágil com segurança , qualidade, confiabilidade e estabilidade possíveis de serem certificadas nas normas ARIC 661 e DO-178, a fim reduzir o desperdício de recursos nas futuras fases de integração do meu projeto de tese e nos projetos profissionais.
1.3.Objetivo
Esta ListEx4 tem por objetivo propiciar, aos alunos das disciplinas CES-65 e CE- 235, uma oportunidade para reportarem, em suas Páginas de Índices Individuais (homepages), as suas participações nos desenvolvimentos dos Subsistemas sob a responsabilidade do seu Time de Desenvolvedores.
Esta ListEx 4 deverá conter um Relatório Individual de cada Aluno, reportando sua participação na Entrega de Valor do 3oSprint (2oSprint Delivery) do Proj. SAE-TR 2013. O Relatório desta ListEx 4 deverá conter a participação individual do aluno no seu Grupo de Subsistemas, envolvendo:
1. A entrega das User Stories desenvolvidas no SCADE e verificadas, pelos integrantes das CE-230 e CE-237, quanto a qualidade, confiabilidade, segurança e testabilidade; e
2. A publicação da geração, a partir do SCADE, dos programas-fonte e suas documentações no Repositório do Subversion localizado no menu lateral da página principal do Projeto SAE-TR 2013.
Sugere-se que as demonstrações de valores intermediários desenvolvidos para esta 3ª Sprint Review do Projeto SAE-TR 2013 envolvam: uma Apresentação em MS Powerpoint, por Grupo de Subsistemas, contendo slides com os nomes dos integrantes do Grupo e suas participações no 2oSprint; as User Stories implementadas; os Casos de Teste implementados; os Diagramas do SCADE; os Fragmentos significativos de códigos,
gerados a partir dos Diagramas do SCADE; uma Burndown Chart do 1o Sprint; e um Vídeo-demo.
2. DESENVOLVIMENTO
A User Storie desenvolvida para a 3ª Sprint do Projeto SAE-TR-2013 pelo autor desta listEx foi a de numero US-27 com Prioridade 4 pertencente ao grupo de “Controle Potência e Combustível” (Cont-Pote-Comb)
3
US-027 Eu necessito ligar (e desligar) os motores com autorização da torre, para poder habilitar a utilização do manete e aplicar potência.
Definição de Pronto para grupo CONT-POTE-COMB 3ª Sprint
Entregar, devidamente compiladas e sem erros, as aplicações desenvolvidas no SCADE para os Subsistemas de Controel, Potência e Combustível; 2. Demonstrar o funcionamento apropriado dos "widgets" desenvolvidos dos Subsistemas de Controle, Potência e Combustível; 3. Obter as aceitações dos integrantes da CE-237, quanto a aferição de
testabilidade das User Stories desenvolvidas; e 4. Obter as aceitações dos integrantes da CE-230, quanto as aferições de qualidade, confiabilidade e segurança (safety) das User Stories desenvolvidas; e 5. Integrar os subsistemas de Controle, Potência e Combustível com os substistemas de Navegação, Central de Alarme e Comunicação.
META Para o Grupo CONT-POTE-COMB 3ª Sprint
Entregar as funcionalidades desenvolvidas no 3o Sprint que já se encontrarem
disponíveis, em termos de "widgets", visando propiciar o monitorarmento e o controle dos Subsistemas de Controle, Potência e Combustível, integrados com os substistemas de Navegação, Central de Alarme e Comunicação.
CASO DE TESTE
US-39: Ligar o CDS, modificar o nível de combustível total da aeronave para 10%,50% e 100% .
US-28: Ligar o CDS, modificar o estado da Manete da aeronave para 0%, 50% e 100% do curso total da Manete.
US-29: Ao acionar a manete com nível de potência acima de 60 e abaixo de 20. Ao acionar o manche para esquerda, indicador vindo do sistema de navegação. Ao acionar o manche para direita, indicador vindo do sistema de navegação. Acionar manche para a esquerda, direita e manete acima de 60 e abaixo de 20 com o avião em solo
US-27: Habilitar o botão para ligar o motor somente quando autorizado Desabilitar o botão de ligar o motor quando não houver autorização. Acionar o botão para ligar o motor. Acionar o botão para desligar o motor. Acionar a manete de potência quando o motor estiver
desligado. Acionar a manete de potência quando o motor estiver ligado
ORACLE
US-39: CDS ligado com campo indicando o nível de combustível de cada tanque da aeronave.
Enviar para a central de alarme um parâmetro para que ele identifique que o nível de combustível da aeronave está critico e mostre um aviso no sistema de central de alarmes. Enviar para a central de alarme um parâmetro para que ele identifique que o nível de combustível da aeronave está em zero e mostre um aviso no sistema de central de alarmes. Enviar para a central de alarme um parâmetro para que ele identifique que o nível de combustível da aeronave não está mais em estado critico ou em zero e parar de mostrar os avisos no sistema de central de alarmes.
US-28: CDS ligado com o campo indicando a potência do motor. Enviar para a central de alarme um parâmetro para que ele identifique que o nível de potência da aeronave está em zero e mostre um aviso no sistema de central de alarmes. Enviar para a central de alarme um parâmetro para que ele identifique que o nível de potência da aeronave não está crítico e retirar o aviso no sistema de central de alarmes. Enviar para a central de alarme um
parâmetro para que ele identifique que o nível de potência da aeronave está em 100% e mostrar o aviso no sistema de central de alarmes.
US-29: O horizonte artificial deve exibir o avião no estado subindo. O horizonte artificial deve exibir o avião no estado descendo. O horizonte artificial deve exibir o avião a 45 graus para esquerda. O horizonte artificial deve exibir o avião a 45 graus para direita O Horizonte artificial não deve mudar de estado quando está em solo indicado pelo sensor de amortecedores acionados vindo do sistema de trem de pouso (Sistema hidráulico).
US-27: Mostrar no CDS o botão habilitado quando autorizado pelo sistema de comunicação. Mostrar no CDS o botão desabilitado quando não autorizado pelo sistema de comunicação. Mostrar no CDS estado de motor ligado Exibir no CDS o estado de motor desligado Manete
4
não deve estar ativar para aplicar potência Manete deve estar ativa e a potência deve ser transferida par ao motorAFERIÇÕES DE QUALIDADE - CE-230
Possuir casos de testes, executados com sucesso, para todas as user stories. 2.
Funcionalidades: definidas em alto nível? Foram corretamente desdobradas para o modelo? ( ISO - 25010, DO 178C Objetivos A 2.1, A 2.4, A 4.1, A 5.1).
AFERIÇÕES DE CONFIABILIDADE - CE-230
Compilar sem erros ou avisos (warnings) (DO-178C seção 6.3.5). 2. Os algoritmos do modelo estão corretos? (DO 178C Objetivo A-4.7).
AFERIÇÕES DE SEGURANÇA - CE-230
Instalar e testar o aplicativo no Hardware destino (DO-178C - seção 2.5.5). 2. As US
implementadas do CDS devem permitir que o piloto visualize os parâmetros necessários para a execução dos checklists envolvendo as US selecionadas em cada etapa da Missão atribuída.
1. USER STORIE 27 ENTREGA REALIZADAS
5
2) O Authorization Request inicia a comunicação com o sistema de comunicação,navegação e vigilância.
3) O CDS envia a solicitação de autorização e fica no estado de “WAINTING”
4) Ao receber a autorização do sistema de comunicação e vigilância o CDS exibe o estado de “AUTHORIZED”e então libera o botão ENGINE START para ligar os motores
5) Ao pressionar o botão Engine START os motores são então ligados e o manetes (Levers são liberados para que o piloto de potencia nos motores)
6) Quando o piloto sub o nível dos manetes dando potencia acima de 10% nos motores o CDS concluir a autorização de acionamento dos motores
6
7) Quando o piloto coloca o nível dos manetes em 0% os motores entram em estado de IDLE e libera então o piloto para solicitar autorização para deligamento dos motores através do sistema de comunicação navegação e vigilância utilizando o botão “Authorization Request”
8) O Piloto então solicita autorização para desligar os motores e o CDS entra no estado de “WAINTING”
7
9) O Sistema comunicação navegação e vigilância então libera a autorização paradesligar os motores e o CDS entra no estado de “AUTHORIZED”
10)O CDS uma vez no estado de “AUTHORIZED” libera o botão ENGINE STOP 11)O Piloto pressiona o botão ENGINE STOP e os motores são desligados.
8
12)Ao entrar no estado de motores desligados o CDS retorna ao estado inicial.CODIGO EMBARCADO RASPBERRY PI
O Código foi embarcado com sucesso um micro controlador RASPBERRY PI
O código de aplicação responsável pela integração dos sensores e por toda a logica de execução e controle foi devidamente embarcado um RASPBERRY PI que por sua vez controlava os servidores gráficos rodando em notebooks.
9
EVIDENCIA DO CÓDIGO FONTES10
EVIDÊNCIA DOS DIAGRAMAS DO SCADE US-2711
EVIDÊNCIA DE PUBLICAÇÃO NO SVNEVIDÊNCIA DA APRESETAÇÃO
EVIDÊNCIA DO VIDEO DEMO
Segue o link https://www.youtube.com/watch?v=-sjmoaST7lY&feature=player_embedded
12
Link do projeto completohttps://sites.google.com/site/saetr2013/home
2. PRINCIPAIS CONCLUSÕES
Com a execução da Listex 4 foi possível aprimorar o conhecimento das técnicas de implementação de CDS Cockpit Display System utilizando o SCADE utilizando
interdisciplinaridade utilizando métodos ágeis com ferramenta colaborativas de comunicação e desenvolvimento a distancia.
A implementação do desenvolvimento de MDD através do SCADE se mostrou mais eficiente do que a antiga ferramenta do Rational Rose Real Time, por permitir uma maior interação gráfica com o desenvolvimento logico do software, porem requer muito mais conhecimento. Com esse exercício foi possível concluir que mesmo com os recursos disponíveis no SCADE e sua total aderência as normas de certificação de segurança a correta abstração do modelo e sua implementação logica ainda são essenciais para garantir qualidade, segurança,
confiabilidade e redução do desperdício de tempo no desenvolvimento de novos aplicações.
3. ANEXOS
Anexos 1
<SCADE DOCUMETANTION>
13
Table Of Contents
1.
General Project Description
2.
Software Architecture
2.1.
Project Architecture
2.2.
Call Graph
2.3.
SCADE Display Integration
3.
CONT_POTE_COMB Project
3.1.
Root Elements
3.1.1.
Types
3.1.2.
Constants
3.1.3.
ArtificialHorizon Operator
3.1.3.1. Interface 3.1.3.2. Operator Hierarchy3.1.3.3. Graphical and Textual Diagrams
3.1.4.
ChangeLevel Operator
3.1.4.1. Interface
3.1.4.2. Operator Hierarchy
3.1.4.3. Graphical and Textual Diagrams
3.1.5.
FuelAutonomy Operator
3.1.5.1. Interface
3.1.5.2. Operator Hierarchy
3.1.5.3. Graphical and Textual Diagrams
3.1.6.
FuelManagement Operator
3.1.6.1. Interface
3.1.6.2. Locals
3.1.6.3. Operator Hierarchy
3.1.6.4. Graphical and Textual Diagrams
3.1.7.
FuelPressue Operator
3.1.7.1. Interface
3.1.7.2. Locals
3.1.7.3. Operator Hierarchy
3.1.7.4. Graphical and Textual Diagrams
3.1.8.
FuelRate Operator
3.1.8.1. Interface
3.1.8.2. Operator Hierarchy
3.1.8.3. Graphical and Textual Diagrams
3.1.9.
PowerManagement Operator
3.1.9.1. Interface
3.1.9.2. Locals
3.1.9.3. Operator Hierarchy
3.1.9.4. Graphical and Textual Diagrams
3.1.10.
Reverse Operator
3.1.10.1. Interface
3.1.10.2. Operator Hierarchy
3.1.10.3. Graphical and Textual Diagrams
3.1.11.
Switch Operator
3.1.11.1. Interface
3.1.11.2. Operator Hierarchy
14
List Of Figures
Figure 1: View of diagram_ArtificialHorizon_1 (ArtificialHorizon)
Figure 2: View of diagram_ChangeLevel_1 (ChangeLevel)
Figure 3: View of diagram_FuelAutonomy_1 (FuelAutonomy)
Figure 4: View of diagram_FuelManagement_1 (FuelManagement)
Figure 5: View of diagram_FuelPressue_1 (FuelPressue)
Figure 6: View of diagram_FuelRate_1 (FuelRate)
Figure 7: View of diagram_PowerManagement_1
(PowerManagement)
Figure 8: View of diagram_Reverse_1 (Reverse)
Figure 9: View of diagram_Switch_1 (Switch)
15
List Of Tables
Table 1: Public Types of CONT_POTE_COMB
Table 2: Public Constants of CONT_POTE_COMB
Table 3: Inputs of ArtificialHorizon
Table 4: Outputs of ArtificialHorizon
Table 5: Inputs of ChangeLevel
Table 6: Outputs of ChangeLevel
Table 7: Inputs of FuelAutonomy
Table 8: Outputs of FuelAutonomy
Table 9: Inputs of FuelManagement
Table 10: Outputs of FuelManagement
Table 11: Locals of FuelManagement
Table 12: Inputs of FuelPressue
Table 13: Outputs of FuelPressue
Table 14: Locals of FuelPressue
Table 15: Inputs of FuelRate
Table 16: Outputs of FuelRate
Table 17: Inputs of PowerManagement
Table 18: Outputs of PowerManagement
Table 19: Locals of PowerManagement
Table 20: Inputs of Reverse
Table 21: Outputs of Reverse
Table 22: Inputs of Switch
Table 23: Outputs of Switch
16
1. General Project Description
17
2. Software Architecture
2.1. Project Architecture
This section displays the package hierarchy of projects.
Project
CONT_POTE_COMB
2.2. Call Graph
This Call Graph displays the dependency tree of model operators.
1.
FuelManagement
1.1.
ArtificialHorizon
1.2.
ChangeLevel
[2]
1.3.
FuelAutonomy
1.4.
FuelPressue
1.5.
FuelRate
1.6.
PowerManagement
1.7.
Reverse
1.8.
Switch
[3]
2.3. SCADE Display Integration
This section lists the SCADE Display specifications linked to the SCADE Suite
model, as well as the SCADE Suite operators connected with SCADE Display
graphics.
Linked SCADE Display specification(s):
•
CONT_POTE_COMB
Connected SCADE Suite operator(s):
None
18
3. CONT_POTE_COMB Project
3.1. Root Elements
3.1.1. Types
Table 1: Public Types of CONT_POTE_COMB
Name Definition Comments and
Information IntMsg {Transmit : bool, Value : int}
T_STRING13 char ^STR_SIZE13
3.1.2. Constants
Table 2: Public Constants of CONT_POTE_COMB
Name Type Value Comments and
Information A661_FALSE int 0 A661_SELECTED int 1 A661_TRUE int 1 AUTH_ENGINE_NOTHING int 0 AUTH_ENGINE_START int 1 AUTH_ENGINE_STOP int 2
AUTHORIZED T_STRING13 ['A', 'U', 'T', 'H', 'O', 'R', 'I', 'Z', 'E', 'D', ' ', ' ', ' ']
CLEAR T_STRING13 [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ']
Constant20 bool false
critical_level int 1948534016
delta_level int 177763924
disabled int 0
enabled int 1
ENGINE_START T_STRING13 ['E', 'N', 'G', 'I', 'N', 'E', ' ', 'S', 'T', 'A', 'R', 'T', ' '] ENGINE_STOP T_STRING13 ['E', 'N', 'G', 'I', 'N', 'E', ' ',
'S', 'T', 'O', 'P', ' ', ' '] fuel_empty int 2133167088 fuel_full int 0 fuel_type1 int 74 fuel_type2 int 21 fuel_type3 int 41 SAFETY_STOP_LEVER real 10.0 STR_SIZE13 int 13
WAINTING T_STRING13 ['W', 'A', 'I', 'T', 'I', 'N', 'G', '.', '.', '.', ' ', ' ', ' ']
3.1.3. ArtificialHorizon Operator
Declared as
public node
3.1.3.1. Interface
Table 3: Inputs of ArtificialHorizon
Name Type Comments and Information
btnLeft bool
btnReset bool
19
btnUp bool
btnDown bool
Table 4: Outputs of ArtificialHorizon
Name Type Comments and Information
outputYaw real
outputPitch int
3.1.3.2. Operator Hierarchy
diagram :
diagram_ArtificialHorizon_1
3.1.3.3. Graphical and Textual Diagrams
3.1.3.3.1. View of diagram_ArtificialHorizon_1 (ArtificialHorizon)
Figure 1: View of diagram_ArtificialHorizon_1 (ArtificialHorizon)
3.1.4. ChangeLevel Operator
Declared as
public node
3.1.4.1. Interface
Table 5: Inputs of ChangeLevel
Name Type Comments and Information
PlusButton bool MinusButton bool
Rate int
Table 6: Outputs of ChangeLevel
Name Type Comments and Information
level int criticalLevel bool fuelLevelPercent int emptyLevel bool
3.1.4.2. Operator Hierarchy
diagram :
diagram_ChangeLevel_1
3.1.4.3. Graphical and Textual Diagrams
20
Figure 2: View of diagram_ChangeLevel_1 (ChangeLevel)
3.1.5. FuelAutonomy Operator
Declared as
public function
3.1.5.1. Interface
Table 7: Inputs of FuelAutonomy
Name Type Comments and Information
total_autonomy real
safety_factor int
fuel_level_left_tank_percent int fuel_level_right_tank_percent int Table 8: Outputs of FuelAutonomy
Name Type Comments and Information
autonomy real
3.1.5.2. Operator Hierarchy
diagram :
diagram_FuelAutonomy_1
3.1.5.3. Graphical and Textual Diagrams
3.1.5.3.1. View of diagram_FuelAutonomy_1 (FuelAutonomy)
Figure 3: View of diagram_FuelAutonomy_1 (FuelAutonomy)
3.1.6. FuelManagement Operator
Declared as
public node
3.1.6.1. Interface
Table 9: Inputs of FuelManagement
Name Type Comments and Information
LeftPlus bool PressureMinus bool TimeButton bool PressurePlus bool RightPlus bool TankLeftState IntMsg
21
TankRightState IntMsg RightPowerInput real LeftPowerInput real btnReverse int FuelTypeRightControl int FuelTypeLeftControl int HorizontBtnLeft bool HorizontBtnRight bool HorizontBtnUp bool HorizontBtnDown bool HorizontBtnReset bool EngineStartStopBtn bool AuthorizationRequestBtn bool AuthorizationResponseBtn bool Table 10: Outputs of FuelManagementName Type Properties Comments and
Information
HorizontOutputPitch int
HorizontOutputYaw real
LeftLevel int default 1066583544
RightLevel int default 1066583544
Emit bool Layer1Visible bool Layer1Active bool RefuelLeftPlusEnable IntMsg RefuelLeftMinusEnable IntMsg RefuelRightPlusEnable IntMsg RefuelRightMinusEnable IntMsg RightPowerOutput int RightPowerOutput1 int LeftPowerOutput int LeftPowerOutput1 int toggleLabelReverse bool FuelTypeLeftLed int FuelTypeRightLed int
FuelTypeLeftControlEnabled int default 0 FuelTypeRightControlEnabled int default 0
FuelPressure real PressureLabelColor int BlinkingPressure int x1 int x2 int x3 int
22
FuelAutonomyDisplay real CEALCriticalFuelLevel bool CEALEmptyFueLevel bool PowerManagementEnable int EngineStartStopLabel T_STRING13 String13 int EngineStartStopEnable int AuthorizationRequestDisplay T_STRING13 AuthorizationRequestQPort int AuthorizationRequestEnable int3.1.6.2. Locals
Table 11: Locals of FuelManagement
Name Type Properties Comments and
Information authorizating bool authorizationRequest int authorized bool engineState bool fuelpressure real lastAutorizantion int LeftPowerLever real RightPowerLever real
TankLeftLevel int default 0
TankRightLevel int default 0
3.1.6.3. Operator Hierarchy
diagram :
diagram_FuelManagement_1
3.1.6.4. Graphical and Textual Diagrams
23
Figure 4: View of diagram_FuelManagement_1 (FuelManagement)
3.1.7. FuelPressue Operator
Declared as
public node
3.1.7.1. Interface
Table 12: Inputs of FuelPressue
Name Type Comments and Information
PressureMinus bool PressurePlus bool Table 13: Outputs of FuelPressue
Name Type Properties Comments and
Information FuelPressure real default 90.0
PressureLabelColor int
BlinkingPressure int
24
Table 14: Locals of FuelPressue
Name Type Comments and Information
FuelPressureAux real
3.1.7.3. Operator Hierarchy
diagram :
diagram_FuelPressue_1
3.1.7.4. Graphical and Textual Diagrams
3.1.7.4.1. View of diagram_FuelPressue_1 (FuelPressue)
Figure 5: View of diagram_FuelPressue_1 (FuelPressue)
3.1.8. FuelRate Operator
Declared as
public function
3.1.8.1. Interface
Table 15: Inputs of FuelRate
Name Type Comments and Information
LeftPower int
RightPower int FuelPressure real Table 16: Outputs of FuelRate
Name Type Comments and Information
x3 int
x2 int
x1 int
3.1.8.2. Operator Hierarchy
diagram :
diagram_FuelRate_1
3.1.8.3. Graphical and Textual Diagrams
25
Figure 6: View of diagram_FuelRate_1 (FuelRate)
3.1.9. PowerManagement Operator
Declared as
public function
3.1.9.1. Interface
Table 17: Inputs of PowerManagement
Name Type Comments and Information
RightPowerInput real LeftPowerInput real
Table 18: Outputs of PowerManagement
Name Type Comments and Information
RightPowerOutput int RightPowerOutput1 int LeftPowerOutput int LeftPowerOutput1 int
3.1.9.2. Locals
Table 19: Locals of PowerManagement
Name Type Comments and Information
leftEngine int rightEngine int
3.1.9.3. Operator Hierarchy
diagram :
diagram_PowerManagement_1
3.1.9.4. Graphical and Textual Diagrams
3.1.9.4.1. View of diagram_PowerManagement_1 (PowerManagement)
26
3.1.10. Reverse Operator
Declared as
public function
3.1.10.1. Interface
Table 20: Inputs of Reverse
Name Type Comments and Information
btnReverse int Table 21: Outputs of Reverse
Name Type Comments and Information
toggleLabelReverse bool
3.1.10.2. Operator Hierarchy
diagram :
diagram_Reverse_1
3.1.10.3. Graphical and Textual Diagrams
3.1.10.3.1. View of diagram_Reverse_1 (Reverse)
Figure 8: View of diagram_Reverse_1 (Reverse)
3.1.11. Switch Operator
Declared as
public node
3.1.11.1. Interface
Table 22: Inputs of Switch
Name Type Comments and Information
Input1 bool
Table 23: Outputs of Switch
Name Type Comments and Information
Output1 bool
3.1.11.2. Operator Hierarchy
diagram :
diagram_Switch_1
3.1.11.3. Graphical and Textual Diagrams
3.1.11.3.1. View of diagram_Switch_1 (Switch)