Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Internet of thing with extensible C

Internet of thing with extensible C

Kolja Dummann

June 18, 2014
Tweet

More Decks by Kolja Dummann

Other Decks in Programming

Transcript

  1. IoT with extensible C mbeddr A Open Source Collection of

    integrated languages for embedded software engineering
  2. IoT with extensible C Architecture Core Plain C Ext Components

    Statemachines Units CC Requirements Documentation
  3. IoT with extensible C Architecture Core Plain C Ext Components

    Statemachines Units CC Requirements Documentation Debugger
  4. IoT with extensible C Architecture Core Plain C Ext Components

    Statemachines Units CC Requirements Documentation Analyses Debugger
  5. IoT with extensible C Physical Units int16 distance = …;

    int16 time = …; int16 speed = time / distance; Physical Units
  6. IoT with extensible C Physical Units int16 distance = …;

    int16 time = …; int16 speed = time / distance; Physical Units
  7. IoT with extensible C Physical Units int16/m/ distance = …;

    int16/s/ time = …; int16/mps/ speed = distance / time; Physical Units
  8. IoT with extensible C cs interface FlightRecorder { Trackpoint* process(Trackpoint*

    p) pre(0) p != null pre(1) p->id != 0 pre(2) p->time != 0 s post(3) result->id != 0 } Components Components
  9. IoT with extensible C component AutoPilot extends nothing { requires

    FlightRecorder flightRecorder provides CourseProvider cp int16 cp_getCourse() <= op cp.getCourse { return 0; } } Components Components
  10. IoT with extensible C statemachine selfdestruction initial = starting {

    in event update(int8 speed, int8 hight) <no binding> state starting { on update [speed > 10 && hight > 0] -> flying } state flying { do { record_flightdata(); } on update [speed > 100 && hight < 42] -> kill } state kill { entry { blow_rocket(); } } } Statemachine Statemachine
  11. IoT with extensible C testcase main { assert-equals(0) 10 ==

    add(5, 5); assert-less(1) 20 < add(5, 10); assert(2) 30 == add(20, 10); } Testing Testing
  12. All of C Open Source Build with extensibility in mind

    Default extensions (Units, SM, …) Debug on the semantics of the DSL mbeddr
  13. IoT with extensible C Flexible Notations Sum designed by Alex

    Auda Samora from the thenounproject.com Code/Text Tables Mathematical Graphical
  14. MPS Projectional Editor Open Source Support for all kinds of

    notations Incremental Generators All about LOP
  15. IoT with extensible C MQTT “MQ Telemetry Transport (MQTT) is

    a publish-subscribe based "light weight" messaging protocol for use on top of the TCP/IP protocol. It is designed for connections with remote locations where a "small code footprint" is required and/or network bandwidth is limited.” Wikipedia
  16. IoT with extensible C Raspberry Pi “The Raspberry Pi is

    a credit-card-sized single-board computer developed in the UK by the Raspberry Pi Foundation with the intention of promoting the teaching of basic computer science in schools.”
  17. IoT with extensible C Sample Build Traffic Light A traffic

    light representing the state of the tests on the build server.
  18. IoT with extensible C Sample Build Traffic Light MQTT A

    traffic light representing the state of the tests on the build server.
  19. IoT with extensible C Sample Build Traffic Light MQTT GPIO

    A traffic light representing the state of the tests on the build server.
  20. IoT with extensible C Sample Build Traffic Light MQTT GPIO

    GPIO A traffic light representing the state of the tests on the build server.