Skip to main content

Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "Building a remote-controlled Rover"

(Created page with "Systems requirements engineering *communication interface, steering/motor interfaces *Internal protocols System Architecture *Components - communication HW, engine, servos to...")
 
m
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Systems requirements engineering
+
==DRAFT==
 +
This is a draft example of a workflow description for specific [https://www.eclipse.org/app4mc/ APP4MC] use cases. Future use cases may include:
 +
 
 +
*I have single core software system and I want to migrate to multi-core system
 +
*I’m starting with multi-core development - how can APP4MC help me
 +
 
 +
 
 +
===I'm building a remote-controlled Rover===
 +
 
 +
'''Systems requirements engineering'''
 
*communication interface, steering/motor interfaces
 
*communication interface, steering/motor interfaces
 
*Internal protocols
 
*Internal protocols
  
System Architecture
+
'''System Architecture'''
 
*Components - communication HW, engine, servos to control steering, CPU or embedded system on a chip, chassis, wheels, remote control device (tablet, PC)
 
*Components - communication HW, engine, servos to control steering, CPU or embedded system on a chip, chassis, wheels, remote control device (tablet, PC)
 
*Create a preliminary mapping from SW to HW
 
*Create a preliminary mapping from SW to HW
Line 9: Line 18:
 
*Define - hardware, software, OS, (timing) constraints - models (APP4MC)
 
*Define - hardware, software, OS, (timing) constraints - models (APP4MC)
  
Software requirements
+
'''Software requirements'''
 
*Receive status messages from the Rover, for example heading, speed, obstacle warning, temperature
 
*Receive status messages from the Rover, for example heading, speed, obstacle warning, temperature
 
*Receive video feed in future version
 
*Receive video feed in future version
  
Software architecture
+
'''Software architecture'''
*It should implement an MQTT client that sends out status information (direction, speed, obstacle insight) via XXX communication (wifi) stack. (Tools: Mechantronic UML, Rhapsody, Papyrus RT? etc)
+
*It should implement an MQTT client that sends out status information (direction, speed, obstacle insight) via XXX communication (wifi) stack.  
 +
**Tools: Mechantronic UML, Rhapsody, Papyrus RT? etc
 
*Refine SW to HW mapping (Tools: APP4MC)
 
*Refine SW to HW mapping (Tools: APP4MC)
  
Behavior modeling
+
'''Behavior modeling'''
 
*Describe behavior of software components
 
*Describe behavior of software components
 
**state charts for protocols
 
**state charts for protocols
Line 24: Line 34:
 
**Tools: APP4MC
 
**Tools: APP4MC
  
Implementation
+
'''Implementation'''
 
*Test design, implementation of software, software integration and code review  
 
*Test design, implementation of software, software integration and code review  
 
*Define which parts of the software run on which core depending on OS, partitioning model, timing model
 
*Define which parts of the software run on which core depending on OS, partitioning model, timing model
Line 30: Line 40:
 
**taskset (1) :
 
**taskset (1) :
  
Validation
+
'''Validation'''
 
*Simulation (Tools: TA, Linux tools from Ericsson <?> )
 
*Simulation (Tools: TA, Linux tools from Ericsson <?> )
 
*Trace (APP4MC, TraceCompass)
 
*Trace (APP4MC, TraceCompass)
  
System Integration
+
'''System Integration'''
 
*Create executables, partitioning, task creation, target mapping
 
*Create executables, partitioning, task creation, target mapping
 
*Tools: APP4MC
 
*Tools: APP4MC

Latest revision as of 06:18, 18 January 2017

DRAFT

This is a draft example of a workflow description for specific APP4MC use cases. Future use cases may include:

  • I have single core software system and I want to migrate to multi-core system
  • I’m starting with multi-core development - how can APP4MC help me


I'm building a remote-controlled Rover

Systems requirements engineering

  • communication interface, steering/motor interfaces
  • Internal protocols

System Architecture

  • Components - communication HW, engine, servos to control steering, CPU or embedded system on a chip, chassis, wheels, remote control device (tablet, PC)
  • Create a preliminary mapping from SW to HW
  • Identify minimal hardware capabilities (APP4MC)
  • Define - hardware, software, OS, (timing) constraints - models (APP4MC)

Software requirements

  • Receive status messages from the Rover, for example heading, speed, obstacle warning, temperature
  • Receive video feed in future version

Software architecture

  • It should implement an MQTT client that sends out status information (direction, speed, obstacle insight) via XXX communication (wifi) stack.
    • Tools: Mechantronic UML, Rhapsody, Papyrus RT? etc
  • Refine SW to HW mapping (Tools: APP4MC)

Behavior modeling

  • Describe behavior of software components
    • state charts for protocols
    • Tools: Papyrus, Mechatronic UML
  • Access types, timing information (periods, deadlines), order constraints
    • Tools: APP4MC

Implementation

  • Test design, implementation of software, software integration and code review
  • Define which parts of the software run on which core depending on OS, partitioning model, timing model
    • Tools: APP4MC
    • taskset (1) :

Validation

  • Simulation (Tools: TA, Linux tools from Ericsson <?> )
  • Trace (APP4MC, TraceCompass)

System Integration

  • Create executables, partitioning, task creation, target mapping
  • Tools: APP4MC

Back to the top