Pierre's Embedded and Mobile Blog

Soulevons le capot des systèmes embarqués et mobiles

Posts
  • Pierre's Embedded and Mobile Blog

    Des stages, du boulot, de l’aide pour monter sa boite…

    • 2 Comments

    Vous cherchez un stage? un poste? vous montez votre boite? envoyez moi votre CV, ou parlez moi de votre projet! Peu conventionnel s’il en est, ce post est un appel car à la fois en temps de crise, et aussi au temps ou les bourgeons fleurissent et les étudiants sortent d’école, tout ne va pas toujours mal… Notamment le marché de l’embedded, qui explose :) c’est Ze place to be en ce moment!

    • Etudiants: vous cherchez un stage, j’ai des partenaires et des clients qui prennent régulièrement des stagiaires :)
    • Développeurs: vous voulez bouger, faites moi part de vos envie, il y a peut-être quelque chose qui vous correspond pas si loin!
    • Freelance, et porteurs de projets: Racontez-moi votre idée, et regardez si BizSpark ne peut pas vous intéresser: si c’est le cas, faites moi signe!
    • Entreprises: vous cherchez un stagiaire/un développeur ? j’ai peut-être un contact!

    Disclaimer: je ne suis pas une agence de recrutement, je ne m’engage sur aucun résultat, j’ai juste envie de mettre en relation les gens, si l’occasion se présente. y’a pas écrit ANPE!

  • Pierre's Embedded and Mobile Blog

    Les webcasts des TechDays 2009 sont en ligne!

    • 3 Comments

    Les sessions des TechDays étaient enregistrées, elles on été éditées et mises en ligne! vous pouvez accéder aux sessions du parcours mobilité et embarqué à partir de ce lien.

    Chaque session d’une heure est divisée en 3 webcasts de 20 minutes, que vous pouvez regarder en streaming, ou télécharger; vous avez également accès aux slides présentées dans la session et parfois aux codes sources, donc ne vous privez pas d’aller retrouver le contenu qui vous a plu, ou celui que vous avez raté :)

    N’oubliez pas non plus de noter ces webcasts, et à les partager avec vos amis! je vous donne rendez-vous aux prochains évènements!

  • Pierre's Embedded and Mobile Blog

    Wake on Lan depuis votre téléphone

    • 8 Comments

    Soyez green, faites des économies d’énergie! Quoi, vous avez un serveur à la maison? assassin! Il ne sert pas forcément toute la journée en continu!

    Oui, mais le problème c’est qu’on a pas forcément idée de quand on pourrait en avoir besoin… il faudrait pouvoir l’allumer et l’éteindre à distance juste quand on en a besoin. La fonction Wake-On-Lan de la majorité des cartes mères récentes (traduisez, ATX, ca fait quand même un bail) est là pour ça: elle permet en envoyant un “magic packet” sur le port ethernet de réveiller la machine: c’est comme appuyer sur le bouton “ON” à distance.

    Ce qu’on va faire en quelques lignes, c’est écrire un petit programme qui nous permet de réveiller le PC ou son serveur à distance avec son téléphone mobile.

    Le “magic packet” est composé de 6 fois 0xFF suivi de 16 fois l’adresse MAC de la machine à réveiller: facile à générer!

    Byte[] OutputBuffer = new Byte[102];
    
    /* The first 6 bytes */
    for (int i = 0; i < 6; i++)
        OutputBuffer[i] = 0xFF;
    
    /* Then we parse the mac address, and put it into an intermediate buffer */
    String StrippedMacAddress = Regex.Replace(tbMac.Text, "[^a-f0-9]", "");
    
    if (StrippedMacAddress.Length != 12)
    {
        MessageBox.Show("Please enter the mac address formatted as xx:xx:xx:xx:xx:xx");
        return;
    }
    
    Byte[] MacAddressBuffer = new Byte[6];
    for (int i = 0; i < 6; i++)
    {
        String s = StrippedMacAddress.Substring(i * 2, 2);
        MacAddressBuffer[i] = Byte.Parse(s, System.Globalization.NumberStyles.HexNumber);
    }
    
    /* Then we copy this Mac address 16 times */
    for (int i = 6; i <= 96; i+=6)
        MacAddressBuffer.CopyTo(OutputBuffer, i);

    Plusieurs choses à souligner dans ce petit bout de code:

    • D’abord l’utilisation de l’expression régulière permet de ne pas avoir à s’occuper de savoir comment l’utilisateur formatte son adresse mac (avec des :, ou des – ou des .). Ensuite on teste le nombre de caractères, c’est basique, et pas forcément élégant mais bon ca évite que l’utilisateur ne rentre n’importe quoi. Certes certain format “corrects” ne passeraient pas le test, mais on veut aussi garder le code simple :)
    • Pour la copie x16 de l’adresse MAC, il vaut mieux la convertir en tableau de byte avant… Dans le code dont je me suis inspiré, celui qui avait écrit le code refaisait un parsing de la chaine de caractère à chaque itération! Sur ce genre de petits bouts de code, le gain en optimisation n’est pas forcément critique, mais ca ne doit pas empêcher de faire les choses intelligement, car sur un téléphone mobile, il y a d’autres applications qui tournent en même temps! :)
    • Pour l’incrément de boucle, il peut paraitre étrange, à la base j’avais écrit ça:
    for (int i = 1; i <= 16; i++)
        MacAddressBuffer.CopyTo(OutputBuffer, i*6);

    L’incrément est plus classique (i++) mais du coup on fait une multiplication à chaque fois. j’ai les multiplications en horreur (ça coute cher dans un micro embarqué) donc je préfère les éviter en utilisant i+=6. c’est surement du snobisme, mais bon… en attendant je gagne un tout petit peu de batterie :)

    Bref, il reste à envoyer ce “magic packet”, et c’est l’affaire de quelques lignes:

    /* We're finally ready to send the packet, so let's do it! */
    try
    {
        IPEndPoint remoteEndPoint = new IPEndPoint(IPAddress.Parse(tbIpAddress.Text), int.Parse(tbPort.Text));
        UdpClient myUdpClient = new UdpClient();
        myUdpClient.Send(OutputBuffer, OutputBuffer.Length, remoteEndPoint);
        myUdpClient.Close();
    }
    catch (Exception ex)
    {
        MessageBox.Show("Problem sending the WOL Datagram:\r\n" + ex.Message, "Datagram not sent", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
    }

     

    Je n’inclue pas le code du formulaire, archi-simple, qui contient 3 text box et deux soft keys (à préférer aux boutons, non disponible dans le SDK standard pour les terminaux sans touchscreen!): un pour quitter, un pour lancer envoyer le magic packet: Vous aurez compris que tbMac est la TextBox pour l’adresse MAC, tbIpAddress pour l’adresse IP, et tbPort le numéro de port.

    Quoi, un numéro de port???

    Ben oui, parce que le serveur il est derrière une box, et donc il faut paramétrer la box pour laisser passer le magic packet par un certain port: choisissez celui qui vous plait! en fait la machine à réveiller n’en a rien à faire, du port sur lequel elle reçoit le magic packet: c’est juste histoire de passer le firewall!

    Merci Blaise pour l’idée, le bout de code de référence (même si c’était du VB!)!

     

  • Pierre's Embedded and Mobile Blog

    Prise en main des AlphaMobileControls

    • 0 Comments

    Les AlphaMobileControls, c’est un projet CodePlex qui a un certain âge mais qui a le mérite d’amener la gestion de la transparence dans le Compact Framework, ce qui peut être sympa pour avoir de plus jolies interfaces.

    Le fait est que si ces contrôles sont bien faits, il y a quelques trucs non documentés, et ce post est destiné à vous faire partager ceux que j’ai pu trouver: c’est pas bien long, mais il m’a fallut un peu de temps pour comprendre :)

    Disclaimer: ce post enfonce peut-être des portes ouvertes pour les experts du GDI, mais je n’en suis pas un!

    Les AlphaMobileControls regroupent plusieurs types de contrôles:

    • AlphaMobileImage
    • AlphaMobileImageButton
    • AlphaMobileLabel
    • AlphaMobileForm

    Je ne me suis intéressé qu’aux deux premiers, et au dernier, celui ci étant nécessaire au bon fonctionnement de l’application.

    AlphaImageButton

    Au départ, je voulais juste des boutons qui gèrent la transparence, et avec des coins ronds. La première chose à savoir est qu’on ne peut pas intégrer un bouton tout seul. Pour que le bouton marche bien il faut également transformer son formulaire de base en AlphaMobileForm.

    Ensuite, l’apparence du bouton est géré avec des images: personnellement j’utilise des PNG (pour le support de la transparence justement). On peut définir 3 différents états pour le bouton: Normal, Active (quand on clique dessus) et Disabled (désactivé). Pour chacun de ces états, on peut définir une image différente. En revanche il faut faire attention à la façon dont on inclus les ressources: il ne faut pas oublier, après les avoir ajoutées les images dans les ressources du projet, de choisir dans les propriétés de chacune de ces ressources “Embedded Ressource” dans le champ “Build Action”. Si à l’exécution vous tombez sur une exception pour une référence null dans la méthode CreateFromStream de la class AlphaImage, c’est que vous avez oublié cette étape!

    J’imagine qu’il existe le même genre de caveats pour l’AlphaMobileLabel

    AlphaImage

    L’AlphaImage ne dérive pas d’une PictureBox. Ni même d’une Image ou d’un Bitmap. Elle possède sa propre méthode Draw, et une chose à savoir, c’est qu’il n’est pas possible de récupérer les évènements, comme Click, sur ce contrôle. Si vous voulez une image qui réagit quand on clique dessus, prenez l’AlphaImageButton!

    Vous voilà un peu mieux armé que moi il y a quelques heures, alors à vos Visual Studio!

  • Pierre's Embedded and Mobile Blog

    Windows Embedded Standard 2009: Une Certification et la Disponibilité dans MSDNAA

    • 1 Comments

    Deux bonnes nouvelles de plus dans la sphère de Windows Embedded Standard 2009!

    Premièrement, il existe maintenant une certification pour Windows Embedded Standard 2009:  Toutes les infos sont cette page

    Un Kit de Préparation (sous la forme d’un livret de préparation d’environ 200 pages) devrait arriver d’ici la mi-mars en Anglais et d’ici Juin dans d’autres langues (dont le Français), permettra de se mettre à niveau avant de tenter l’examen. Par ailleurs, pour ceux qui raterait le premier examen (ça arrive, même aux meilleurs) il y a une offre de repasser le deuxième examen gratuitement!

    L’autre bonne nouvelle est pour les étudiants et professeurs qui souhaitaient utiliser Windows Embedded Standard 2009 (anciennement Windows XP Embedded) dans leurs projets et devaient se contenter d’une version d’évaluation timebombée à 120 Jours. Aujourd’hui la version sans TimeBomb est disponible sur MSDNAA, comme l’indique ce post sur le blog de l’équipe Windows Embedded Standard.

    Voila de quoi patienter en attendant la prochaine version de Windows Embedded Standard, pour l’instant nom de code “Québec”, qui sera basée sur Windows 7!

  • Pierre's Embedded and Mobile Blog

    Un blog de plus pour l’embarqué et la mobilité

    • 1 Comments

    Juste après une formidable prestation aux Techdays, Jean-Michel Guemguem, de Tekigo, commence à blogger sur les technologies embarquées et mobiles sur le blog de sa société Tekigo. Son premier post, technique et bourré de code, parle de l'implémentation d'un service d'évènements avec le .NET MicroFramework. Un blog de plus à suivre donc :) vous pouvez également retrouver Jean-Michel sur les Forums MSDN sur le développement embarqué où ils répond régulièrement aux questions posées par les développeurs.

    La blogosphère française sur le sujet n’est pas grande alors il faut souligner chaque nouvel engagement :) Welcome Jean-Michel!

  • Pierre's Embedded and Mobile Blog

    Les Techdays à moins de 24h : J’y serai… et vous?

    • 1 Comments

    Si vous cherchez le gars qui s’occupe du parcours mobilité et systèmes embarqués sur les techdays (et plus généralement des relations avec les développeurs sur ces technos), voici quelques indices:

    • Mardi 10
      • 9h: selon toutes probabilité sur scène, pour la before de la plénière développeur (KYN201) dans le grand amphi: peut-être pour jouer avec des robots :)
      • 13h: pas loin des salles 351,  242B ou 224, respectivement pour EMB202, sur WCF et Windows Mobile, EMB203 Exchange + Windows Mobile, EMB209, sur le développement avec Windows Embedded CE.
      • 14h30: probablement près de la salle 234 pour REC102 sur l’enseignement de Windows Embedded CE
      • 16h: surement pas loin de la salle 224M pour EMB108 qui introduira (ou rappelera) l’ensemble de la famille Windows Embedded
      • 17h30: vraisemblablement entre les salles 343, 202, 212 et 342B respectivement pour EMB201 sur la sécurité avec Windows Embedded Standard, EMB205 sur le .NET MicroFramework, EMB207 sur SCMDM, ou REC114 sur le design des objets du futur!
    • Mercredi 11
      • 13h: pourquoi pas du coté de la salle 353 pour EMB204 sur Microsoft Robotics Developer Studio
      • 16h: à coup sur dans la salle 351, sur scène! pour EMB111 sur les plus beaux terminaux et les applications les plus sympas avec Windows Mobile
      • 17h30: presque surement dans la salle 253, pour EMB306 sur  le développement d’interfaces riches avec Windows Mobile et pourquoi pas en 252 pour COL213 sur la mobilité et les communications unifiées
    • Jeudi 12
      • 11h: pas forcément loin de la salle 352B pour IND216 sur le poste mobile en entreprise
      • 13h: peut-être bien en 234 pour REC115, la startup démo madness, car il y a pas mal d’embarqué la dedans!
      • 14h30: il est possible que je soit vers la salle 243 pour NAV106, sur Dynamics Mobile

    Sinon, je serai sur le stand Windows Embedded ou sur le stand Windows Mobile, pour parler avec les développeurs, et les autres :) Et peut-être bien aussi du coté du stand éduc pour des animations Imagine Cup, encore avec des robots :)

  • Pierre's Embedded and Mobile Blog

    Annulation de la session EMB110 mais publication du contenu par d’autres moyens

    • 0 Comments

    Par la force des choses (et surtout les prévisions des participations record sur les sessions découvertes de Windows 7 qui nous obligent à prévoir plus de slots pour la rejouer), la session EMB110 sur l’expérience utilisateur dans les systèmes embarqués a été annulée. C’est une perte sèche pour le parcours embarqué dont je m’occupe, mais comme disent les amateurs de langues mortes, vox populi, vox dei.

    Certains des messages clefs de cette session seront cependant reversés dans la session qui la remplace, à savoir EMB108: Découvrez la famille Windows Embedded. Il est donc toujours intéressant de garder ce timeslot et cette salle dans son agenda!

    Par ailleurs, je m’engage à vous délivrer par d’autres moyens le contenu de EMB110: dès maintenant dans ce post (en version raccourcie), et en webcast après les Techdays. Cette session devait s’adresser aux développeurs embarqués n’ayant pas forcément connaissance des évolutions du framework .NET et des systèmes de la famille Windows Embedded (sous entendu, les développeurs WPF n’apprendront rien ici…)

    L’objectif de cette session était de démontrer l’évolution de l’importance qu’on accorde à l’expérience utilisateur dans les systèmes embarqués. Pourquoi? Parce que de plus en plus de gens sont confrontés a ces systèmes, et particulièrement à ceux de type kiosques et bornes de services. C’est un enjeu très important car un point de service bien réalisé, c’est un utilisateur satisfait et donc fidélisé. Et quand on parle d’expérience utilisateur, on ne parle pas seulement de la beauté de l’interface graphique: on parle aussi souvent de son intuitivité, de sa rapidité, de son accessibilité…

    Dans ce cadre, les technologies Windows Embedded proposent des solutions pour que les fabricants et designers de ces systèmes puissent se concentrer sur la valeur ajoutée de leur système: que ce soit pour le coeur du système, ou pour son apparence et notamment son interface graphique.

    Depuis Windows Embedded Standard 2009, sorti en Novembre 2008, et avec l’arrivée de Windows Embedded POSReady 2009, en janvier, de nombreuses fonctionnalités viennent améliorer Windows XP Embedded et Windows Embedded for Point of Service: notamment l’ajout du Service Pack 3, qui inclut des fonctionnalités de sécurité supplémentaires, et donc un parc de kiosques/bornes de services plus fiables, et plus important encore si on parle d’interfaces graphiques, le framework .NET 3.5 (voire 3.5 SP1 pour POSReady). Les développeurs de ces systèmes ont donc maintenant accès à WPF, et le gain est très important pour plusieurs raisons:

    • D’abord, pour la séparation que ce nouvel outil apporte entre le rôle de designer et le rôle de développeur, qui disposent chacun de leur outil de développement, tout en les rassemblant autour d’un même projet.
    • Ensuite pour le support des interfaces vectorielles, beaucoup plus agréables à l’oeil et adaptable au client et au cadre d’utilisation.
    • En plus, parce que WPF pour les applications locales et Silverlight pour les applications web sont alignés sur ces principes, il est possible d’offrir une expérience consistante à l’utilisateur quelque soit le terminal sur lequel il se trouve (derrière son PC, sur le web, devant le kiosque)

    Enfin, et avec l’arrivée de Windows 7, et notamment le support des interfaces multi-touch, il va sembler naturel aux utilisateurs de se servir de ces interfaces riches, et ceux qui ne le font pas risquent un problème d’image: paraitre obsolète, peu utilisable et inefficace. C’est pourquoi il a été annoncé en même temps à la PDC et à l’ESC East en Octobre 2008 que la prochaine génération de systèmes de la ligne Windows Embedded Standard serait basée sur Windows 7: nom de code de la prochaine version: Windows Embedded “Québec”.

    Windows Embedded “Québec” proposera de nombreuses améliorations à la fois dans l’outil et dans les fonctionnalités des composants: s’il nous est pour l’instant impossible d’en révéler plus on peut déjà imaginer l’intérêt du support du multitouch sur par exemple, une borne d’impression de photos numériques. C’est d’ailleurs l’objet des démonstrations qui devaient avoir lieu pendant cette session:

    • D’abord un kiosque fonctionnel, mais pas forcément riche ou joli, avec des Winforms: on peut sélectionner les photos en appuyant sur leur image réduite et on affiche une vingtaine de photo par pages. Ca a le mérite de marcher.
    • Ensuite un kiosque qui reprend le même principe mais en WPF: c’est déjà plus joli, mais surtout c’est skinnable (pour que chaque utilisateur puisse retrouver son profil qu’il pourrait avoir sur le site web de la même société.
    • En plus, parce qu’avec la séparation du moteur de rendu d’interface du code sous-jacent, on peut par exemple très simplement rajouter un contrôle slider (qui n’existe pas en WinForms) qui permet de zoomer sur les photos, et aider à choisir par exemple entre plusieurs photos qui se ressemblent: et chose encore plus intéressante, on pourrait imaginer que ce slider soit en fait une molette matérielle!
    • Enfin, une interface graphique entièrement tactile et manipulable au doigt, basée sur Windows 7 et un HP TouchSmart PC, permettant de naviguer de manière intuitive dans ses photos comme on peut le faire dans un album photo, en tournant des pages du WPF Book Control de Mitsu

    L’utilisation riche de WPF et du multitouch de Windows 7 pourrait trouver bien d’autres échos dans les systèmes embarqués: je vous laisse imaginer à quoi pourrait ressembler par exemple une borne de jeu du futur, dans un casino ou une salle d’arcade, avec une interface graphique en WPF entièrement accélérée en 3D avec le support des Pixel Shaders de DirectX et la possibilité d’utiliser ses 2 mains pour jouer!

    Il faut donc retenir que malgré la décorellation de la roadmap produits Windows Embedded des produits “Desktop”, le groupe Windows Embedded est engagé à faire profiter des dernières améliorations possibles dans tous les domaines (sécurité, fiabilité, connectivité, interfaces graphiques…) les gens qui choisissent de développer leurs systèmes embarqués avec nos technologies.

    N’hésitez pas à me contacter ou à commenter ce post si vous avez des questions par rapport à ce sujet!

  • Pierre's Embedded and Mobile Blog

    EMB202 et EMB306: les sessions pour développeurs d’applications Windows Mobile et Windows Embedded CE

    • 2 Comments

    Avec le concours d’applications mobiles qui vient d’être lancé, c’est peut-être le moment de se remettre à niveau (ou de s’y mettre tout court) en développement Compact Framework. Le .NET Compact Framework c’est la version allégée du Framework .NET qui permet de développer sur des plateformes Windows Embedded CE et Windows Mobile: pour cela, 2 sessions durant les Techdays 2009:

    • EMB202: Développez des applications connectées pour Windows Mobile avec le Compact Framework et WCF
      • Dans cette session, qui s’adresse au gens qui ont déjà des notions de développement avec Windows Mobile, les MVP Stéphane Sibué et Fabien Décret vous expliqueront comment mettre en oeuvre du Binding (que ce soit Basic ou avec un transport Mail) pour connecter son application Windows Mobile à des services web: au cours d’une démo avec des applications métiers réelles, vous comprendrez ce que peuvent vous apporter le framework et WCF et vous serez armés pour entamer un développement autour de webservices pour votre cas d’utilisation
    • EMB306: Le développement d’interfaces riches sous Windows Mobile
      • Les interfaces riches ne sont pas réservées aux autres! Microsoft fournit depuis longtemps des outils pour faire des interfaces mobiles qui sont à la fois fonctionnelles et agréables à l’oeil. Les MVP Stéphane Sibué et Fabien Décret, toujours en binôme, vous expliquerons quelques trucs et astuces (parfois inattendus!) pour embellir et enrichir vos applications. Attention, les notions abordées requièrent déjà une certaine connaissance du développement .NET!

    Amis développeurs mobiles, préparez-vous, il va y avoir du lourd!

  • Pierre's Embedded and Mobile Blog

    EMB108: LA Session si vous voulez (re)découvrir l’embarqué chez Microsoft

    • 1 Comments

    Imaginez un petit serveur de photo, accompagné d’un cadre photo numérique, connecté à des webservices et à Internet, et vous voulez savoir ce qui pourrait y avoir sous le capot, et comment on s’y prend pour développer la prochaine génération de systèmes embarqués intelligents et connectés chez Microsoft…

    Envie d’avoir une image globale de l’engagement de Microsoft dans les systèmes embarqués? Peut-être vous demandez-vous, d’abord, ce que Microsoft entend quand on parle de système embarqué… Ou bien vous savez déjà ce qui va se dire, vous avez juste envie d’une mise à jour sur la roadmap et les produits, et peut-être le futur? Ou bien vous vous demandez comment choisir le prochain système d’exploitation pour votre prototype ultra-secret? ;)

    A grand renfort de démos, vous allez faire le tour des technologies de la famille Windows Embedded, la principale source d’outils et d’OS pour les systèmes embarqués chez Microsoft: celle qui regroupe Windows Embdeded Enterprise, Windows Embedded Standard, Windows Embedded POSReady, Windows Embedded CE et Windows Embedded NavReady. Ca se passe le 11 février de 17h30 à 18h30!

    Les speakers, Thierry Joubert et Yannick Balère, travaillent chez Théoris, partenaire de niveau Gold sur le programme partenaire Windows Embedded. Thierry, le directeur technique, est MVP depuis des années, et Yannick s’implique, en plus des projets industriels, dans l’enseignement des systèmes embarqués en école au rythme de plusieurs milliers d’heure-étudiants par ans (presque 10000!), et dans le coaching d’équipes pour l’Imagine Cup. Profitez des Techdays pour venir les renconrer!

  • Pierre's Embedded and Mobile Blog

    EMB205: le .NET MicroFramework s’invite aux Techdays 2009

    • 0 Comments

    Les Techdays approchent! A partir de maintenant je vais régulièrement poster pour faire des “previews” des sessions qui vont avoir lieu dans le parcours embarqué et mobilité… Aujourd’hui on commence avec le .NET MicroFramework!

    D’abord, le titre: La taille ça compte: le .NET MicroFramework et ses applications dans un monde connecté

    Décortiquons un peu ce titre: “La taille ca compte”… car le .NET MicroFramework tient dans 64Ko de mémoire, et n’a pas besoin d’un OS pour tourner: on le met directement sur le CPU.. et oui, on sait faire petit et léger, chez Microsoft! Et ça ne veut pas dire qu’on ne peut pas faire grand chose avec: c’est la raison de la deuxième partie du titre… “et ses applications dans un monde connecté”

    Qu’est-ce qui va bien pouvoir se passer dans cette session? D’abord, on va revoir ce que c’est que le .NET MicroFramework. Quelques slides rapides, car c’est simple, et que le public commence à connaitre :) Ensuite, démo, en live, par Jean-Michel Guemguem de chez Tekigo, de la réalisation d’un équipement embarqué connecté avec des WebServices (oui, oui, on peut faire ça dans 64Ko), et je n’en dis pas plus, car sa démo est vraiment super, et je veux lui en laisser l’exclu.


    Et c’est qui, Jean-Michel Guemguem? c’est le consultant spécialisé dans les technologies embarquées chez Tekigo. Il aura l’occasion de se présenter de lui-même: c’est une pointure. Vous le retrouvez régulièrement sur les forums embarqués MSDN

    Quelques liens utiles en rapport avec la session:

    J’ajoute au regard des statistiques d’inscription que c’est une des sessions qui a le plus de succès du parcours… espérons qu’il y aura de la place pour tout le monde!

  • Pierre's Embedded and Mobile Blog

    Microsoft France lance un appel à projet d’applications Windows Mobile

    • 1 Comments

    Windows Mobile est la plateforme mobile sur laquelle on peut trouver le plus grand nombre d’applications, et il n’est pas question de se faire rattraper: c’est pourquoi dès maintenant, Microsoft France lance KickApps: un appel à projet d'applications mobiles un peu particulier.… Pourquoi un peu particulier? Et bien parce que passé la soumission du round 1, les 5 applications sélectionnées bénéficieront d’un coaching particulier de Microsoft, et particulièrement, de workshops au Microsoft Technology Center de Paris.

    Il est donc temps de réaliser les projets que vous pouviez avoir en tête depuis longtemps, peut-être de porter une application qui vous plais bien sur Windows Mobile, ou de dépoussiérer une de vos applis existantes et leur donner une nouvelle jeunesse!

    Soumettez dès à présent et d’ici le 16 Février (oui, ca va venir vite!) votre expression d’intérêt en envoyant un mail à dev_wm@microsoft.com avec comme objet “Concours KickApps” et en joignant un document PDF ou Word décrivant vos coordonnées et l’application que vous souhaitez soumettre

  • Pierre's Embedded and Mobile Blog

    Formation sur Windows Embedded CE 6.0 à Paris du 23 au 26 Février 2009

    • 0 Comments

    Adeneo Embedded, un de nos partenaire Gold du Programme Windows Embedded Partners, organise à Paris (et en parallèle à L.A!) du 23 au 26 février des sessions de formations Windows CE 6.0 en 10 modules. Bonus, ils offrent à chaque participant la carte de developpement ARM utilisee pour la formation (valeur US$1000)

    Le programme de la formation est le suivant :

    • Module 1: Fonctionnalités de CE 6.0
    • Module 2: Les outils de développement de Plateformes
    • Module 3: Le fonctionnement interne de l’OS
    • Module 4: Les composants OS de CE 6.0
    • Module 5: Le processus de génération CE 6.0 (Build)
    • Module 6: Le Board Support Package (BSP)
    • Module 7: Les concepts des Device Driver
    • Module 8: Personnaliser un OS Design
    • Module 9: Développement d’application
    • Module 10: Tests et vérifications du Système

    Pour les informations et l'inscription, contactez sales@adeneo-embedded.com

    Programme complet de formation Windows Embedded CE 6.0 par Adeneo Embedded: cliquez ici

  • Pierre's Embedded and Mobile Blog

    Les Techdays 2009: Le parcours “mobilité et systèmes embarqués”

    • 0 Comments

    En tant que responsable des relations avec les développeurs pour les technologies embarquées et mobile, c’est moi qui suis en charge du parcours “mobilité et systèmes embarqués” des Techdays 2009 qui se dérouleront du 10 au 12 février au Palais des Congrès, à Paris. Cette année, nous avons donc 11 sessions plus 4 dans des parcours séparés dont je ne suis pas responsable mais qui vaillent le coup d’être relayées, soit 15 en tout:

    Dans ce parcours, je veux raconter une histoire: celle des systèmes embarqués et mobiles connectés. Il est révolu, le temps ou des équipements chacun dans leur coin accomplissaient leur tâche sans se soucier du reste du monde: que ce soit par des connections locales, ou à travers Internet, que ce soit par des interactions avec des utilisateurs ou avec des services, il faut maintenant que ces systèmes sachent parler, consommer, produire. Ce parcours racontera par exemple comment une sonnette électronique peut interagir à la fois avec la porte et le téléphone portable: qu’un cadre photo peut se synchroniser avec le web, qu’un kiosque peut s’intégrer dans un réseau d’entreprise, au même titre qu’un PC. Quelle langue parlera le robot du futur, qui n’est d’ailleurs pas si loin? Comment Windows 7 révolutionnera les interactions avec les utilisateurs de bornes d’accueil? Comment transformer mon téléphone en un consommateur avide de services web, simple et agréable à utiliser?

    Au cours des jours qui viennent, je communiquerai sur l’agenda, ainsi que sur les détails de chaque session. Il y en aura pour tous les goûts, tous les niveaux, et croyez moi, vous sortirez de ces Techdays avec un regard nouveau sur les 14 milliards de systèmes embarqués qui nous entoureront d’ici 2010… N’oubliez pas également de suivre le blog des Techdays

  • Pierre's Embedded and Mobile Blog

    Un peu de lecture pour les longues soirées d’hiver!

    • 0 Comments

    2 livres d’un grand intérèt ont été publiés en ligne, en plus de l’édition papier:

    Enfin ce n’est pas un livre mais néanmoins une lecture intéressante: le Top 25 des erreurs de programmation: elles rendent les programmes moins stables et plus vulnérables: tout le monde devrait les connaitre sur le bout des doigts et vérifier son code au moins contre cette liste là (y’a du boulot!)

    Bonne lecture!

  • Pierre's Embedded and Mobile Blog

    Windows Embedded Standard 2009 est disponible pour les étudiants dans MSDN Academic Alliance!

    • 0 Comments

    Tout est dans le titre… Pourquoi devrais-je m’y intéresser, me demanderez vous alors… c’est simple:

    Windows Embedded Standard, c’est la version “componentisée” de Windows XP Pro: avec cet outil, vous choisissez uniquement les composants de XP dont vous avez besoin pour votre système embarqué: vous laissez le système calculer les dépendances, vous pouvez par exemple virer le shell explorer.exe standard pour et mettre votre propre application à la place, et en faire un kiosque, ou un mini serveur de fichiers, ou en fait, ce que vous voulez. Ensuite vous générez l’image, qui ressemble à un Windows XP mais juste avec ce dont vous avez besoin! Donc beaucoup plus petit (ca peut descendre jusqu’à une quarantaine de Mo!)

    Windows Embedded Standard peut aussi être utilisé comme base, par exemple, sur une ebox-3300 ou une box VIA Artigo pour faire ensuite tourner des services de Microsoft Robotics Developer Studio!

    Je laisse votre imagination faire le reste du travail. Et venez aux Techdays si vous voulez en apprendre plus!

  • Pierre's Embedded and Mobile Blog

    LiveMeeting sur la plateforme robotique Sumo de l'Imagine Cup

    • 4 Comments

    Jeudi 8 Janvier, à 18h30 se tiendra le LiveMeeting sur Microsoft Robotics Developer Studio et plus particulièrement le fonctionnement du service Sumo qui sera la plateforme du Round 1 de l'Imagine Cup.

    Sur environ une demi-heure, nous nous pencherons sur le squelette du service Sumo pour comprendre où écrire le code et « l’intelligence » du robot.

    Dans un second temps, nous aurons une discussion ouverte et nous répondrons aux questions afin que les participants soient prêts à installer et démarrer leur robot dès la fin du livemeeting

    Le lien d'inscription

    A jeudi!

  • Pierre's Embedded and Mobile Blog

    Le Zune 30, triple baffe, et la bonne résolution de 2009

    • 1 Comments

    En cette fin d'année 2008, j'ai suivi avec attention les aventures des possesseurs de Zune 30 et la (légère) ébullition de la communauté concernant le bug qui faisait crasher certains players mp3 de chez Microsoft et Toshiba le 31 décembre 2008, ces mêmes players ressucitant le jour suivant, pour peu que la batterie ait été vidée. Non pas parce que j'ai un Zune 30, mais parce que ce bug pour moi c'est pire que Kiss-Cool, c'est triple effet:

    • le Zune 30 plante, et qu'en tant que Microsoftee (et utilisateur de Zune), ca ne fait pas plaisir.
    • Parce que le bug vient d'un driver Freescale, mon ancien employeur, et que donc ca fait encore moins plaisir (même si ca n'est pas moi qui ait écrit ce bout de code)
    • Parce que ca risque d'affecter tous les devices qui utilisent Windows Embedded CE 5.0 avec ce driver Freescale.

    Dans le code d'un système embarqué utilisant Windows Embedded CE, on ne retrouve en effet pas que du code Microsoft. La plus grande partie des drivers est écrite par les fabricants de semiconducteurs (les microprocesseurs surtout) d'une part, et les intégrateurs qui adaptent ces drivers à l'électronique "autour" de ces microprocesseurs d'autre part: c'est pour cela que Microsoft distribue 100% des sources du kernel et la plus grosse majorité des sources des drivers "partagés" et des des applications.

    Je ne dis pas ça pour désigner un coupable ou décharger Microsoft de certaines responsabilités (tout le monde écrit du code buggé), mais pour qu'on comprenne bien la mécanique sous-jacente, et donc qui risque d'être affecté par ce bug: à savoir, les gens qui:

    • utilisent Windows Embedded CE 5.0 (la version actuelle est la 6.0 R2)...
    • ... avec le MC13783 de Freescale...
    • ... et le driver de la RTC (Real Time Clock) de ce chip.

    Le bug n'apparait pas:

    • si on n'utilise pas le MC13783
    • ou si on l'utilise sans la RTC
    • ou si on utilise la dernière version de Windows Embedded CE 6.0 R2, car le bug n'existe pas dans le BSP Freescale pour cette version.

    Pour ceux qui seraient touchés, la correction du bug est très simple: le fichier mis en cause est C:\WINCE500\PLATFORM\COMMON\src\ARM\FREESCALE\PMIC\MC13783\RTC\rtc.c

    Le code incriminé est dans la fonction ConvertDays du coté de la ligne 230. Regardez la boucle suivante en imaginant que la variable days vaut 366

    while (days > 365)
    {
        if (IsLeapYear(year))
        {
            if (days > 366)
            {
                days -= 366;
                year += 1;
            }
        }
        else
        {
            days -= 365;
            year += 1;
        }
    }

    Boum, si days == 366, boucle infinie. C'est ça le bug et c'est pour cela qu'il se résout automatiquement le jour suivant. Mais le problème risque de se reproduire à la fin de la prochaine année bissextile et si d'ici là les Zune 30 seront probablement relayés au rang d'antiquités, certains équipements professionnels seront encore affectés: il faut donc fixer le bug et la solution est simple:

        while (days > 365)
        {
            if (IsLeapYear(year))
            {
                if (days > 366)
                {
                    days -= 366;
                    year += 1;
                }
                else
                {
                    break;
                }

            }
            else
            {
                days -= 365;
                year += 1;
            }
        }

    et la solution la plus élégante que ce soit pour les performances ou la stabilité:

        int daysThisYear = (IsLeapYear(year) ? 366 : 365);
        //The number of days in the current year is now calculated instead.
        while (days > daysThisYear)
        {
            days -= daysThisYear;
            year += 1;
            daysThisYear = (IsLeapYear(year) ? 366 : 365);
        }

    Quelles conclusions tirer de ce bug?

    • Nul n'est à l'abri d'écrire du mauvais code
    • On ne sait jamais qui réutilisera le code et il n'existe pas de code "non important" dans un device embarqué
    • Il faut donc faire très attention à sa couverture de test et à la façon dont on écrit son code, surtout la gestion des erreurs, des conditions, et des boucles!
    • Et enfin la publication du code source aide à la compréhension et la résolution des bugs et c'est pour ça que le code de Windows Embedded CE est livré sous licence Shared Source

    Les liens intéressants:

    Et la bonne résolution 2009: Essayer d'écrire du code propre (et le tester correctement!)

  • Pierre's Embedded and Mobile Blog

    De nouveaux services pour votre Lego NXT, histoire de bien commencer 2009

    • 0 Comments

    SimplySim est une startup française spécialiste des environnements de simulation, et une des entreprises les plus avancées dans la maitrise de Microsoft Robotics Developer Studio. Pour bien finir l'année 2008 (ou commencer l'année 2009) ils mettent à disposition sur leur site web un version "riche" des services de simulation du robot Lego NXT, qui est en plus une de mes plateformes préférées: je vous encourage donc à regarder de plus prêt leur travail

    SimplySim est également le partenaire qui a développé les environnements de simulation de la compétition Robochamps et donc de l'Imagine Cup! Merci à eux!

  • Pierre's Embedded and Mobile Blog

    Cher Papa Noël...

    • 2 Comments

    Cette année, j'ai été très sage, j'ai travaillé dur, j'ai essayé d'être gentil avec les développeurs. Donc pour Noël, est-ce que tu pourrais s'il te plait m'amener dans ta hotte:

     

    Un Rovio de chez Wowee parce qu'il a des roues sympas et une API ouverte qui me permettra de le faire fonctionner avec MS Robotics Developer Studio

     

     

    Une Tahoe II de chez Device Solutions , parce que j'aime bien sa grande soeur

     

     

    Un ou deux eee pc , avec les touchscreens qui vont bien, pour avoir des petites cibles pour Windows Embedded Standard ou Windows 7 Beta

     

     

     

     

    Un Samsung Player Addict pour mon téléphone perso...

     

     

     

     

    ... et un Experia X1, pour mon téléphone pro :)

     

     

     

     

    Et puis aussi un Kit Spark à base de Via Artigo parce qu'elle est jolie et qu'elle marche bien avec Windows Embedded CE

    via_artigo-thumb-450x225[8]

     

     

     

    Voilà, ça fait déjà pas mal, j'imagine que c'est un peu la crise chez toi aussi alors je m'arrête là.

    Merci beaucoup j'attends ta venue avec impatience!

    Signé: Pierre

  • Pierre's Embedded and Mobile Blog

    LiveMeetings sur Windows Mobile et Robotics Developer Studio en ligne

    • 2 Comments

    Le LiveMeeting sur Windows Mobile du 3 décembre est en ligne, c'est par ici. Celui du 16 décembre sur Microsoft Robotics Developer Studio devrait également être mis en ligne sous peu, plutôt par là

    Les bouts de code et de diagrammes montrés pendant ces livemeetings ne sont pas encore publié, mais j'y travaille, sous forme d'articles sur MSDN, donc restez à l'écoute :)

    Je rappelle la prochaine date, qui sera un autre LiveMeeting sur Robotics Developer Studio, dans lequel on se penchera sur le SumoBot de l'Imagine Cup: qu'est-ce qu'il faut installer, quelles sont les notions importantes, comment le programmer, comment le tester, etc. Ca sera le 5 décembre aux alentours de 18h. Je posterai le lien d'inscription dès qu'il sera disponible :)

    It's all about the toys, I say!

  • Pierre's Embedded and Mobile Blog

    Imagine Cup 09: on va commencer à envoyer les watts!

    • 0 Comments

    Cette année je vais coacher la catégorie robotics & algorithms: du coup dans les 2 mois qui viennent, vous allez voir pas mal de contenu émerger. Déjà je peux annoncer 2 dates pour des livemeetings à la destination des étudiants :

    • 16 décembre, dans lequel on va regarder les bases de Microsoft Robotics Developer Studio en abordant les points suivants:
      • Quels sont les outils à télécharger et où les trouve-t-on?
      • Quelles sont les notions de base (services, programmation asynchrone, architecture distribuée, simulation, etc)
      • Le tout agrémenté de démos, avec pleins de robots!
    • 5 Janvier, spécialement pour l'Imagine Cup, dans lequel on décrira
      • Le sujet, le déroulement de la compétition
      • les services qui sont fournis par l'équipe organisatrice
      • Comment commencer la programmation d'un robot pour le round 1

    On annoncera les horaires et les liens pour les rejoindres dès que possible. Si vous avez des questions n'hésitez pas à m'en faire part dès maintenant, et à utiliser les ressources qui existent déjà sur le sujet, à savoir:

  • Pierre's Embedded and Mobile Blog

    Les émulateurs pour Windows Mobile 6.1.4 sont disponibles

    • 1 Comments

    je me fait le relais d'une bonne nouvelle sur le blog de Loke qui est que les émulateurs pour Windows Mobile 6.1.4, notamment avec IE 6 for Mobile, sont téléchargeables gratuitement ici! Enjoy!

  • Pierre's Embedded and Mobile Blog

    TechEd 2008: Les premières sessions...

    • 1 Comments

    Voici les sessions auquelles j'ai assisté, et qui inspirerons peut-être de futurs articles:

    MBL201: Windows Mobile Smackdown!: une session haute en couleurs et énergique dans laquelle on a pu voir des téléphones dernier cri, des dizaines (littéralement) de démos d'applications (dont je publierai la liste sous peu) et ou des dizaines de goodies ont été lancés dans une foule en délire: je peux déjà vous dire que je compte bien reproduire cette session aux TechDays 2009!

    MBL07-IS: Windows Mobile Security: une session interactive sur la sécurité avec Windows Mobile: nous avons parlé un peu de SCMDM, mais aussi et surtout du modèle de sécurité de Windows Mobile (1-tier ou 2-tier dépendant du device), des possibilités de signer son code, de la manière de paramétrer la sécurité de son terminal (notamment en utilisant un PowerToy appelé le Security Configuration Manager): probablement un article, voire une session aux TechDays sur le sujet

    MBL401: What's new in the .NET Compact Framework 3.5 (Deep Dive): OK, ca fait un an qu'il est dehors, mais il est toujours sympa de rappeler ce qu'il apporte: C# 3.0, LINQ, WCF...

    EMB305: Windows Embedded CE 6.0 Architecture and Memory Management: alors que Windows Embedded CE 5.0 utilise un modèle mémoire un peu particulier (dont on rappelle trop souvent les limites, 32 process et 32Mo de mémoire par process, sans rappeler que pour la grande majorité des applications c'est plus que suffisant, que c'est éprouvé et que ça marche très bien), toute la gestion mémoire à été réécrite dans CE 6.0 et maintenant on se trouve avec un espace virtuel de 2GB pour le kernel, et un espace virtuel de 2GB de mémoire par processus, avec une limite haute à 32768 processus, ce qui évidement ne sera jamais atteint dans un cas "réel". D'autres changement comme la possibilité de repasser les drivers dans le kernel (alors que dans CE 5.0 ils étaient en userspace), ou bien de nouveaux outils de développement intégrés à Visual Studio ont également été abordés. Un classique du genre, mais une bonne piqûre ne peut pas faire de mal

    EMB303: Talking Web Services to MicroControllers : une session en forme de visite des possibilités de la stack WebServices for Devices (WSD) du .NET MicroFramework, qui est en fait, tout comme dans Windows Embedded CE et même Windows Vista, une implémentation du standard DPWS, sous la houlette bienveillante de l'OASIS et obéissants aux standards pour les WebServices définis par le  WorldWideWeb Consortium (W3C) (j'insiste, pour souligner le travail de respect des standards de Microsoft, en ligne avec par exemple le travail sur IE8 ou sur avec les organisation comme l'ISO). En une heure, il s'agissant de découvrir les possibilités de la stack (ce qui se traduit par une petite demi-heure de slides) et surtout de coder à la fois un serveur (fournissant des services) et un client (consommant le service) à base de .NET MicroFramework, et le pire est que c'est tellement simple, que ca tient! J'écrirai surement un article là dessus dans le futur!

    Il y a un paquet de sessions intéressantes auxquelles je n'ai pas pu assister, soit parce qu'elles étaient en parallèle, soit parce que j'étais de service sur le stand Ask The Expert de Windows Embedded - dans tous les cas, je posterai la liste des sessions (et des webcasts quand ils seront disponibles) qu'il faut absolument voir. A suivre!

  • Pierre's Embedded and Mobile Blog

    TechEd 2008: La keynote

    • 1 Comments

    La keynote de ce TechEd a été une longue démo du futur de Visual Studio 2010: on sait déjà que l'interface est en WPF, ce qui est assez sexy notamment pour l'éditeur, qui nous permet d'avoir des jolis commentaires mais aussi qui nous permet d'insérer par exemple des diagrammes, des dessins, des schémas UML que l'on peut à volonté ouvrir et fermer, pour éventuellement revoir un concept, ou annoter plus "graphiquement" un bout de code. L'intégration des outils de gestion de source de TFS est aussi complète ce qui nous permet de revoir l'historique du code, qui l'a modifé, pourquoi, etc. Mais ce n'est pas le plus gros: de nouveaux outis ont été ajoutés, par exemple pour voir l'arbre des dépendances d'une application: quelles classes sont utilisées, quelles DLLs, y compris celles du système, ce qui nous permet d'analyser ce qui manque peut-être sur le système cible. Il y a aussi un visualiseur de "diagrame de séquence" qui montre à partir du code une séquence au format UML, nous permettant de revoir ainsi rapidement quelles méthodes sont appelées par qui, comment, etc. Sympa!

    Un nouvel outil de testing a aussi été ajouté, permettant d'automatiser les tests (c'est la base) mais aussi de les enregistrer, avec toutes les informations comme la configuration de la machine, les performances, l'usage des différents coeurs du CPU... cet outil permet par exemple au développeur de rejouer dans Visual Studio la séquence de test dans les conditions dans lesquelles le testeur aurait trouvé un bug, et même, de debugger cette session! il y a même la possibilité d'enregistrer un WMV de la session du testeur, pour voir la vidéo du bug!. Bien entendu, si c'est un bug, il faut le signaler, et cet outil est complètement intégré avec les outils TFS donc il peut remplir automatiquement le bug report, et proposer au testeur ou au développeur de l'annoter avant de le poster dans la base de donnée.

    Il y a également un outil de "Lab Management" qui permet de gérer les machines virtuelles des développeurs et des testeurs, et qui permet d'enregistrer les modifications de ces VM, toujours dans l'optique de mieux tracer les activités de développement et de testing et d'augmenter la productivité!

    Je vais passer sous silence les nouveautés du coté d'ASP.NET et du développement on the cloud, pour aller directement à autre chose qui peut nous intéresser, nous développeurs dans l'embedded: le code natif, le C++.
    VC10 promet un support avancé de toutes les nouveautés que Microsoft a pu apporter ces dernières années dans le domaine du C++: le support pour le code parallèle, notamment avec des outils de profiling qui permettent d'analyser en direct l'exécution d'une application: sur combien de coeurs tourne-t-elle, y a-t-il des interblocages entre les threads, etc: des outils que les développeurs embedded ont l'habitude de voir avec Platform Builder, mais pour les développeurs Windows Embedded Standard par exemple, c'est du nouveau :) Dans les autres nouveautés, le support des rubans, du multitouch, les lambdas expressions, etc. Pour prouver tout ça, Jason Zander, le GM du groupe Visual Studio, a repris un projet de jeu Pong écrit avec VC6, l'a importé (sans douleur) dans VC10, et en utilisant toutes les nouveautés que je viens de citer, en une dizaine de minutes, a transformé un vieux jeu 2D en un jeu 3D supportant le multitouch (pour déplacer les raquettes), supportant le multicore (pour accélérer le raytracer) dans une interface graphique revampée (avec un ruban). Impressionnant!

Page 8 of 10 (240 items) «678910