M2M webinar - Developing M2M applications with Lua
-
Upload
benjamin-cabe -
Category
Documents
-
view
1.355 -
download
1
description
Transcript of M2M webinar - Developing M2M applications with Lua
![Page 1: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/1.jpg)
Developing M2M apps with Lua
De!e"op#n$ M2M apps w#%h Lua Benjamin Cabé – Sierra Wireless
![Page 2: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/2.jpg)
Developing M2M apps with Lua
� Wha% #s M2M?
Technology that supports wired or wireless communication between devices
![Page 3: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/3.jpg)
Developing M2M apps with Lua
Communication Infrastructure
Smart Pill Box
Heartbeat Sensor
Weight Scale
Blood Pressure
Medical Services Gateway
Near field
Blood Sugar
In%e&ne% o' Th#n$s
Patient
Clinical Trial
Doctor
![Page 4: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/4.jpg)
Developing M2M apps with Lua
Wha% #s Lua? • A programming language
• High Level
• Scripting
• Extensible
• Simple
• Efficient
• Portable
![Page 5: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/5.jpg)
Developing M2M apps with Lua
Wha% #% #s no% • An acronym
• A replacement for C (C++)
• A that recent language (1993)
• Used only for games – Cisco, Adobe, Oracle, … – See: http://en.wikipedia.org/wiki/Lua_(programming_language)#Other
![Page 6: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/6.jpg)
Developing M2M apps with Lua
Ex%ens#b"e • Small
– Trivial syntax and reduced keyword set
• Simple but not stupid – Simple enough for new user, powerful enough for
advanced users (first-class functions, garbage collection, closures, tail calls, coercion, coroutines)
• Lua core is tiny – Compiled size is ~150kB
– Lua uses libraries for its extensions
![Page 7: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/7.jpg)
Developing M2M apps with Lua
Po&%ab"e • The exact same code runs on different targets
• Lua VM is written in pure C ANSI
![Page 8: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/8.jpg)
Developing M2M apps with Lua
H#$h-"e!e" 'ea%u&e se% • Easy-to-use high level structures: strings, lists,
tables, sets, hash-tables
• Automatic memory management with garbage collector
• Proper error/exceptions management
![Page 9: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/9.jpg)
Developing M2M apps with Lua
H#$h-"e!e" 'ea%u&e se% ((on%’d) • Easy user interaction and advanced tools
– console
– package manager, profilers, unit tests, …
• Shorter development cycles – write, load without rebooting, look at what
happens interactively, reload etc.
• Controlled execution model – Prevent pointer arithmetic and memory
management issues
– Graceful handling of incorrect arguments
![Page 10: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/10.jpg)
Developing M2M apps with Lua
Lua !s. o%he& h#$h-"e!e" "an$ua$es • Same core features as Python, Ruby, Javascript
• Better concurrency management – Built-in – doesn’t rely on OS
• Cutting-edge execution technology & performances
• Restricted set of libraries – Stay simple, the developer brings his own
• Outstanding Lua/C integration – Performance
– Legacy
![Page 11: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/11.jpg)
Developing M2M apps with Lua
Lua 'o& embedded and M2M • High-level languages usually trade hardware
resources for development & maintenance resources
• Transition fully embraced on PC and servers, not yet on embedded devices, largely due to a history of resource scarcity
Lua allows to reconcile high-level languages accomplishments with embedded constraints
![Page 12: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/12.jpg)
Developing M2M apps with Lua
Lua app"#(a%#on '&amewo&) 'o& M2M • User application container, embedded runtime
• Set of libraries providing building blocks to develop user M2M applications: – Serial and I/O management,
– Networking (FTP, HTTP, E-mail clients),
– GPS,
– Cryptography,
– Modbus,
– Local storage,
– M2M server communication…
http://www.eclipse.org/mihini
![Page 13: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/13.jpg)
Developing M2M apps with Lua
IDE 'o& Lua de!e"opmen% • Project structure
• Syntax coloring
• Content assist
• Code navigation
• Code formatting
• Documentation
• Code templates
• Debugger
• Remote development
June 2012: first release (0.8)
Dec. 2012: 0.9 release
June 2013: graduate w/ Kepler
20,000+ installations already!
![Page 14: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/14.jpg)
Developing M2M apps with Lua
IDE 'o& M2M de!e"opmen% • We started working on Mihini support in
Koneki – Mihini execution environment for code assist
– Target Management for controlling the Application Container, accessing the logs, …
– Creation of software packages
![Page 15: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/15.jpg)
Developing M2M apps with Lua
Lua 'o& end-use& app"#(a%#ons? • Many mobile development frameworks*
– Corona SDK**
– Gideros Mobile
– LÖVE2D
– etc.
* guess what? You can use Koneki LDT to develop for these frameworks!
** see http://youtu.be/XOlopalLKeU (« EclipseCon CoronaSDK »)
![Page 16: M2M webinar - Developing M2M applications with Lua](https://reader033.fdocuments.net/reader033/viewer/2022042505/555a2823d8b42a900d8b49ce/html5/thumbnails/16.jpg)
Developing M2M apps with Lua
Mo&e #n'o&ma%#on • M2M Portal
http://m2m.eclipse.org
• Koneki http://www.eclipse.org/koneki
• Mihini http://www.eclipse.org/mihini
Than) You!