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

Internet of thing with extensible C

Internet of thing with extensible C

747ee5b01d0969d624683652122fd377?s=128

Kolja Dummann

June 18, 2014
Tweet

Transcript

  1. IoT WITH EXTENSIBLE C

  2. IoT with extensible C Kolja Dummann itemis AG ! @dumdidum

    http://logv.ws
  3. IoT WITH EXTENSIBLE C

  4. IoT with extensible C mbeddr http://mbeddr.com

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

    integrated languages for embedded software engineering
  6. IoT with extensible C Architecture

  7. IoT with extensible C Architecture Core Plain C

  8. IoT with extensible C Architecture Core Plain C Ext Components

    Statemachines Units
  9. IoT with extensible C Architecture Core Plain C Ext Components

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

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

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

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

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

    int16/s/ time = …; int16/mps/ speed = distance / time; Physical Units
  15. 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
  16. IoT with extensible C component AutoPilot extends nothing { requires

    FlightRecorder flightRecorder provides CourseProvider cp int16 cp_getCourse() <= op cp.getCourse { return 0; } } Components Components
  17. 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
  18. 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
  19. IoT with extensible C Verification Verification

  20. All of C Open Source Build with extensibility in mind

    Default extensions (Units, SM, …) Debug on the semantics of the DSL mbeddr
  21. IoT WITH EXTENSIBLE C

  22. IoT with extensible C Projectional Language Workbench Open Source

  23. IoT with extensible C Projection vs. Parser Projection Parser

  24. IoT with extensible C Projection vs. Parser Projection Parser

  25. IoT with extensible C Projection vs. Parser Projection Parser

  26. IoT with extensible C Projection vs. Parser Projection Parser

  27. IoT with extensible C Projection vs. Parser Projection Parser

  28. IoT with extensible C Projection vs. Parser Projection Parser

  29. IoT with extensible C Projection vs. Parser Projection Parser

  30. IoT with extensible C Flexible Notations Sum designed by Alex

    Auda Samora from the thenounproject.com Code/Text Tables Mathematical Graphical
  31. IoT with extensible C Generator Generator

  32. IoT with extensible C Generator Generator

  33. IoT with extensible C Generator Generator

  34. IoT with extensible C Generator Generator

  35. IoT with extensible C Generator Generator

  36. MPS Projectional Editor Open Source Support for all kinds of

    notations Incremental Generators All about LOP
  37. IoT WITH EXTENSIBLE C

  38. 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
  39. 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.”
  40. IoT with extensible C Sample Build Traffic Light A traffic

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

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

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

    GPIO A traffic light representing the state of the tests on the build server.
  44. IoT with extensible C DEMO Picture CC-BY-NC by Don from

    Flickr