• Aucun résultat trouvé

Lua machine to machine typical topology – Cours et formation gratuit

N/A
N/A
Protected

Academic year: 2022

Partager "Lua machine to machine typical topology – Cours et formation gratuit"

Copied!
35
0
0

Texte intégral

(1)

1

(2)

Description of a typical M2M chain:

•An asset is a machine which needs to communicate over the net, without human operator intervention.

•There can be one or many assets; one of them used as a network gateway.

•Communication generally happens over the air, to preserve mobility and/or simplify logistics.

•A backend keeps asset info always available, presents them to 3rdparty services and front-end.

•Frontend can be custom, but doesn’t have to: we provide a sane and functional default, which only requires a bit of config.

This chain requires many very different skills: hardware, antennas, embedded software, wireless network, server, UI, IT; extremely few companies will have all these skills at once, and assembling them from many subcontractors is no piece of cake either.

2

(3)

Typical asset: valuable, in a remote position, needs to report events about itself (including failures) and/or it environmnent to the company owning it.

3

(4)

We’re primarily a hardware company, we’ve plenty of HW options to offer: chips, PCB, reference designs, PCCards, routers, programmable modems… from a few dozen $ to many $100’s, depending on integration, volume, I/O, programmability, CPU…

4

(5)

We also offer a standard front-end, which can be heavily personalized. Based on widgets, role-based views. Fits most B2B needs: alerts reporting, large fleets management, data consolidation, provisionning, billing…

5

(6)

Anotherr view composed of standard widgets.

6

(7)

Example of a custom front-end, targetting non-professional operators (public streetlights maintenance).

7

(8)

A home automation system front-end, handling home alarm, heating systems, etc.

8

(9)

Back to the global view. The backend here is quite simplified…

9

(10)

…but that’s our business, not the customer’s:

He’s got a physical asset, a frontend (UI and/or REST API), and the latter faithfully represents the former. The rest ought to remain black magic.

10

(11)

Conversely, the situation is often simpler on the embedded side:

only one custom logical asset,

which is physically hosted on the gateway device’s CPU.

11

(12)

Only one custom logical asset, which is physically hosted on the device CPU.

12

(13)

13

(14)

What’s useful from the non-developer customer’s PoV.

14

(15)

What the developers see.

15

(16)

Basic architecture: two processes if possible, although we can run in a single one.

In any case, assets and agent only talk through a serialized RPC link. Keeps things cleaner/clearer.

16

(17)

One process per asset if possible, it avoids parasitic interactions, discourages avoidable couplings, and makes it easier to pinpoint bugs.

17

(18)

Assets don’t have to run on the same CPU, the serialized RPC can go over physical links.

18

(19)

19

(20)

The thread control and communication API.

20

(21)

Some simple examples of thread API events and calls.

21

(22)

On POSIX, need to justify why we didn’t reuse Copas, and why it wasn’t an instance of the not-invented-here syndrome.

22

(23)

23

(24)

Many serialized communication channels; this is the dual of easy inter-thread communications: it enforces proper structuring at the scale where it matters. It also open interesting capabilities.

24

(25)

LTN12 really deserves more love than it gets. There are so many Lua libraries which would be made more usable by being exposed as LTN12 filters, developers ought to realize this.

25

(26)

26

(27)

There’s a continuum of options, from no development at all to completely developed from scratch on independent hardware. An interesting sweet spot is Smart Automation, only made possible because Lua makes code so flexible to write, use and move around.

27

(28)

28

(29)

A screenshot from the app definition pages of SmartAutomation (mapping Modbus registers to sane variable names).

29

(30)

A screenshot from the app definition pages of SmartAutomation (describing the monitorin policy on a variable).

30

(31)

Once the embedded application is deployed, it can be monitored through the usual front-end.

31

(32)

These services are portable, and not embedded-specific. Should soon be offered under a free and business-friendly license.

32

(33)

33

(34)

34

(35)

35

Références

Documents relatifs

Then the global editing tab can be used to assign an overcurrent device definition to the set, such as from a transformer fusing schedule used at the utility.. Continue with the

[The engine] doesn't know anything about adventure games, or talking, or puzzles, or anything else that makes Grim Fandango the game it is.. It just knows how to render a set

io.output ([file]) sets file as default output file (the current output file is not closed); file can be either an open file object or a file name; in the latter case the file is

• Node , Op, Val, Var, Stmts, Block Parrot Opcode Syntax Tree. • Node , Ops, Op, Label, Sub

• At each step, traverses a grey object (turning it black) and mark new accessible objects as grey. • Stops when there are no more grey objects; white objects

A array of data if the function is successful; otherwise nil if no data could be read, and a specific error code can be retrieved by calling global function GetLastError. Parameters

● Instead embedded functions will written as shared libraries configured by

The header file contains the class declaration (data and functions), declaration of stand-alone functions, and all inline functions with bodies.