Moblin: hoe schrijf je rijden

plug - in artikel moblin, bron van documenten, die op 1 juli 2009, om 12.21 uur, zou je weten dat er geen sensor zoals verborgen of in een systeem voor de aandrijving.乔纳森卡梅伦 [de auteur van dat artikel een e - mail.Je moet in staat worden gesteld om het testen van javascript. Hij is ook de bestrijding van industriële (I /o) voor de upstream -, is een systeem voor de bestuurder.Ik weet niet of de datum van aanvaarding van de kern van het DRIVE - programma, als de auteur van de sensor volgt het, dus we het kader en de andere chauffeur, voor een lange tijd.Dit is de reden waarom we een chauffeur nodig - systeem, op dit moment pulgin systeem is slechts een eerste versie van de code of met andere woorden het prototype.Echter, het fundamentele kader heeft klaar is, kan je het uit te breiden tot je dienst.De pleister altijd welkom, schrijf een module sensoren structuur is heel eenvoudig, maar het heeft twee functies, gint., sf__init (sfmodule * meter), nietig te verklaren; sf__exit (sfmodule * meter);,,&#sfmodule globale definitie van sensoren daemon gebied vereiste, in het algemeen niet rechtstreeks kan aanraken.In ieder geval, sommige gebieden kunnen bevatten nuttige informatie verwerking, alsjeblieft, ze zijn Read - only, zie hieronder: * * * * * * * * * * * * * * * * * * * * *,,,, * * * * * * * sfmodule:@ naam: module.Het is de naam van de groep van de module, bijvoorbeeld, in de steekproef module.conf [] * dan als module, simulator module als als de naam van de module, * @ type: les modules.Zie&#moduletype, * * * * * * * gegevens van de gebruiker - module @: behoud van de persoonlijke gegevens.Kan je * * * * * * * * * * * * * * de directe, evaluatie, gmodule @ gmodule:#. Structuur.Raak het niet aan,&#* @ kern: sfcore.Raak het niet aan, * @ belangrijke dossier&#gkeyfile parameters: met de module.Gebruik de sleutel van documentatie, een soepele laat je * * * * * * * * * * * * * * de parameters en niet vrij, de sf_init @ gestart: aanwijzing van je module ().Raak het niet aan, uit de sf_exit * @: aanwijzing van je module ().Raak het niet aan, _sfmodule {*, de definitie van deze begroting, deze gchar * † † † de naam van deze begroting;, van deze moduletype † † †;, van deze gebruikers van deze gpointer † EU † † gegevens; deze begroting, deze gmodule * † † † gmodule; deze begroting, deze sfcore * † † † kern;, † gen van deze † guint † van deze index; deze begroting, deze gkeyfile * † † † belangrijke dossier, zodat deze †; deze †, deze begroting † sfmoduleinit † †, zodat deze ondernemers; deze sfmoduleexit † † † verlaten; sfmodule,}; alle initailization moeten werken sf__init () 0 aan succes of mislukking terug 1 dat de voltooiing van sf__init (), die verantwoordelijk is voor het vrijgeven van de toewijzing van de middelen zelf fouten in de eerste fase van de behandeling.(de) sf__exit modules lossen, de toewijzing van middelen moet de vrijlating van alle modules hier.,, de huidige module genoemd programma moet vertegenwoordigen, betekent dit dat het een sensor rijden of met andere woorden de sensor.Na de invoering van modules zal worden, als er een echte nodig.Je kan de oprichting van een structuur van je sensor, bijvoorbeeld: de structuur van deze my_accelerometer (,,, zodat deze † † van deze EU sfsensordev † † † moeder; deze begroting, deze begroting † † † †...,,,&#sfsensordev}; alle sensoren structuur is een ouder, het moet altijd het eerste element is, sf_sensordev_new (), geheugen en zullen je&#structuur, sfsensordev functie, als volgt: * * * * * * * * * * * * * * * * * * * * *,,,, * * * * * * * sf_sensordev_new:@ C: een object&#sfcore., * @ type:&#sfsensortype met vermelding van het type sensor * @ actie: een groep van modules, die de functie van een regelgevend kader.Gezien de omvang van&#gesprek, * * * * * * *&#@: de omvang van sfsensordev creëren, * * * * * * *, * * * * * * * in het creëren van een nieuwe structuur van de&#sfsensordev.De omvang van de structuur van de aangewezen kunnen creëren, * * * * * * *&#sfsensordev bevat gegevens over de omvang van de in de aanvullende, door ten minste moet groot (sfsensordev * * * * * * * * * * * * * *);,, is de nieuwe&#sfsensordev, * * * * * * * /EU van deze achterstand van deze † † † † EU † EU † deze † van deze EU † EU † † deze † EU † EU † † gen van deze achterstand van deze † † † EU † deze † van deze EU † EU † EU † † EU †, sfsensordev sf_sensordev_new (* * * * * * * * * * * * * * sfcore C, sfsensortype type, het gesprek * actie, guint grootte);,, "C, je kan vinden van&#sfmodule&#sfcore - > kern.# sftype定义如下:typedef enum {,,,¬†¬†¬†type_invaild = - 1,¬†¬†¬†type_min,,¬†¬†¬†type_accel = 1,= 1,¬†¬†¬†type_gryo <;<;1,¬†¬†¬†type_thermal = 1 <;<;2,¬†,¬†¬†¬†type_comapss = 1 <;<;3,¬†¬†¬†type_als = 1 <;<;4,¬†¬†¬†¬†¬†,¬†¬†¬†type_max,,} sfsensortype;,,# DevOps只有两个功能:,,结构_devops {,¬†¬†¬†gint(* dev_set_active)(sfsensordev *本身,devactivelevel水平),¬†¬†¬†(* dev_msg_process无效;)(sfsensordev * SE,gint代码,gpointer数据,guint datalen,gpointer ret_val);};,,,dev_set_active()用于启用/禁用传感器。De werking van de modules /uitschakelen is bepaald, het maakt me niet uit.Wanneer een fout, ga terug naar 0 of 1 een succes, maar deze functie mag niet falen.# devactivelevel als volgt gedefinieerd: * * * * * * * * * * * * * * * * * * * * *,,,, * * * * * * * devactivelevel:@: het einde van de injectie dev_stop gegevens /gebeurtenissen, te beginnen met de gegevens dev_active @: * * * * * * * * * * * * * * typedef /events /, zodat deze om een besteld {, deze dev_stop † † †, deze EU, deze dev_active † † †,,,, dat devactivelevel}; dev_set_active () verplicht is dus altijd gevraagd om je alsjeblieft kan als een functie van de uitvoering.Dev_msg_process (), is een deel van het mechanisme van de communicatie tussen de modules.框架实现了一个基于glib异步队列的通信通道。,,/*¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†,¬†¬†¬†¬†* dev_msg_process:¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†,¬†¬†¬†¬†* @硒:一# sfsensordev对象¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† gen van deze achterstand van deze † † † †, zodat deze achterstand van deze † † † † * @ code opties aangegeven wat actie, van deze code. Deze achterstand van deze † † † * † gegevens door middel van de afzender: @ van deze begroting van deze begroting † † † † EU † deze † van deze EU † EU † † van deze EU † † gen van deze achterstand van deze † † † † EU † EU † deze † van deze EU † EU † EU † † gegevens, zodat deze achterstand van deze † † † † * @ datalen: gegevens van deze achterstand van deze begroting † † † † EU † EU † deze † van deze EU † EU † † van deze begroting † EU † † gen van deze achterstand van deze † † † † EU † EU † deze † van deze EU † EU † † van deze begroting van deze begroting † † † † EU † van deze lengte van deze † †, van deze EU † EU † * † @ ret_val: een terugkeer van de waarde van de positie van de opslag.Aandacht, geheugen, zodat deze achterstand van deze † † † † * toegewezen moeten sturen, dus memcpy () † van deze ret_val terug @, deze EU † † * † deze goed is, zodat deze achterstand van deze † † † * †, zodat deze achterstand van deze † † † † * * * * * * * de verwerking van berichten of andere in het kader van de module van deze begroting, deze begroting † † † * †, zodat deze achterstand van deze † † † † * < noot > < para > van deze begroting, deze begroting † † † † * * * * * * * de afzender kan noemen sf_asyncmsg_send_sync () het verzenden van berichten en blok, zodat deze achterstand van deze † † † † * tot de ontvangst van signalen afmaken.Dit gebeurt meestal in de EU, zodat deze † † van deze † * † wachten om terug te keren naar de waarde van de afzender.Dus niet in deze functie niet slapen, zodat deze achterstand van deze † † † * † of in het kader van deze achterstand kan worden geblokkeerd, zodat deze † † † † * < P > < /noot > van deze begroting, deze begroting † † † † * †, Deze EU EU † nietig (* * * * * * * dev_msg_process †) (* * * * * * * sfsensordev se, gint code, gpointer gegevens, guint datalen, gpointer hier ret_val), zoals gedefinieerd in opiton; code sensoren om een besteld. H:typedef (,,,, zodat deze msg_exit_thread † EU † †, deze begroting van deze msg_stream_register † †, zodat deze † †, deze msg_stream_unregistered † †,, EU † † /* * * * * * * * * * * * * * † van deze EU /als nieuws, zodat deze msg_als_set_range † † begroting, deze begroting † †, deze msg_als_get_range † †, devmsgcode,};,, voeg je specifieke code, je moet de uitbreiding van deze opsomming.Let op, heb wat nieuws, in het kader van de module niet bezorgd moet zijn.Omdat het bericht in de rij in de geen die verstopt, het moet op de afzonderlijke draden, rennen.Met het oog op de vereenvoudiging van het werk van sf_sensordev_run_msg_process (), namens u, /* * * * * * * * * * * * * * voor het creëren van een draad, * * * * * * * * * * * * * * @ sf_sensordev_run_msg_process:,, se: een&#sfsensordev object, * * * * * * * * * * * * * *, het creëren van een draad aan nieuws, * * * * * * * /EU van deze achterstand van deze † † † † EU † EU †, ongeldig sf_sensordev_run_msg_process (sfsensordev * SE) deze functie moet;, is omdat je dev_msg_process sf__init () (), ongeldig kan zijn.Zoals eerder vermeld, is er een boodschap van het kader zelf, dus je moet je bellen sf__init () () sf_sensordev_run_msg_process, stoppen met de boodschap dat de procedure sf_sensordev_stop_msg_process (). * * * * * * * * * * * * * * * * * * * * *,,,, * @ sf_sensordev_stop_msg_process: se: een&#sfsensordev * * * * * * * * * * * * * *, stop, behandeling en recycling, * * * * * * * /draad. Sf_sensordev_stop_msg_process, nietig verklaard (sfsensordev * SE);,, je kan je eigen draad, als je moet iets van de module is een Draad.In dit geval, je moet een rechtstreeks beroep op de sf_sensordev_process_msg () de verwerking van berichten, /* * * * * * * * * * * * * *,., * * * * * * * * * * * * * * @ sf_sensordev_process_msg, se: een object:&#sfsensordev @ time - out, * * * * * * *.Een blok tot 1 geeft de * * * * * * * * * * * * * * * * * * * * *, nieuws, beschikbaar zijn, terug naar 0 msg_exit_thread bracht, betekent dit dat je aan het einde van de draad van je * * * * * * *.Om de informatie - 1, * * * * * * *, * * * * * * *, /, gint sf_sensordev_process_msg (sfsensordev * se, de draak, time - out); zie module de simulator. C zien hoe te komen tot een draad zijn de verwerking van berichten, een boodschap sturen, bel sf_asyncmsg_send (module) of sf_asyncmsg_send_sync ().Kijk, /* * * * * * * * * * * * * * de definitie:,, * * * * * * * * * * * * * * sf_asyncmsg_send:@, vragen: een&#gasyncqueue object, * @ code: een optie code * @ gegevens: gegevens die door de ontvanger, de lengte van de lengte van de gegevens: * * * * * * *, * * * * * * * * * * * * * *, en om een boodschap te sturen naar de eigenaar @ Q, * * * * * * * * * * * * * * * < aandacht. P >,; < deze functie van de boodschap en de * * * * * * * * * * * * * * sf_asyncmsg_send_sync asynchrone modus, () is een versie van * < /de > < /noot > * /, ongeldig sf_asyncmsg_send (gasyncqueue × Q, gint gpointer data code, guint len); * * * * * * * * * * * * * *,, /* * * * * * * * * * * * * * sf_asyncmsg_send_sync:@ vroeg:,, een&#gasyncqueue object, * @ code: een optie code * @ gegevens: gegevens die Door de ontvanger, de lengte van de lengte van de gegevens: * @ @ ret_val, * * * * * * *: locatie opgeslagen waarden.De afzender is verantwoordelijk voor de toewijzing en de vrijlating van * * * * * * * * * * * * * * * * * * * * *, geheugen, en in een model van het sturen en weer terug naar waarde aan de afzender, * * * * * * * * * * * * * * /, als er, ongeldig sf_asyncmsg_send_sync (gasyncqueue × Q, gint code, de gegevens van deze begroting, deze begroting † † † † EU † deze † van deze EU † EU † EU † † † gen van deze achterstand van deze † † † EU † deze † van deze EU † EU † EU † † EU † EU † deze † van deze EU † EU † † deze † gpointer, guint len, gpointer ret_val); voor de&#sfsensordev is #, gasyncqueue&#sfsensordev - > zowel de,, het laatste. Wat het gebruik van een auto die, in het kader van het hoofd van de namen van de oplossing van het conflict sf__init /sf__exit () ().Voeg je naam in de src /makefile.am als volgt:,, symdef_files = \\, zodat deze achterstand van deze † † † † EU † EU † deze † van deze EU † EU † † van deze begroting van deze begroting † † † † module /module symdef versnelde simulator. H >,, EU † EU † EU † † gen van deze achterstand van deze † † † EU † deze † van deze EU † EU † EU † † EU † module /module als simulator symdef. H, oké, je moet nu een beschrijft hoe de voorbereiding van een chauffeur.De details zijn niet, hier, bijvoorbeeld, de gegevens van de hulp.Als een Chinese, Engelse is een grote uitdaging.In ieder geval, verwijzing naar de code van het monster is de snelste manier om de details te leren.Kijk, module versnelt de simulator. C en modules als simulator. C., pleister altijd welkom.,, - kader,



Previous:
Next Page: