SlideShare uma empresa Scribd logo
1 de 53
Baixar para ler offline
Use Eclipse Technologies to build a modern
       embedded development IDE.


          Gaétan Morice – Benjamin Cabé
                October 28th, 2009
Embedded Modeling IDE
      Requirements
Requirements


• What is M2M ?


                                                                        API/Web
                                                                        Services

                    Asset        Communication           Connectivity               Customer
                                    Device                Network                  Application




• Definition : “M2M refers to data communication between machines.”




        © Sierra Wireless inc. – Made available under EPL v1.0
Requirements




                                                                                         API/Web
                                                                                         Services

                 Asset        Communication           Connectivity                                      Customer
                                 Device                Network       Operated & Hosted                 Application
                                                                       M2M Services
                                                                         Platform

                            Hosted and operated M2M services platform. Highly scalable, available and secure.
                           Provides APIs to develop web-based custom designed applications.


                           Open embedded agent integrated in virtually any cell devices (Airlink box, modules
                          embedded in OEM equipment, custom box etc. both from Sierra or other 3rd party).


                            Patented world class Eclipse based IDE to develop embedded applications
                           and to generate widgets for end-users.




     © Sierra Wireless inc. – Made available under EPL v1.0
Requirements


 • Embedded development (Machine-to-Machine)

 • Modeling environment

 • Component-oriented approach


   Model                    Code                       Binary       Target   Execution   Debug




           © Sierra Wireless inc. – Made available under EPL v1.0
Requirements


• Users profiles
  ►Newbies
  ►Solution providers

• Multiple targets
  ►Sierra Wireless devices
  ►Embedded Linux
  ►…




       © Sierra Wireless inc. – Made available under EPL v1.0
Embedded Modeling IDE
    Technical Solution
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target         Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Features




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Modeling
                                                                        Model

• EMF - Eclipse Modeling Framework
  ►The model is the pillar of the tool
  ►Used to model what an embedded project is
  ►Benefits from EMF
     –Notifications
     –Serialization
     –Reflective API
     –… all the incredible EMF tools (GMF, Validation, Xpand, Ecore Tools, …)




       © Sierra Wireless inc. – Made available under EPL v1.0
Modeling
                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Features


                                                                      Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                        Navigator




• Objectives                                                    Model


  ►1:1 Mapping between Project and Model
  ►Display informations in the model as project’s artefacts




       © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                     Navigator




• Workspace integration                                                                 Model


  ►AdapterFactory transforms
      –IProject into Model Project
      –Model Project into Iproject


    public class ProjectAdapterFactory implements IAdapterFactory {
         @Override
         public Object getAdapter(Object adaptableObject, Class adapterType) {
              Object result = null;
              // Bi-directional adapter IProject <----> M2MProject
              if (adaptableObject instanceof IProject && adapterType.equals(Project.class)) {
                   result = adaptToModel((IProject) adaptableObject);
              }
              else if (adaptableObject instanceof Project && adapterType.equals(IProject.class)) {
                   result = adaptIProject((Project) adaptableObject, adapterType);
              }
              return result;
         }
    }




         © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                        Navigator




• Workspace integration                                                                   Model


     ►EMF Transaction
         –Global model repository
         –Transactional Editing Domain



 public class ProjectActivator extends Plugin {

      public static final String TRANSACTIONAL_EDITING_DOMAIN_ID = "com.anwrt.ec598.project.editingDomain";

      ...
      public TransactionalEditingDomain getEditingDomain(){
           TransactionalEditingDomain shared = TransactionalEditingDomain.Registry.INSTANCE
                                            .getEditingDomain(TRANSACTIONAL_EDITING_DOMAIN_ID);
           return shared;
      }
      ...
 }




            © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                  Navigator




 • Project Explorer                                                       Model


   ►Displays model objects as the Project structure
   ►Based on Common Navigator Framework
       –Extensible tree view
       –Rather complex API
       –But really powerful


              Extension Points: org.eclipse.ui.navigator.*
              Excellent tutorial: “Building a Common Navigator based viewer”


   ►We use an internal model to define the structure (nodes only
   used to group or display informations)

       © Sierra Wireless inc. – Made available under EPL v1.0
Navigator
                                                                                                      Navigator




• Project Explorer                                                                            Model


  ►Result



                       EMF Objects
                                                                Model contribution


                 Navigation nodes


                                                                CDT contribution




                                                                Default display (resources)




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                                                                        Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Model dition
                                                                                                   Editors




• Forms editors                                                                                    Model

  ►Forms + EMF + databinding
     –Create UI
         private void createContent(FormToolkit toolkit, Composite parent) {
              Composite composite = toolkit.createComposite(parent, SWT.NONE);
              GridDataFactory.fillDefaults().grab(true, false).applyTo(composite);
              GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite);

                toolkit.createLabel(composite, "Name:", SWT.NONE);
                _textName = toolkit.createText(composite, "", SWT.BORDER);
                GridDataFactory.fillDefaults().grab(true, false).applyTo(_textName);
         }



     –Bind UI to model
         private void bind() {
              DataBindingContext bindingContext = new EMFDataBindingContext();
              // -- Bind the Name
              bindingContext.bindValue(SWTObservables.observeText(_textName, SWT.FocusOut),
                   EMFEditObservables.observeDetailValue(Realm.getDefault(), getEditingDomain(),
                   _myEObject, M2MPackage.eINSTANCE.getINamedElement_Name()));
         }


       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                               Editors




• Forms editors                                                                Model

  ►Result




                 Available in PDE Incubator:
                 EMF-Forms Editor to be used for next-generation PDE editors


       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                                                       Editors




• Graphical Editor: GMF                                                                                Model

  ►Uses GMF generator to bootstrap

                                            GMF generation
                    Model
                                                                Generated   Customization
                                                                  editor
                                                                                            Modified
                                                                                             editor


  ►Heavy use of GMF Runtime




       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                 Editors




• Graphical Editor: GMF                                          Model

  ►Other features
     –Rotation
     –Automatic port creation
     –HTML Tooltips
     –Extensible presentation
       •Custom figures can be defined using an extension point




       © Sierra Wireless inc. – Made available under EPL v1.0
Model edition
                                                                Editors




• Graphical Editor: GMF                                         Model

  ►Result




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model




     © Sierra Wireless inc. – Made available under EPL v1.0
Model validation
                                                                                 Validation




• EMF Validation                                                                              Model


  ►Extensible (needed for specific-target constraints)
  ►Constraints are registered using an extension point


                            Extension points: org.eclipse.emf.validation.*

  ►We use only the batch mode

           public IStatus validate (EObject model, IProgressMonitor monitor) {
                IBatchValidator batchValidator = ModelValidationService.getInstance()
                                            .newValidator(EvaluationMode.BATCH);
                batchValidator.setIncludeLiveConstraints(true);
                batchValidator.setReportSuccesses(false);
                return batchValidator.validate(model, monitor);
           }




       © Sierra Wireless inc. – Made available under EPL v1.0
Model validation
                                                                                                  Validation




  ►Integrated in a builder                                                                                     Model


     –Transparent and automatic (on save)
     –Uses Problem Markers
     –Coupled with quick fixes for a better user experience




                                                    Validation decorators are based on
                                                    markers generated by the Validation builder




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model




                                                              Code




     © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                                       Model



• Xpand                                                                                Code

  ►Performance issue
     –Workflow is too slow then use only Java API
  ►Example of template
                 «IMPORT model»
                 «DEFINE file FOR SourceComponentClass»
                 «FILE project.name.toLowerCase() + "/" + name + ".java"-»
                 package «project.name.toLowerCase()»;

                 public class «name» extends ComponentClass {

                 «IF methods.select(m | m.kind.toString() == "EVENT").size > 0»
                      public void receiveEvent(int inputEventMethod, Object value) {
                 «FOREACH methods.select(m | m.kind.toString() == "EVENT") AS m-»
                           // TODO handle Event: " + «m.name.toUpperCase()»:
                 «ENDFOREACH-»
                      }
                 «ENDIF»
                 }
                 «ENDFILE»
                 «ENDDEFINE»




      © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                                                  Model



• Xpand                                                                                           Code

  ►Call the Xpand generator programmatically
    public void generate(final EObject object, IProgressMonitor monitor) throws CoreException {
         Generator generator = new Generator();

         // define the metamodel used in the template
         MetaModel m2mMetamodel = new EmfMetaModel(M2MPackage.eINSTANCE);
         generator.addMetaModel(m2mMetamodel);
         // define the template
         generator.setExpand("templates::SourceComponentClass::file FOR component");
         // define the output folder
         Outlet outlet = new Outlet("C:/myOutput/src");
         generator.addOutlet(outlet);
         // configure protected regions
         generator.setPrSrcPaths("C:/myOutput/src");
         generator.setPrDefaultExcludes(true);
         // define the EObject input
         WorkflowContextDefaultImpl ctx = new WorkflowContextDefaultImpl();
         ctx.set("component", object);
         // run the generator
         generator.invoke(ctx, new ProgressMonitorAdapter(monitor), new IssuesImpl());
    }




        © Sierra Wireless inc. – Made available under EPL v1.0
Code generation
                                                                Model



• Integrated in a builder                                       Code

  ►Transparent and automatic (on save)
  ►Synchronization between model and code
  ►Incremental generation




       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

                                                              Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Code editors and navigator
                                                                         Editor

                                                                 Code

• CDT
                                                                        Navigator




  ►Code navigation
  ►Syntax highlight
  ►Content assist
  ►Refactoring
  ►…

• LuaEclipse
  ►Currently not based on DLTK but under development



        © Sierra Wireless inc. – Made available under EPL v1.0
Code editors and navigator
                                                                         Editor

                                                                 Code

• CDT
                                                                        Navigator




        © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

                                                              Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Round-tripping
                                                                Model



• Mandatory for a good user experience                          Code


• Be able to edit code or model indifferently
  ►Continuous synchronization

• First study: EMF Compare
  ►Good candidate but too rich for our needs
  ►Solution: Direct modification of existing models




       © Sierra Wireless inc. – Made available under EPL v1.0
Round-tripping
                                                                                                                    Model



• Solution                                                                                                          Code

  ►Integrated in a builder
  ►Synchronize Model and AST                                                       Code

  ►From code to model:                                                                   Based on existing parser


                                                                                    AST
                                                                                         Java transformation


                                                  Model                           Model
                                             (previous version)               (extract from code)


                                                                          Merge


                                                                    Model
                                                                  (new version)


       © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                   Compilation    Code



• CDT - Managed Build System (MBS)
  ►Declarative creation of custom tool chains
     –Through MBS Extension point
     –Direct integration in CDT builder and preference
     –A bit complex
             Extension Point: org.eclipse.ui.managebuilder.core.buildDefinition
             Excellent tutorial: CDT Plug-in Developer Guide

  ►Mechanism of scanner discovery profiles to find tools binaries
             Extension Point:
             org.eclipse.cdt.make.core.ScannerConfigurationDisccoveryProfile




       © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                                               Compilation              Code



• CDT – MBS
   ►Result
                                                                       Binaries packages for download on device



Options




                                                                       Compiler and linker for the device (based on ARM GCC)
          Tools




                                                                        Binary post-processors to match device caracteristics




              © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                Compilation   Code



• CDT - Dependencies management
  ►Dependencies management
     –Difficult with CDT
     –Configuration, build artefacts, libraries include, header include to manage
     –No generic rule => have to be hand craft
     –Use of CDT API to access projects description
     –Managed by refactoring process




       © Sierra Wireless inc. – Made available under EPL v1.0
Compilation
                                                                               Compilation           Code



• CDT - Dependencies management
 public class ModifyCProjectDependenciesChange extends Change {

     private final IProject project;

     ...
     public Change perform(IProgressMonitor pm) throws CoreException {
          ICProjectDescription projectDescription = CDTPropertyManager.getProjectDescription(project);

           ICConfigurationDescription[] configurationDescription = projectDescription.getConfigurations();

           ...
     }
     ...
 }




           © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




                                                              Target



     © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target



     © Sierra Wireless inc. – Made available under EPL v1.0
Target communication
                                                                Communication   Target


• Objectives:
  ►make device's services available
     –Download
     –Terminal
     –…
  ►De-coupling of services and communication channel
  ►Extensible




       © Sierra Wireless inc. – Made available under EPL v1.0
Target communication
                                                                               Communication              Target


• Target Communication Framework - TCF
  ►Embedded agent
  ►Asynchronous                                                       Launch                   Terminal
                                                                      Config                     View
  ►Protocol based on
  ►Command, Result                                                   Download                  Terminal
  ►Event                                                              Service                  Service



                            Connection
                                                               TCF              Channel
                             Manager


                                                                               Embedded
                                                                                 Agent
      © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                      Navigator




                                                              Model


                                                                               Editor

            Compilation                                       Code
                                                                             Navigator




       Communication                                          Target         Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Target navigator
                                                               Target   Navigator




• Remote System Explorer - RSE
  ►GUI framework
  ►Tree Explorer
  ►Match well with TCF




      © Sierra Wireless inc. – Made available under EPL v1.0
Target navigator
                                                               Target   Navigator




• Remote System Explorer




      © Sierra Wireless inc. – Made available under EPL v1.0
Features

                                                              Editors
                        Validation                                              Navigator
                                                                   Forms
                                             EMF Validation        GMF
                                                                                Project Explorer + CNF

                                                              Model

                                                 Xpand                  AST
                                                                                           Editor
                                       CDT
            Compilation                                       Code              CDT + DLTK


                                                                                        Navigator



                                       TCF                                    RSE
       Communication                                          Target                     Navigator




     © Sierra Wireless inc. – Made available under EPL v1.0
Embedded Modeling IDE
     Demonstration
Embedded Modeling IDE
       Conclusion
The benefits of a large ecosystem


• Allows to create really complex environment quickly

• Covers differents kinds of domains

• Offers reactive support with the community

• Allows to focus on real added value




       © Sierra Wireless inc. – Made available under EPL v1.0
Questions?
    Gaétan Morice
gmorice@sierrawireless.com

   Benjamin Cabé
 bcabe@sierrawireless.com

Mais conteúdo relacionado

Mais procurados

Intercloud Registry
Intercloud RegistryIntercloud Registry
Intercloud Registry
guest236753
 
9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2
Digicomp Academy AG
 

Mais procurados (15)

MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
MQ Light for Bluemix - IBM Interconnect 2015 session AME4183
 
Ad cloud
Ad cloudAd cloud
Ad cloud
 
Intercloud Registry
Intercloud RegistryIntercloud Registry
Intercloud Registry
 
JLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven WorldJLove conference 2020 - Reacting to an Event-Driven World
JLove conference 2020 - Reacting to an Event-Driven World
 
Android Deep Dive
Android Deep DiveAndroid Deep Dive
Android Deep Dive
 
Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010Nokia Qt SDK in action - Qt developer days 2010
Nokia Qt SDK in action - Qt developer days 2010
 
The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019The evolving story for Agile Integration Architecture in 2019
The evolving story for Agile Integration Architecture in 2019
 
Mastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud EnvironmentsMastering Application Integration Challenges in Hybrid Cloud Environments
Mastering Application Integration Challenges in Hybrid Cloud Environments
 
Agile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messagingAgile integration architecture in relation to APIs and messaging
Agile integration architecture in relation to APIs and messaging
 
Implementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for IntegrationImplementing zero trust in IBM Cloud Pak for Integration
Implementing zero trust in IBM Cloud Pak for Integration
 
Mono for android
Mono for androidMono for android
Mono for android
 
Automating agile integration
Automating agile integrationAutomating agile integration
Automating agile integration
 
9 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 29 dani künzli citrix cloud solution 2
9 dani künzli citrix cloud solution 2
 
20120620 moving to windows azure
20120620 moving to windows azure20120620 moving to windows azure
20120620 moving to windows azure
 
S60 - Over the air
S60 - Over the airS60 - Over the air
S60 - Over the air
 

Destaque

Fundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded SystemsFundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded Systems
eselab
 
Beautiful UIs With JFace Databinding
Beautiful UIs With JFace DatabindingBeautiful UIs With JFace Databinding
Beautiful UIs With JFace Databinding
Lars Vogel
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
tamarmot
 
Security And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation TechnologySecurity And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation Technology
paramalways
 

Destaque (8)

Fundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded SystemsFundamentals of Modern Embedded Systems
Fundamentals of Modern Embedded Systems
 
My students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision toolMy students and shared resources: Design of a supervision tool
My students and shared resources: Design of a supervision tool
 
Beautiful UIs With JFace Databinding
Beautiful UIs With JFace DatabindingBeautiful UIs With JFace Databinding
Beautiful UIs With JFace Databinding
 
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
Case Study: NASA Ames uses Eclipse RCP for real-time situational awareness of...
 
Survey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power IndustrySurvey: Embedded Systems In Power Industry
Survey: Embedded Systems In Power Industry
 
Security And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation TechnologySecurity And Ethical Challenges Of Infornation Technology
Security And Ethical Challenges Of Infornation Technology
 
Ethical hacking & Information Security
Ethical hacking & Information SecurityEthical hacking & Information Security
Ethical hacking & Information Security
 
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless TechnologiesPresentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
Presentation on 1G/2G/3G/4G/5G/Cellular & Wireless Technologies
 

Semelhante a Use Eclipse Technologies to build a modern embedded development IDE

Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
vithakur
 
IBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational SolutionsIBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational Solutions
Alex Amies
 
Session One Intro
Session One IntroSession One Intro
Session One Intro
rsnarayanan
 

Semelhante a Use Eclipse Technologies to build a modern embedded development IDE (20)

Developing and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud PrivateDeveloping and Deploying Microservices to IBM Cloud Private
Developing and Deploying Microservices to IBM Cloud Private
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the Edge
 
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud PrivateIBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
IBM Cloud Paris Meetup - 20180628 - IBM Cloud Private
 
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
Evolve or Fall Behind: Driving Transformation with Containers - Sai Vennam - ...
 
Machine Learning Inference at the Edge
Machine Learning Inference at the EdgeMachine Learning Inference at the Edge
Machine Learning Inference at the Edge
 
Zero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or lessZero to Portlet in 20 minutes or less
Zero to Portlet in 20 minutes or less
 
Streaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_VirenderStreaming Sensor Data Slides_Virender
Streaming Sensor Data Slides_Virender
 
MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010MoDisco Eclipse-OMG Symp 2010
MoDisco Eclipse-OMG Symp 2010
 
Accelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud PrivateAccelerate Digital Transformation with IBM Cloud Private
Accelerate Digital Transformation with IBM Cloud Private
 
PIM4Cloud
PIM4CloudPIM4Cloud
PIM4Cloud
 
Portlet factory 101
Portlet factory 101Portlet factory 101
Portlet factory 101
 
Acceleo Day - Orange
Acceleo Day - OrangeAcceleo Day - Orange
Acceleo Day - Orange
 
Imaginea_CloudComputing_Services
Imaginea_CloudComputing_ServicesImaginea_CloudComputing_Services
Imaginea_CloudComputing_Services
 
Cloud Computing
Cloud ComputingCloud Computing
Cloud Computing
 
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
DockerCon EU 2015: The Missing Piece: when Docker networking unleashing soft ...
 
g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008g Eclipse @ Eclipse Summit Europe 2008
g Eclipse @ Eclipse Summit Europe 2008
 
IBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational SolutionsIBM SmartCloudEnterprise use of IBM Rational Solutions
IBM SmartCloudEnterprise use of IBM Rational Solutions
 
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
Software Factories in the Real World: How an IBM® WebSphere® Integration Fact...
 
Session One Intro
Session One IntroSession One Intro
Session One Intro
 
Architecting & Developing On The Cloud Operating System Windows Azure V3
Architecting & Developing On The Cloud Operating System  Windows Azure  V3Architecting & Developing On The Cloud Operating System  Windows Azure  V3
Architecting & Developing On The Cloud Operating System Windows Azure V3
 

Mais de Benjamin Cabé

Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
Benjamin Cabé
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Benjamin Cabé
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
Benjamin Cabé
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
Benjamin Cabé
 

Mais de Benjamin Cabé (20)

IoT Developer Survey 2018
IoT Developer Survey 2018IoT Developer Survey 2018
IoT Developer Survey 2018
 
Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018Open Source for Industry 4.0 – Open IoT Summit NA 2018
Open Source for Industry 4.0 – Open IoT Summit NA 2018
 
JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?JVM-Con 2017 – Java and IoT, will it blend?
JVM-Con 2017 – Java and IoT, will it blend?
 
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016Examining the emergent open source IoT ecosystem - IoT World Europe 2016
Examining the emergent open source IoT ecosystem - IoT World Europe 2016
 
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
Running UK railway with Eclipse Paho and Eclipse Mosquitto – Eclipse IoT Day ...
 
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
The Right Tools for IoT Developers – Dan Gross @ Eclipse IoT Day ThingMonk 2016
 
On making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in handOn making standards organizations & open source communities work hand in hand
On making standards organizations & open source communities work hand in hand
 
Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016Open Source Internet of Things 101 – EclipseCon 2016
Open Source Internet of Things 101 – EclipseCon 2016
 
Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015Building the IoT - Coding Serbia 2015
Building the IoT - Coding Serbia 2015
 
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoTDevoxx 2015 - Building the Internet of Things with Eclipse IoT
Devoxx 2015 - Building the Internet of Things with Eclipse IoT
 
Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...Manage all the things, small and big, with open source LwM2M implementations ...
Manage all the things, small and big, with open source LwM2M implementations ...
 
End-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stackEnd-to-end IoT solutions with Java and the Eclipse IoT stack
End-to-end IoT solutions with Java and the Eclipse IoT stack
 
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorialPowering your next IoT application with MQTT - JavaOne 2014 tutorial
Powering your next IoT application with MQTT - JavaOne 2014 tutorial
 
End-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoTEnd-to-end IoT solutions with Java and Eclipse IoT
End-to-end IoT solutions with Java and Eclipse IoT
 
Open-source IoT cookbook
Open-source IoT cookbookOpen-source IoT cookbook
Open-source IoT cookbook
 
Building the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetupBuilding the Internet of Things with Eclipse IoT - IoTBE meetup
Building the Internet of Things with Eclipse IoT - IoTBE meetup
 
Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014Building the Internet of Things with Eclipse IoT - JavaLand 2014
Building the Internet of Things with Eclipse IoT - JavaLand 2014
 
What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014What's new at Eclipse IoT - EclipseCon 2014
What's new at Eclipse IoT - EclipseCon 2014
 
Overview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day GrenobleOverview of Eclipse IoT projects - IoT Day Grenoble
Overview of Eclipse IoT projects - IoT Day Grenoble
 
Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013Open (source) API for the Internet of Things - APIdays 2013
Open (source) API for the Internet of Things - APIdays 2013
 

Último

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Victor Rentea
 

Último (20)

Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
AWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of TerraformAWS Community Day CPH - Three problems of Terraform
AWS Community Day CPH - Three problems of Terraform
 
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
Modular Monolith - a Practical Alternative to Microservices @ Devoxx UK 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024AXA XL - Insurer Innovation Award Americas 2024
AXA XL - Insurer Innovation Award Americas 2024
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Use Eclipse Technologies to build a modern embedded development IDE

  • 1. Use Eclipse Technologies to build a modern embedded development IDE. Gaétan Morice – Benjamin Cabé October 28th, 2009
  • 2. Embedded Modeling IDE Requirements
  • 3. Requirements • What is M2M ? API/Web Services Asset Communication Connectivity Customer Device Network Application • Definition : “M2M refers to data communication between machines.” © Sierra Wireless inc. – Made available under EPL v1.0
  • 4. Requirements API/Web Services Asset Communication Connectivity Customer Device Network Operated & Hosted Application M2M Services Platform  Hosted and operated M2M services platform. Highly scalable, available and secure. Provides APIs to develop web-based custom designed applications.  Open embedded agent integrated in virtually any cell devices (Airlink box, modules embedded in OEM equipment, custom box etc. both from Sierra or other 3rd party).  Patented world class Eclipse based IDE to develop embedded applications and to generate widgets for end-users. © Sierra Wireless inc. – Made available under EPL v1.0
  • 5. Requirements • Embedded development (Machine-to-Machine) • Modeling environment • Component-oriented approach Model Code Binary Target Execution Debug © Sierra Wireless inc. – Made available under EPL v1.0
  • 6. Requirements • Users profiles ►Newbies ►Solution providers • Multiple targets ►Sierra Wireless devices ►Embedded Linux ►… © Sierra Wireless inc. – Made available under EPL v1.0
  • 7. Embedded Modeling IDE Technical Solution
  • 8. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 9. Features Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 10. Modeling Model • EMF - Eclipse Modeling Framework ►The model is the pillar of the tool ►Used to model what an embedded project is ►Benefits from EMF –Notifications –Serialization –Reflective API –… all the incredible EMF tools (GMF, Validation, Xpand, Ecore Tools, …) © Sierra Wireless inc. – Made available under EPL v1.0
  • 11. Modeling Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 12. Features Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 13. Navigator Navigator • Objectives Model ►1:1 Mapping between Project and Model ►Display informations in the model as project’s artefacts © Sierra Wireless inc. – Made available under EPL v1.0
  • 14. Navigator Navigator • Workspace integration Model ►AdapterFactory transforms –IProject into Model Project –Model Project into Iproject public class ProjectAdapterFactory implements IAdapterFactory { @Override public Object getAdapter(Object adaptableObject, Class adapterType) { Object result = null; // Bi-directional adapter IProject <----> M2MProject if (adaptableObject instanceof IProject && adapterType.equals(Project.class)) { result = adaptToModel((IProject) adaptableObject); } else if (adaptableObject instanceof Project && adapterType.equals(IProject.class)) { result = adaptIProject((Project) adaptableObject, adapterType); } return result; } } © Sierra Wireless inc. – Made available under EPL v1.0
  • 15. Navigator Navigator • Workspace integration Model ►EMF Transaction –Global model repository –Transactional Editing Domain public class ProjectActivator extends Plugin { public static final String TRANSACTIONAL_EDITING_DOMAIN_ID = "com.anwrt.ec598.project.editingDomain"; ... public TransactionalEditingDomain getEditingDomain(){ TransactionalEditingDomain shared = TransactionalEditingDomain.Registry.INSTANCE .getEditingDomain(TRANSACTIONAL_EDITING_DOMAIN_ID); return shared; } ... } © Sierra Wireless inc. – Made available under EPL v1.0
  • 16. Navigator Navigator • Project Explorer Model ►Displays model objects as the Project structure ►Based on Common Navigator Framework –Extensible tree view –Rather complex API –But really powerful Extension Points: org.eclipse.ui.navigator.* Excellent tutorial: “Building a Common Navigator based viewer” ►We use an internal model to define the structure (nodes only used to group or display informations) © Sierra Wireless inc. – Made available under EPL v1.0
  • 17. Navigator Navigator • Project Explorer Model ►Result EMF Objects Model contribution Navigation nodes CDT contribution Default display (resources) © Sierra Wireless inc. – Made available under EPL v1.0
  • 18. Features Editors Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 19. Model dition Editors • Forms editors Model ►Forms + EMF + databinding –Create UI private void createContent(FormToolkit toolkit, Composite parent) { Composite composite = toolkit.createComposite(parent, SWT.NONE); GridDataFactory.fillDefaults().grab(true, false).applyTo(composite); GridLayoutFactory.fillDefaults().numColumns(2).applyTo(composite); toolkit.createLabel(composite, "Name:", SWT.NONE); _textName = toolkit.createText(composite, "", SWT.BORDER); GridDataFactory.fillDefaults().grab(true, false).applyTo(_textName); } –Bind UI to model private void bind() { DataBindingContext bindingContext = new EMFDataBindingContext(); // -- Bind the Name bindingContext.bindValue(SWTObservables.observeText(_textName, SWT.FocusOut), EMFEditObservables.observeDetailValue(Realm.getDefault(), getEditingDomain(), _myEObject, M2MPackage.eINSTANCE.getINamedElement_Name())); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 20. Model edition Editors • Forms editors Model ►Result Available in PDE Incubator: EMF-Forms Editor to be used for next-generation PDE editors © Sierra Wireless inc. – Made available under EPL v1.0
  • 21. Model edition Editors • Graphical Editor: GMF Model ►Uses GMF generator to bootstrap GMF generation Model Generated Customization editor Modified editor ►Heavy use of GMF Runtime © Sierra Wireless inc. – Made available under EPL v1.0
  • 22. Model edition Editors • Graphical Editor: GMF Model ►Other features –Rotation –Automatic port creation –HTML Tooltips –Extensible presentation •Custom figures can be defined using an extension point © Sierra Wireless inc. – Made available under EPL v1.0
  • 23. Model edition Editors • Graphical Editor: GMF Model ►Result © Sierra Wireless inc. – Made available under EPL v1.0
  • 24. Features Editors Validation Navigator Model © Sierra Wireless inc. – Made available under EPL v1.0
  • 25. Model validation Validation • EMF Validation Model ►Extensible (needed for specific-target constraints) ►Constraints are registered using an extension point Extension points: org.eclipse.emf.validation.* ►We use only the batch mode public IStatus validate (EObject model, IProgressMonitor monitor) { IBatchValidator batchValidator = ModelValidationService.getInstance() .newValidator(EvaluationMode.BATCH); batchValidator.setIncludeLiveConstraints(true); batchValidator.setReportSuccesses(false); return batchValidator.validate(model, monitor); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 26. Model validation Validation ►Integrated in a builder Model –Transparent and automatic (on save) –Uses Problem Markers –Coupled with quick fixes for a better user experience Validation decorators are based on markers generated by the Validation builder © Sierra Wireless inc. – Made available under EPL v1.0
  • 27. Features Editors Validation Navigator Model Code © Sierra Wireless inc. – Made available under EPL v1.0
  • 28. Code generation Model • Xpand Code ►Performance issue –Workflow is too slow then use only Java API ►Example of template «IMPORT model» «DEFINE file FOR SourceComponentClass» «FILE project.name.toLowerCase() + "/" + name + ".java"-» package «project.name.toLowerCase()»; public class «name» extends ComponentClass { «IF methods.select(m | m.kind.toString() == "EVENT").size > 0» public void receiveEvent(int inputEventMethod, Object value) { «FOREACH methods.select(m | m.kind.toString() == "EVENT") AS m-» // TODO handle Event: " + «m.name.toUpperCase()»: «ENDFOREACH-» } «ENDIF» } «ENDFILE» «ENDDEFINE» © Sierra Wireless inc. – Made available under EPL v1.0
  • 29. Code generation Model • Xpand Code ►Call the Xpand generator programmatically public void generate(final EObject object, IProgressMonitor monitor) throws CoreException { Generator generator = new Generator(); // define the metamodel used in the template MetaModel m2mMetamodel = new EmfMetaModel(M2MPackage.eINSTANCE); generator.addMetaModel(m2mMetamodel); // define the template generator.setExpand("templates::SourceComponentClass::file FOR component"); // define the output folder Outlet outlet = new Outlet("C:/myOutput/src"); generator.addOutlet(outlet); // configure protected regions generator.setPrSrcPaths("C:/myOutput/src"); generator.setPrDefaultExcludes(true); // define the EObject input WorkflowContextDefaultImpl ctx = new WorkflowContextDefaultImpl(); ctx.set("component", object); // run the generator generator.invoke(ctx, new ProgressMonitorAdapter(monitor), new IssuesImpl()); } © Sierra Wireless inc. – Made available under EPL v1.0
  • 30. Code generation Model • Integrated in a builder Code ►Transparent and automatic (on save) ►Synchronization between model and code ►Incremental generation © Sierra Wireless inc. – Made available under EPL v1.0
  • 31. Features Editors Validation Navigator Model Editor Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 32. Code editors and navigator Editor Code • CDT Navigator ►Code navigation ►Syntax highlight ►Content assist ►Refactoring ►… • LuaEclipse ►Currently not based on DLTK but under development © Sierra Wireless inc. – Made available under EPL v1.0
  • 33. Code editors and navigator Editor Code • CDT Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 34. Features Editors Validation Navigator Model Editor Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 35. Round-tripping Model • Mandatory for a good user experience Code • Be able to edit code or model indifferently ►Continuous synchronization • First study: EMF Compare ►Good candidate but too rich for our needs ►Solution: Direct modification of existing models © Sierra Wireless inc. – Made available under EPL v1.0
  • 36. Round-tripping Model • Solution Code ►Integrated in a builder ►Synchronize Model and AST Code ►From code to model: Based on existing parser AST Java transformation Model Model (previous version) (extract from code) Merge Model (new version) © Sierra Wireless inc. – Made available under EPL v1.0
  • 37. Features Editors Validation Navigator Model Editor Compilation Code Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 38. Compilation Compilation Code • CDT - Managed Build System (MBS) ►Declarative creation of custom tool chains –Through MBS Extension point –Direct integration in CDT builder and preference –A bit complex Extension Point: org.eclipse.ui.managebuilder.core.buildDefinition Excellent tutorial: CDT Plug-in Developer Guide ►Mechanism of scanner discovery profiles to find tools binaries Extension Point: org.eclipse.cdt.make.core.ScannerConfigurationDisccoveryProfile © Sierra Wireless inc. – Made available under EPL v1.0
  • 39. Compilation Compilation Code • CDT – MBS ►Result Binaries packages for download on device Options Compiler and linker for the device (based on ARM GCC) Tools Binary post-processors to match device caracteristics © Sierra Wireless inc. – Made available under EPL v1.0
  • 40. Compilation Compilation Code • CDT - Dependencies management ►Dependencies management –Difficult with CDT –Configuration, build artefacts, libraries include, header include to manage –No generic rule => have to be hand craft –Use of CDT API to access projects description –Managed by refactoring process © Sierra Wireless inc. – Made available under EPL v1.0
  • 41. Compilation Compilation Code • CDT - Dependencies management public class ModifyCProjectDependenciesChange extends Change { private final IProject project; ... public Change perform(IProgressMonitor pm) throws CoreException { ICProjectDescription projectDescription = CDTPropertyManager.getProjectDescription(project); ICConfigurationDescription[] configurationDescription = projectDescription.getConfigurations(); ... } ... } © Sierra Wireless inc. – Made available under EPL v1.0
  • 42. Features Editors Validation Navigator Model Editor Compilation Code Navigator Target © Sierra Wireless inc. – Made available under EPL v1.0
  • 43. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target © Sierra Wireless inc. – Made available under EPL v1.0
  • 44. Target communication Communication Target • Objectives: ►make device's services available –Download –Terminal –… ►De-coupling of services and communication channel ►Extensible © Sierra Wireless inc. – Made available under EPL v1.0
  • 45. Target communication Communication Target • Target Communication Framework - TCF ►Embedded agent ►Asynchronous Launch Terminal Config View ►Protocol based on ►Command, Result Download Terminal ►Event Service Service Connection TCF Channel Manager Embedded Agent © Sierra Wireless inc. – Made available under EPL v1.0
  • 46. Features Editors Validation Navigator Model Editor Compilation Code Navigator Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 47. Target navigator Target Navigator • Remote System Explorer - RSE ►GUI framework ►Tree Explorer ►Match well with TCF © Sierra Wireless inc. – Made available under EPL v1.0
  • 48. Target navigator Target Navigator • Remote System Explorer © Sierra Wireless inc. – Made available under EPL v1.0
  • 49. Features Editors Validation Navigator Forms EMF Validation GMF Project Explorer + CNF Model Xpand AST Editor CDT Compilation Code CDT + DLTK Navigator TCF RSE Communication Target Navigator © Sierra Wireless inc. – Made available under EPL v1.0
  • 50. Embedded Modeling IDE Demonstration
  • 51. Embedded Modeling IDE Conclusion
  • 52. The benefits of a large ecosystem • Allows to create really complex environment quickly • Covers differents kinds of domains • Offers reactive support with the community • Allows to focus on real added value © Sierra Wireless inc. – Made available under EPL v1.0
  • 53. Questions? Gaétan Morice gmorice@sierrawireless.com Benjamin Cabé bcabe@sierrawireless.com