 Je m'appelle Philippe Coval et je suis en train de travailler avec Samsung Open Source Group. Je suis français et je suis partie d'une équipe qui s'appelle UK et London. Je travaille en France. Je suis intéressé à Thaizen parce que j'ai travaillé avant en Thaizen avec Intel, et maintenant j'ai travaillé avec Samsung. Je suis aussi en charge de la support de l'IATV sur Thaizen. Si vous avez une question qui est relative à ce domaine, n'hésitez pas à me poser. Je vais essayer d'y aider parce que nous voulons avoir de bons support. Au-delà de moi, je suis inquiétant et j'aime la communauté DIY et la probabilité d'entrer entre les choses et de connecter différents projets. Ce sont des choses que j'aime faire. Si vous avez un projet qui est relative à moi, n'hésitez pas à me contacter. Je vous promets que ce talk est très technique. Je ne vais pas parler du futur, du prospect, du business, tout comme ça. Je vais juste focusser sur les choses qui ne matteraient pas. Je vais juste essayer de faire une application basique et avoir une course crash pour arriver à ces choses IoT. Le projet que je parle de aujourd'hui est un peu grand parce qu'il y a un grand nombre de codes et une spécification de 500 pages. J'ai envie de vous éviter d'avoir à payer ce prix pour aller dans le projet et de vous donner des points. Je vais vous faire avancer ce demo pour adapter à quelque chose de différent. Juste une question. Comment beaucoup de gens sont venus d'un background de software dans cet endroit? Et des gens qui sont plus focussé sur les produits et qui veulent ajouter des features de connectivité? Ok, il y a quelques. C'est très cool parce que c'est une opportunité que les deux mondes puissent s'occuper d'eux. Si vous faites un software et que personne ne l'a mis dans un produit réel, c'est comme si vous ne faites rien virtuellement. Si il y a des produits qui n'ont pas besoin d'un software pour les utiliser, c'est presque useless. Je pense qu'on a une collaboration pour le set-up. Je vais vous expliquer ce que c'est pour le prototyping de mon point de vue. Je vais juste commencer avec un exemple très basique. Il y a quelques exemples en nativité mais j'ai retiré toutes les codes qu'il y avait pour faire juste le travail. Je vais expliquer ceci. Ensuite, je vais voir comment faire ce réel et interroger avec le hardware. Et cette démonstration que j'ai déjà montée. Si vous voulez faire un product IoT, probablement vous ne pourriez pas le faire au premier point. Vous avez besoin d'un concept de validation. Si vous voulez travailler dans un mode R&D, c'est totalement différent. Vous pouvez poursuivre beaucoup de différents hardware pour différents prix. Mais si vous voulez faire un product IoT, nous parlons d'un très très haut prix et d'une très très haute conception. Et comme je l'ai dit juste avant, une très très haute sécurité. Pour le développement, ce n'est pas la façon dont vous utilisez le travail. Vous préférez probablement travailler dans un environnement amusant en utilisant le Linux, parce que vous êtes confortables avec ça. Avec des shortcuts, vous ne voulez pas compliquer la connectivité ou la sécurité. Vous pouvez juste focusser sur votre concept et essayer de le faire au premier point. Mais vous ne pourrez pas mettre ça à l'aise parce que c'est très important. Si vous voulez faire un business, vous devez aussi penser à ça. Alors, les gens ont usually essayé de focusser sur le cas de utilisation et puis ils le font réellement. Mais des ingénieurs comme moi veulent peut-être juste jouer avec la technologie pour obtenir des inspirations et puis vous pouvez imaginer ce qu'il peut faire avec ça. Donc, il y a des approches différentes. Mais c'est ce que j'expliquerai aujourd'hui avec les shortcuts. Donc, si vous regardez les idées, tout est possible. Vous pouvez contrôler toutes les devises. Vous pouvez faire un monitoring avec un sensor. Vous pouvez essayer d'établir des liens avec différents domaines ou des devises, comme des phones, pour exemple. Ce n'est pas normal d'avoir un téléphone pour interagir avec une machine. Donc, il y a beaucoup de choses qui vont être faites. Et je pense que c'est le début. Parce que toutes ces choses ont des habilités de faire des choses et probablement un nouveau comportement sera établi dans le futur. Et je ne suis pas surpris que la production et l'intelligence artificielle vont essayer de faire cela plus efficace. Donc, j'ai promis que je voulais faire quelque chose simple. Parce que je pense que c'est une chose qui commence. Ce que je veux vous faire, c'est faire un minimum source code, essayer de couper et de paste, et de mettre plus de features. Et puis, vous pouvez brûler les choses. Qu'est-ce qui est le plus simple de votre cas ? Dans le monde embedit, on commence par faire un bloc de lait. Tout le tutoriel de Nord Vino est en train de faire ça. Mais la lait n'est pas si stupide. Parce que ce que vous faites, ici, c'est un acteur. C'est quelque chose qui peut s'entrainer et s'entrainer. Et beaucoup, beaucoup de produits que nous utilisons tous les jours sont juste boutons. Donc, si je veux tourner de la musique et juste brûler un bouton. Si je veux tourner la lait, c'est ce que je fais. Donc, ce n'est pas si stupide comme ça. Vous pouvez créer votre propre switch. Le bouton est un sensor qui détecte le mouvement de l'utilisateur et le switch est ce qui tourne la lait. Donc, de cette lait nous allons juste voir la fonction basique en off. Et puis, nous pouvons faire quelque chose très intéressant que nous pouvons aussi connaître le state de la lait, si c'est en off. Donc, ça veut dire que si j'ai plusieurs devices, ils peuvent tourner de l'autre. Donc, vous pouvez avoir des intelligences dans ce scénario. Et tout devrait être consistant. Ça veut dire que si deux gens tournent le bouton en même temps et l'on ne réacte pas, alors vous avez un problème. Donc, pour cet outil, nous avons besoin d'inventer le problème. Le premier est de partager notre ressource et d'avoir de la connectivité de toutes les devices dans votre Smart Home, ou Smart Car, ou Smart, ou autre chose. Et un certaine de ces problèmes sont les IoTVTs. Donc, c'est un framework pour provider la connectivité entre les devices et beaucoup de services, je ne vais pas leur expliquer aujourd'hui. Et la IoTVT est le nom de un projet qui implique la spécification de la connectivité de l'entreprise. Donc, les gens peuvent être confus quand ils voient le nom, ce qu'il faut comprendre, que la connectivité de l'entreprise est un groupe d'industrie et de beaucoup de gens. Ils s'agrissent d'écrire une spécification pour faire que les devices puissent communiquer ensemble. Et la IoTVT est la implémentation de cette spécification. Donc, vous êtes bienvenus et vous avez accès à la spécification et à ce qu'est-ce qui se passe sur le projet. Donc, nous allons retourner à la IoTVT. L'une des meilleures features c'est la discovery de la ressource. C'est-à-dire, je suis un réseau, je suis un lightbulb, je suis un switch, je suis une washing machine, vous devez vous dire qui vous êtes et qui vous supportez. Les devices puissent communiquer ensemble. Donc, c'est basé sur un standard existant. IoTVT est un nouveau nom, mais les choses qui sont sous-lèvres sont existantes avant. Nous utilisons un co-app pour la communication, qui est un standard fait par la force de l'entreprise. Et il y a une sécurité par design sur ce projet. Nous utilisons DTLS pour la réception. Et pour la transport, c'est agnostique. Vous pouvez utiliser l'IP, le Wi-Fi, l'Internet, les autres protocoles, comme Bluetooth, Bluetooth Lendware Energy, ZigBee, Z-Wave et d'autres. Il y a un mécanisme de plug-in. Donc, si vous êtes en train d'établir quelque sorte de technologie radio, vous pouvez le ajouter. Je ne parle pas de data, d'adversation, web services, cloud backend, plug-in, il y a beaucoup de choses. Je vous ai dit que c'est un projet très grand. Je vais juste vous concentrer sur la main d'établir la connexion. Un peu de vocabularie pour commencer. Ressource est le mot que j'utilise le plus dans cette présentation. Ressource est quelque chose qui décrive quelque chose physique, comme un bouton ou un sensor, ou peut-être quelque chose virtuel, c'est-à-dire un data dans un programme ou une valeur de quelque chose, et vous pouvez aussi faire un mélange de vrais et virtuels choses et vous pouvez éventuellement créer un sensor abstract comme un mood sensor, pour exemple, qui est la combinaison de la température et de l'humidité. Donc, quand vous avez ces valeurs correctes, vous vous sentez en haute haute, si ce n'est pas le cas, ce n'est pas le bon lundi. Donc, vous pouvez, dans votre maison, c'est drôle de savoir que quand vous êtes en train de retourner à votre maison, essayez de le faire le plus confortable possible par monitorer ces valeurs. Donc, chaque ressource est déclinée par un ressource uniforme identifié. Donc, vous pouvez les accesser par leur nom. Et la ressource est composée de propriétés. Donc, les propriétés sont valorées par la ressource. Donc, pour un sensor de température, c'est la température en degrés ou d'autres unités. Et nous pouvons aussi décrire l'opération sur ces propriétés. Donc, nous appelons ceci par un interface qui est l'opération. L'opération pour créer, pour modifier, pour délater, pour notifier le changement. Et vous pouvez aussi avoir un modèle qui est décrivé ce qu'est la ressource et ce qu'est l'opération. Donc, ceci est intéressant. Je vais expliquer un peu plus tard. Et vous avez aussi un concept comme un groupe ou une collection ou des liens entre ressources d'un système plus sophistiqué. Donc, en parlant de modèle, j'ai envie de partager une initiative à l'OCA c'est de créer une source qui est dédiée aux communautés et aux repositions d'une ressource existante. Donc, je vais vous montrer un exemple. Donc, nous avons un type de ressource identifié. C'est-à-dire que les gens parlent de la même langue et peuvent essayer de trouver un autre et commencer à parler. Donc, c'est assez intéressant de définir des objectifs communs pour interrompre. Donc, sur la description, vous pouvez aussi générer, c'est utilisé pour générer un API de ressource. Ceci est décrivé dans Remire Hell, qui est un texte, en fait. Et je peux vous montrer que il y a un simulateur où vous pouvez, si vous avez déclaré votre ressource, vous pouvez essayer d'établir un scénario et jouer ça dans un simulateur. Donc, merci. Alors, si vous regardez quelque chose, il y a un switch, en ce cas, il y a un chargeur. Et si vous regardez ça, il y a plusieurs versions de ça. Qu'est-ce que c'est un switch ? Un switch spécial, qui est binary, peut être décrivé par ce nom officiel. Et qu'est-ce que c'est ? C'est juste un valeur. C'est un bouillon. Donc, il n'y a pas beaucoup de propriétés. Et quelque chose rédibale pour les humains qui peuvent être utilisés. Donc, ici, c'est un type de ressource. Ici, c'est le nom de propriété, le nom de propriété et c'est le type de propriété. C'est très simple. Donc, c'est décrire le switch. Donc, je vais juste réutiliser. Mais si j'ai envie de créer un mine avec un switch de 3 states, je peux juste avoir l'inspiration et faire le mine. Et si j'ai envie de le partager pour la communauté, je peux envoyer une recrétation sur le github. Je pense qu'ils sont utilisés et éventuellement, les gens peuvent utiliser ce genre de nouveau switch. Donc, maintenant, on va voir ce que nous voulons. Donc, premièrement, quand vous commencez un projet, vous devez sélectionner des outils spécifiques ou des systèmes opératifs dépendant de votre existing legacy project. Donc, je parle de Linux aujourd'hui. Si vous ne pouvez pas utiliser Linux parce que vous travaillez sur des devises plus constrain, vous pouvez juste utiliser Bermetal Development. Pour Linux, il y a des supports pour Debian et Ubuntu. Yocto donne des layers called Meta OIC. Tizen, évidemment, parce que c'est une partie de la plateforme. Et je sais que les gens mettent ça dans leur route avec OpenWRT, mais c'est un basic... Je pense que ça peut être important pour aucune distribution de votre choix. Et aussi, sur les systèmes non-linux, vous avez support pour Android, Windows, Mac, etc. Donc, c'est une partie pour le software et pour le hardware, si vous voulez commencer à développer, c'est la plus utilisée, c'est d'utiliser un single-board computer. Donc, c'est assez disponible. Il y a des supports de communauté. Donc, la plus fameuse que j'ai vécu c'est Raspberry Pi. Si vous voulez utiliser Open Source Hardware pour faire votre propre produit, vous pouvez utiliser un autre design, Middleboard, c'est l'un d'entre eux. Et le plus tard, c'est le samsung development board. Il y a l'un d'entre eux, ici. Et ce que vous trouverez de ce genre de board, vous avez l'accès à l'input-output. Vous pouvez avoir différents bus, et éventuellement, l'antenne, si vous voulez donner des connectivités wireless. Et d'autres choses que je vais vous expliquer en détail. Donc, pour commencer avec votre activité, nous n'avons pas une très bonne documentation à ce moment. Donc, si vous voulez vous emprisonner, vous pouvez vous donner des sources. Nous avons un geek repositive, et un tableau. Vous pouvez les donner. Nous vamos utiliser un système SCON. Donc SCON a des semaines si vous voulez supporter d'autres opérations, c'est un tool de Python. Et il y a un peu de flexibilité. Donc, Donc, une fois que vous avez construit le software, vous avez une librairie de share et vous pouvez l'intégrer et l'intégrer comme d'autres librairies que vous avez utilisées avant. Donc, vous pouvez l'utiliser avec la librairie de share et vous pouvez l'utiliser. Si vous regardez la source, si vous voulez commencer d'une manière, je vous suggère d'avoir un look à l'application simple, qui est dans l'exemple subfolder de la source folder. Et si vous voulez regarder l'application, il y a un folder C++ où tout est dans. Et si vous êtes constrainé et vous voulez pas utiliser C++ mais directement le C core, vous avez un subset de l'SDK, qui est le core, et le C++ librairie en utilisant ce core est dans ce folder. Donc, ce que je vais expliquer ici, c'est que ce sont seulement 1, 2, 3, 4, pour 4 étapes pour obtenir ceci en travaillant. Donc, le premier est l'utilisation d'un client et un serveur, la registration des ressources sur le serveur, pour dire, « Hey, je suis bien en train d'utiliser ceci. » La discovery des ressources sur le client. Et puis, on va commencer à parler d'application et d'utiliser des valeurs. Donc, ceci a été l'implémentation dans un projet appelé IoTVT-Example. Je vais probablement faire plus visible sur IoTVT-Wekey, mais c'est ce que c'est en train de travailler sur ce site. Donc, on va commencer par le code. Donc, sur ce site, j'ai le serveur et sur l'autre, c'est le client. Donc, vous pouvez juste commencer par écrire votre classe avec les deux exécutables. Vous allez apprendre l'un du serveur et l'autre du client. Et vous commencez juste d'initialiser la plateforme par passer quelques paramètres. Donc, c'est la même, exactement la même, d'un côté à l'autre, excepto que nous nous disons que ceci est en mode serveur et l'autre est en mode client. Donc, toutes ces valeurs sont des valeurs. En même temps, vous pouvez juste d'initialiser l'OI, l'IOTVT-Framework et commencer à utiliser ça. Donc, ceci est la seule, non, deux ligne de code. Donc, pour la registration de la ressource, c'est cette fonction de registration de ressource. Nous avons un objectif en anglais, ce que l'on va utiliser plus tard. Nous allons maintenant dire le nom de la ressource par son nom. Donc, j'utilise Binary, Relay. Vous pouvez l'initialiser, c'est tout ce que vous voulez. Vous pouvez avoir plusieurs ressources et d'initialiser les deux, en même temps, d'initialiser les deux par un nombre. Après, vous avez un slash 1 slash 2 slash up slash down slash whatever. C'est le nom. J'utilise le même nom comme l'OCF-1 IoT. Vous pouvez mettre tout le nom que vous voulez. Mais si vous utilisez quelque chose qui est déjà extérieur, ça veut dire que les gens qui sont conscients de ce nom sera capable de l'utiliser. C'est très convenant. C'est l'interface, c'est la valeur du jour, un objectif en anglais. Et, nous allons dire des habilités de la ressource. Le plus important, c'est que cette ressource peut être découverte par d'autres. C'est-à-dire qu'ils n'ont pas besoin de connaître mon nom pour m'utiliser. Ils peuvent juste demander qui est là et je vais le répliquer. Et aussi, observables. C'est-à-dire que si je change, tous les gens qui sont intéressés à mon nouveau état seraient conscients de ce changement. Donc, c'est assez cool. Donc, on a registré une ressource sur le service. Et maintenant, les clients de l'intérieur, nous faisons la découverte. Donc, nous appelons une fonction de ressource fin. Et après ce que c'est fait, nous appelons la fonction de callback sur l'interface du service. En fin, c'est l'interface de fin. Donc, la fonction fin. Ok, alors, je dis que c'est une fonction de C++11, une fonction de callback. Je ne vais pas expliquer trop maintenant. Si vous trouvez une ressource, vous allez avoir un objectif de callback et ensuite, vous trouverez une fonction de callback. C'est comment ça marche. Donc, c'est un nom spécial du co-app, appelant. On va trouver tout ce qu'il y a sur la réseau. C'est comment dire ça en anglais. Donc, chaque ressource devrait être visible en utilisant ce nom spécial. Je suis en utilisant un protocole IP. Si je suis en utilisant Bluetooth, j'ai ajouté un autre. Je peux utiliser la fonction de eux aussi. Et la qualité du service. C'est très bas, mais il peut être quelque chose de différent. Et maintenant, j'ai appelé la fonction de fin. L'interface de fin c'est de voir ce request et d'avoir un answer qui est appelant la fonction de fin. Et de passer ce point de ressource OCR qui est assez abstract. Et ensuite, je peux essayer de regarder ces ressources et voir si c'est le nom, si c'est le type, comment je peux prendre ces ressources. Donc, dans le cas simple, je suis en train de regarder un switch de binary, si tu me trouves, si je te trouvais, je vais créer un objectif qui va être utilisé pour intervacuer les ressources. Donc, nous allons commencer d'intervacuer les ressources. Donc, il y a la fonction post pour mettre la valeur de ces ressources. Donc, je suis désolé. Oui. Donc, il y a une fonction post de la cliente et le service sera sous ce request. Donc, à l'abord, nous évoquons ce request sur chaque request de la procédure. Dans le cas du request post, nous ferons un traitement spécial pour le post. Si c'est un request GET, nous ferons quelque chose peut-être différent. Donc, je pense... Ah, oui. Après la fin du request, je vais vous donner une réponse à la cliente et je vais juste préparer une réponse. Ce ne peut pas être quelque chose. Vous pouvez... Dans mon cas, je vais juste vous donner un nouveau état de la ressource. Donc, maintenant, la cliente, j'ai expliqué ce que la cliente a fait mais si vous voulez le jouer, la cliente fera un request. Et, dans mon cas, j'ai changé la valeur de ma propriété, ce qui était le switch. J'ai installé un... pour exemple, en tant que je discorde le dispositif, j'ai décidé de le tourner, pour exemple. Donc, j'ai changé la valeur de la propriété, j'ai fait mon request. Puis, l'entity handler va décider la fonction de l'autorisation. Ce n'est pas spécifique à l'autorisation. C'est mon design. Et, ensuite, j'ai regardé les requests d'input. J'ai regardé cette représentation de la ressource. Et j'ai dit, hey, let's see, vous avez une valeur. Qu'est-ce que c'est? Et j'ai décidé d'éliminer mon système avec cette nouvelle valeur. Donc, pour la représentation, j'ai regardé la propriété et ensuite, j'ai regardé la propre valeur. Et ensuite, j'ai décidé d'éliminer la nouvelle valeur sur le terminal, ce qui n'est pas très utile pour maintenant. Donc, ce n'est pas... Je ne vais pas le expliquer encore, mais, ce n'est pas ce que nous avons fait. Donc, nous avons cette partie d'invisération. L'entity handler, qui va procéder tous les requests des clients. Et ici, il y a des différents types de requests. Alors, nous avons le GET1, pour obtenir une valeur. Et nous avons ce Notify1. Ce n'est pas une action, mais c'est un callback qui a été appelé. Si la valeur a été changée, c'est-à-dire que tous les clients qui ont été configurés, qui ont été observés pour la ressource, on obtient un callback, un callback, et ça sera connu. La ressource a été changée. Donc, il n'y a pas de spéciales nouvelles. Si vous travaillez sur la machine state, c'est la même chose. Donc, maintenant, on va retourner à la réalité. Donc, nous en parlons sur la ressource, et la plupart veulent utiliser les choses physiques. Donc, probablement, la plupart de ces gens de cette chambre savent ce qu'est un GPIO, mais ici, il y a une petite résumé, c'est juste comment contrôler la voltage sur une pin du espace. Si je veux faire cette linux, il y a d'autres mécanismes. La plus générique est d'utiliser ces mécanismes FS. C'est-à-dire, vous pouvez utiliser le GPIO. Tout d'abord, il faut l'exporter et l'utiliser. C'est la direction, si c'est une input ou une output, dans le cas d'un smart switch, c'est l'output. Et si vous juste l'utilisez cet espace spécial, il va s'occuper d'un current sur cette pin. La plus efficient façon est d'utiliser direct access avec kernel, donc vous devez utiliser un spécial registre quand vous pouvez directement l'utiliser. Il y a aussi une autre libra que j'ai utilisée avant, c'est assez convenient, c'est quelque chose générique pour faire toute l'absorption ça veut dire qu'il n'y a pas de détails sur comment tout est mappé vous pouvez juste utiliser les libraries, dire quel type d'absorption vous utilisez et tout est comme magie. Et aussi, il y a un autre projet appelé UPM qui est un database de sensors qui travaillent ensemble, donc c'est assez convenient. Donc si nous savons comment contrôler l'outside de l'électricité vous, vous devez juste mettre ceci dans notre fonction d'outside et décider de tourner le GPIO ou l'offre. C'est tout simple comme ça. Je l'ai écrit dans ce file qui a été créé avant et vous write la nouvelle valeur de l'objet. Donc ici il y a un nouvel projet appelé Artic. C'est un nouveau développement pour IoT. Vous avez Exynos SOC sur ça. Il a 8 calls donc c'est beaucoup plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus plus C'est quelque chose que j'ai fait avant. Si vous voulez faire un DIY, vous devez créer votre propre rallye. Donc, le problème que vous ne pouvez pas mettre directement, ce bord ne vous donnera pas 2200 volts. Vous avez besoin de contrôler votre rallye et le voltage est seulement 3 volts, donc vous devez adapter. Je suis en train d'utiliser un rallye de 5 volts, qui est assez commun. Et avec ce transistor, quand il y a des courants ici, le base fait un switch. Je ne vais pas expliquer ça trop bien, parce que si vous voulez une prototype, vous devez mieux obtenir des modules, c'est assez... Je pense que c'est une compréhension et vous pouvez obtenir beaucoup d'elles. Donc, pour la démonstration, j'utilise ce soleil, c'est un Arduino, donc il y a 3 pins, un pour le signal et ensuite 5 volts en bas, c'est tout. Et puis vous pouvez connecter les choses que vous voulez derrière ça. Donc, quelque chose peut être très cool pour la prototype. Il y a aussi d'utilisation d'un moteur d'eau, comme celui-ci. Il n'y a pas de CPU, c'est juste des électroniques, et vous vous mettez juste sur le bord de l'eau et vous avez toutes ces fonctionnalités. Donc, ça va sauver votre temps. Donc, celui-ci est minibordé. Peut-être que vous ne savez pas de celui-ci, mais oui, oui. Donc, celui-ci est appelé Rabbit Max pour le Raspberry Pi. Et ça a la même démonstration que celui-ci. Donc, si vous mettez ça sur le top de la Raspberry Pi, vous avez des différents types de sensors. Vous pouvez mettre un extra 1, vous pouvez mettre un display. Je pense que ce genre de bord de l'eau va vous sauver beaucoup de temps. Pour l'adrino aussi, ils utilisent leur propre format. Et vous devez prendre soin de ça, parce qu'ils utilisent 5 volts de voltage, et la plupart des bords de développement sont utilisés 3,3 volts. Donc, venez, venez, venez, ne screwz pas vos bords avec incompatibilité. Donc, je sais qu'il y a des bords adapteurs, quand vous pouvez poursuivre un bords d'adrino en Raspberry Pi ou quelque chose comme ça. Donc, maintenant, je parle de Linux sur le bords de développement. Ce n'est pas IoT. IoT est un bords très constrain. Donc, c'est cool pour le développement, c'est cool pour les concepts de validation. Donc, vous n'aurez probablement pas utilisé Linux sur des produits qui sont supposés pour les derniers 10 ans sur les batteries ou quelque chose comme ça. Donc, vous avez besoin d'utiliser probablement un microcontroller et avec des ressources très limitées en temps de mémoire. Donc, nous avons une version de IoT-VT, qui est une courbe, comme je l'ai dit, en C. Vous pouvez l'utiliser. C'est la même courbe. Et c'est quelque chose de très cool. J'ai trouvé que la même courbe base peut aussi rassembler sur Linux ou sur Arduino. Donc, c'est peut-être plus facile de débugger un programme sur Linux que sur Arduino Bord, pour exemple. Donc, oui, le sample que je vous montre ici est seulement 100K de footprint. Ça vous a donné une idée. Je sais qu'il y a... Je vais vous expliquer plus tard. Donc, vous vous souvenez de la courbe que je vous montre? C'est exactement la même courbe. Il n'y a pas de différence. Donc, maintenant, je peux vous expliquer que, quand vous avez votre IoT-VT pour le device, vous pouvez interroger avec d'autres devices qui aussi soutenent la IoT-VT. Donc, peut-être il y a plusieurs, mais je sais très bien Tizen. Donc, je peux vous dire que c'est partie de la plateforme dans la troisième version de Tizen. Et pour la dernière version, qui est la plupart des produits qu'on a aujourd'hui, vous pouvez le acheter comme application, et ça va aussi rassembler. C'est juste un issue d'intégration. En termes de fonctionnalité, c'est la même. Donc, j'ai cette courbe sur mon watch, mon téléphone. Maintenant, j'ai juste besoin de la télé, peut-être. Et si vous voulez aussi interroger avec d'autres systèmes de Linux, nous avons fait un effort pour soutenir Yocto. Donc, ce n'est pas un projet d'utilisation de Yocto. Vous pouvez obtenir cette feature IoT-VT sans la peinture. C'est appelé Meta OIC Layer. Donc, nous avons un soutien de bokeh, évidemment. Et donc, l'automotive distribution, Genevieve et GL, et aussi l'intel système Oslo. Et aussi, l'automotive système Android et Windows. Donc, peut-être que vous avez déjà vu ça, parce que j'ai fait la démonstration du King. Mais je peux le montrer de nouveau et expliquer. Donc, c'est un fan. Il est connecté à Hub avec un overlay. Et avec un client sur mon téléphone, j'ai fait une application très basique. D'abord, c'est de découvrir la ressource. Et ensuite, je peux décider de changer la valeur. Donc, il y a trois boutons. Le bouton au milieu est juste de toclé la valeur à la valeur opposée. Donc, c'est la même application. Et quand je dis que c'est la même, c'est en fait la même. C'est la même code base, juste avec différents parameters de config. C'est fonctionné sur cette watch. Donc, quelque chose d'intéressant, c'est que si j'ai plusieurs modèles à partager la même ressource, il y aura d'autres modèles sur chaque changement. C'est ce que je vous montre ici. Donc, si vous regardez la valeur, c'est 0 et 1. C'est adapté en temps réel, dans différents places. Oh, oui. J'utilise un Wi-Fi, parce que je n'ai pas le driver pour le Wi-Fi de mon développement. Mais, comme je l'ai dit, il peut supporter de différents modèles. Pour ce genre de modèles, Bluetooth Low Energy sera la meilleure option pour ce genre d'expériment. Mais l'IP a été plus facile pour moi, parce que je peux travailler sur ma machine desktop, et puis je l'utilise. Mais ça marche. C'est-à-dire, si vous avez un modèles qui supporte l'IP, de toute façon, le travail est terminé. Donc, ah, quelque chose que je peux... Je peux aussi mettre ça en route à la maison. C'est quelque chose que je peux faire, l'intégrer. Donc, je suis à ma maison, de toute façon. Donc, sur la démonstration, tous les... tous les... tous les... sur le watch, sur le téléphone, sur le développement bordel, c'est une version différente, mais c'est un système de séparation. Mais je n'ai pas voulu faire ce talk spécifique sur Tizen, parce que c'est... c'est... ouest agnostique, donc ça n'a pas le sens de se concentrer sur la seule. Donc, maintenant, de ce... Qu'est-ce qu'on veut faire? Probablement, ça fait le sens de regarder la sécurité, parce que c'est un topic très important. Donc, pour... utiliser ça, vous avez juste besoin de construire la bibliothèque, encore une fois, avec un flag de sécurité. C'est quelque chose comme ça. Ce n'est pas difficile. Mais la première fois que vous allez faire votre programme, ça ne marche pas, parce que vous avez besoin d'abord d'installer un certificateur pour faire... d'installer, d'installer le... le framework et votre programme. Il y a des outils qui sont spécifiques pour établir la provision. Et vous pouvez aussi mettre des devices. Vous pouvez... c'est quelque chose que vous pourriez attendre d'un système de sécurité. Et si vous regardez... si votre système, votre hardware est très constrain, alors il y a aussi une autre version de l'activité, qui est encore plus constrain que la version C de l'SDK. Elle a été présentée il y a, je pense, deux jours avant. Et je pense que c'est quelque chose qui peut être intéressant de tester dans différents systèmes. Et en termes de connectivité, oui, c'est pour répondre aux questions. Il y a beaucoup de transports. Et si vous avez fait ceci dans votre très limité de l'activité, peut-être que vous pouvez aussi considérer ceci à un niveau grand. C'est-à-dire que vous pouvez éventuellement déployer un réseau de la même unité et voir comment ils peuvent interrompre ensemble. Establier les règles entre eux. Et éventuellement il y a une back-end globale. C'est-à-dire que vous pouvez ajouter des valeurs aussi. Et éventuellement essayer de faire ceci dans un contexte. Donc, c'est-à-dire si vous faites votre application à la maison, peut-être c'est intéressant de voir ce qui est supposed d'être dans le smart home et voir si vous pouvez interrompre avec eux. Et quelque chose qui peut être vraiment incroyable aussi c'est de voir comment différents contextes peuvent interrompre ensemble. C'est-à-dire si j'ai quelque chose que je ne sais pas. Je ne suis pas un designer de ce cas-là, mais c'est un winter, c'est très cool. Au-delà de l'intérieur votre voiture est très de la température. Et quand vous faites votre café, peut-être le système peut dire que c'est très cool donc c'est mieux. Vous pouvez tourner votre café pendant votre café. C'est possible. C'est un démon prévu avec un système différent. J'utilise les mêmes des devices de l'automotive de l'appareil. Pour exemple, il y a un appareil de map et on a aussi un modèle de position. On peut aussi créer des applications qui ont une position de quelque chose. C'est très basique, mais il y a beaucoup d'opportunités. Alors ce que je veux vous remercier, c'est de protéger quelque chose de scratch c'est possible. Vous ne n'avez pas besoin de beaucoup de technologie comme un système comme Cloud ou Key ou juste construire le code et vous avez déjà déjà une connectivité. Peut-être ce n'est pas parce que par rapport à l'IP, il n'y a pas de connectivité à l'internet. Donc vous pouvez déjà mettre des nouvelles intelligences entre les nouvelles devices. Et la ressource, la ressource change dans le state de la ressource, c'est quelque chose qu'on peut facilement faire. Vous pouvez déployer la distribution. Et quand vous avez fait ceci, il y a des devices qui sont prêts à parler avec vous. Alors Tizen c'est un de eux mais dans la Open Connectivité Foundation il y a plus que je devrais vérifier l'update mais il y a 200 ou peut-être plus. Les company qui veulent ceci. Donc il y a des liens. Vous verrez l'update si vous voulez voir. Je veux juste expliquer si vous voulez être touchés avec moi ou d'autres personnes. Dans Tizen on fait une rencontre de une fois d'autre. Vous avez des questions mais je vous présente plus de choses. Je vais essayer d'expliquer ceci et de expliquer ceci. Merci pour être ici et si vous avez une question je peux vous donner une question si vous voulez. Ok bonne question je dis que je vais aller mais je n'expliquerai pas mais IoTVT c'est un nouveau nom et il y a beaucoup de choses pour communication on utilise un protocole basé sur UDP on le le constrain si vous demandez d'envoi TCP il y a des versions d'envoi TCP en version plus d'un 2 TCP et XMPP en autres cas c'est très flexible il y a un cas d'adresse mais on peut Oh, une chose que je peux m'expliquer, c'est que pour la discovery de l'application, nous avons utilisé un multicast. C'est à dire que sur le réseau, tout le monde peut s'occuper de ce qui se passe. Mon présentation est en train de se concentrer, parce que j'ai voulu faire le plus simple possible, mais non, tout est... Pour dire que ce n'est rien de monde, c'est le plus que vous pouvez, le moins que vous pouvez. Mais je préfère avoir un approche pour le plus simple, pour le plus difficile et le plus dur. Surtout parce qu'il peut être confusé, parce que si quelqu'un est nouveau à ce projet, il se déploie juste un grand nombre de codes, et il peut s'occuper très rapidement. Donc, ce nouvel cas, je pense, est très simple. Les deux sont supportés. Peut-être que je dois répéter la question pour la vidéo. La question est sur les IPv6 et les IPv4, et les deux sont supportés. Leon, tu as la question ? Oui. Oui, oui. Oui, c'est la raison. Je n'ai jamais fait le travail, mais si tu regardes les trois, tu trouveras le rap. Et aussi, le M2M. Les gens ont fait une expérience. Donc, si c'est transport agnostic, tu peux utiliser peut-être le SIG-B, ou la Bluetooth, par exemple, mais si tu dis que c'est un MDNS, co-app, DTLS, toutes ces choses qui nécessitent l'IP, la Bluetooth PicoNet n'a pas l'IP d'adresses. Non, mais on peut s'adapter. Il y a des macadresses. Je ne sais pas de la implementation Bluetooth, mais l'encryption est probablement la même, mais ce n'est pas un packet de IP. Il doit être la packet Bluetooth. Stéphane ? Oui. Oui, oui, oui. Quand je... Je pense que... Quand j'ai commencé mon client, j'ai dit que je pouvais découvrir. Donc, si je ne pouvais découvrir, le client devrait explicitement m'aider à m'identifier. Donc, ce n'est pas restructif, mais... il y a beaucoup de facilités si tu utilises les services. Ok, si tu n'as pas d'autres questions, je peux vous montrer d'autres choses. Donc... Oui, c'est la même version de la démonstration, mais tu es en train d'aller à Avenue. Ici, il y a un serveur, et c'est un max de rabbit de Leo, et j'ai un petit bouton sur ça. Donc, j'ai juste le bouton avec un bouton. Et tu as cette belle balle plasma. Mais je ne peux pas le porter. Donc, maintenant, quelque chose... Ça peut être... Je pense que ça peut être utile quand tu veux établir des outils. Tu as un simulateur, donc la première chose que tu dois faire c'est de charger un modèle, qui est écrit en R, A, M, L, dans la repositorie. Et quand tu l'aimes, la démonstration... Qu'est-ce que c'est? Oui, c'est... Tu vois les propriétés, les valeurs, qui sont prises, et la démonstration et tu peux commencer d'interroger avec ça. Oh, non. Oh, ce que je voulais vous montrer est... Là, tu as le... Tu as la démonstration. J'ai utilisé le même nom dans ma code C, mais ça peut être quelque chose d'autre. Donc, ici est le côté client. Quand tu commences, tu trouveras la ressource sous ton nom. Et si tu cliques sur ça, tu peux voir... Oui, tu as un... un petit UI, où tu peux changer la valeur de la ressource. Donc... Ici, je vous montre un problème. J'ai dit que je voulais faire une bonne question sur ce device, et il n'est pas supporté par le modèle. Tu peux seulement poser. Il y a une petite ambiguïté avec ça. Donc, si je le fais encore, en utilisant le poste, ça marche. Euh... Ok. Et maintenant, c'est... Quand la valeur a été changée. Oh... C'est... Oui, on est sur le côté de la service. Et on... Oui, c'est... C'est... On va donner l'answer au client sur le poste. Je pense que c'est terminé, mais si tu as une question extraite, tu peux me trouver après. Oui, bien sûr. Oui. Oui. Il y a un projet qui s'appelle IoTVT Node. Et... Il a été monté deux jours plus tard, je pense. Et oui, oui, tu peux... Qu'est-ce que je vous montre en C++? Tu peux avoir quelque chose similaire dans le JavaScript, et peut-être moins de codes que C++. Oui. C'est... C'est... C'est un bon remarque, parce que on pense que beaucoup de gens qui ont designé IoTVT des devises ou des services ne vont probablement pas être des développeurs d'ambédit. Parce que, si ce n'est pas scale, il n'y a pas d'autres gens familiales avec cette technologie d'ambédit pour adresser toutes les nécessaires du marché. Donc, de toute façon, je vais partager mon code. Je vais le faire plus visible. Et si tu veux avoir un look, si tu n'es pas vraiment porté à un nouveau système, un nouveau système, je serai vraiment intéressé de savoir si tu as des problèmes sur l'intégrité de ce son. Et merci, encore une fois.