Ito ang command na nescc-mig na maaaring patakbuhin sa OnWorks na libreng hosting provider gamit ang isa sa aming maramihang libreng online na workstation gaya ng Ubuntu Online, Fedora Online, Windows online emulator o MAC OS online emulator
PROGRAMA:
NAME
nescc-mig - generator ng interface ng mensahe para sa nesC
SINOPSIS
nescc-mig [anumang opsyon sa nescc] [mga opsyon na partikular sa tool]
[-o output-file] [-nescc=drayber]
kasangkapan msg-format-file uri ng mensahe
DESCRIPTION
nescc-mig ay isang tool upang makabuo ng code upang iproseso ang mga mensahe ng nesC (na tinukoy ng C
mga uri). Ang kasangkapan Tinutukoy ng argumento kung anong tool ang dapat mabuo, ang uri ng mensahe
tumutukoy sa uri ng C ng mensaheng nais mong iproseso at msg-format-file tumutukoy sa a
nesC file na gumagamit ng ganoong uri. Dapat tukuyin ang uri ng mensahe gamit ang istruktura uri ng mensahe,
nx_struct uri ng mensahe, unyon uri ng mensahe, nx_union uri ng mensahe.
Kapag ginamit sa mga uri na ang layout ay nakasalalay sa platform (ibig sabihin, hindi tinukoy sa nx_struct
or nx_union), mahalagang tukuyin ang tama nescc opsyon sa target na arkitektura
(-fnesc-target=...). Kung ikaw ay nanawagan nescc-mig hindi direkta sa pamamagitan ng mig, maaari mong gamitin ang ncc
-target=... opsyon sa halip.
Kung pinangalanan ang isang enum constant AM_message_type (may message_type capitalized) ay matatagpuan, pagkatapos
ang halaga ng pare-parehong iyon ay ipinapalagay na ang aktibong uri ng mensahe para sa uri ng mensahe. Kung
kailangan mo ng access sa iba pang mga constant mula sa iyong nesC application, mangyaring kumonsulta sa nescc-
ncg pahina ng tao.
Ang mga kasalukuyang kasangkapan ay Dyaba, csharp, python at C, na bumubuo ng java, C#, python at C
code upang i-encode at i-decode ang mga mensahe.
Opsyon
Maaari mong ipasa ang anumang nescc opsyon, pati na rin
-o output-file
Tukuyin ang file kung saan ilalabas ang nabuong code.
-nescc=drayber
paggamit drayber sa halip ng nescc upang kunin ang impormasyon ng layout ng uri. Halimbawa, kung
tukuyin mo -nescc=ncc, Maaari mong gamitin ang nescc-mig upang kunin ang uri ng impormasyon mula sa
Mga application ng TinyOS (na karaniwang pinagsama-sama sa ncc).
mga opsyon na tukoy sa tool
Tingnan sa ibaba.
Dyaba Tool
Ang tool na ito ay bumubuo ng isang java class upang i-encode o i-decode ang isang nesC na mensahe, batay sa sarili nito sa
net.tinyos.imprastruktura ng mensahe. Tinatanggap nito ang mga sumusunod na opsyon:
-java-classname=buong-klase-pangalan
Kinakailangan ang opsyong ito at tinutukoy ang package at pangalan ng nabuong klase.
Kung ang buong-klase-pangalan ay walang '.', pagkatapos ay walang package directive na kasama sa
output.
-java-extends=pangalan ng klase
Tukuyin ang klase na ipapalawig ng nabuong klase. Ang default ay
net.tinyos.message.Message.
Para sa bawat larangan fname ng istraktura uri ng mensahe, mayroong mga sumusunod na pamamaraan (ang bit
Ang mga pamamaraan ng offset at laki ay kapaki-pakinabang para sa mga istrukturang naglalaman ng mga bitfield):
* kumuha_fname: makuha ang halaga ng field
* itakda_fname: itakda ang halaga ng field
* offsetBits_fname: ibalik ang bit offset ng field in uri ng mensahe
* offset_fname: return byte offset ng field in uri ng mensahe
* sizeBits_fname: ibalik ang laki sa mga piraso ng field (hindi para sa mga array)
* laki_fname: return size sa bytes ng field (hindi para sa arrays) (absent if fname ay isang
bitfield)
* isSigned_fname: ibalik ang totoo kung fname ay may nilagdaang uri
* isArray_fname: ibalik ang totoo kung fname ay isang array
Mga naka-embed na istruktura sa uri ng mensahe ay pinalawak, gamit ang _ upang paghiwalayin ang pangalan ng istraktura
at ang mga patlang nito.
Mayroong ilang mga karagdagang pamamaraan para sa mga field na mga array:
* getElement_fname: kumuha ng elemento ng array
* setElement_fname: magtakda ng elemento ng array
* laki ng elemento_fname: return size sa bytes ng array elements
* elementSizeBits_fname: ibalik ang laki sa mga piraso ng mga elemento ng array
* numDimensions_fname: ibalik ang bilang ng mga sukat ng array
* numElements_fname: ibalik ang bilang ng mga elemento ng array para sa isang partikular na dimensyon
(Ang pinakakaliwang dimensyon ay may bilang na 0) - ang dimensyon ay opsyonal para sa 1-dimensional
mga dumadating
* Kabuuang sukat_fname: return size sa bytes ng array (wala kung ang array ay
laki ng variable)
* kabuuangSizeBits_fname: return size sa mga bits ng array (wala kung ang array ay
laki ng variable)
Kung ang array ay 1-dimensional at ang mga elemento ay isang byte, pagkatapos ay ang mga sumusunod na pamamaraan
umiiral:
* getString_fname: bumuo ng isang Java string mula sa array sa pag-aakalang naglalaman ito ng C-style
null-terminated string
* setString_fname: itakda ang array sa isang C-style null-terminated string na binigyan ng java
pisi
Ang getElement_..., setElement_..., offset_... at offsetBits_... ang mga pamamaraan ay kukuha ng isa
argument sa bawat dimensyon ng array. Ang mga pamamaraang ito ay nag-uulat ng mga error kung ang array index ay wala sa
mga hangganan. Kung ang isang array ay may maximum na laki na 0, ipinapalagay ni mig na ito ay kumakatawan sa isang variable-size
array at hindi sinusuri ang kaukulang array index.
Ang data para sa isang mensahe ay naka-imbak sa isang array, na may tahasang base at haba ng impormasyon.
Maaaring ilaan ng mga konstruktor ang array na ito, tanggapin ito bilang isang tahasang argumento o
i-extract kung mula sa ibang mensahe. Ang base at haba ay maaari ding opsyonal na maipasa sa
ang mga konstruktor na ito.
Ino-override ng opsyonal na argumento sa haba ang default na laki ng sizeof(message-type); ito ay
kapaki-pakinabang para sa variable-size na mga mensahe. Ang paggamit ng isang tahasang base ay nakakatulong para sa mga mensahe
naka-embed sa iba pang mga mensahe.
Ang nabuong klase ay mayroon ding amType() na paraan na nagbabalik ng aktibong mensahe ng mensahe
uri, o -1 kung walang AM_message_type natagpuan ang pare-pareho.
C# Tool
Ang tool na ito ay bumubuo ng isang C# class para i-encode o i-decode ang isang nesC na mensahe. Tinatanggap nito ang
mga sumusunod na pagpipilian:
-csharp-classname=buong-klase-pangalan
Kinakailangan ang opsyong ito at tinutukoy ang namespace at pangalan ng nabuo
klase. Kung ang buong-klase-pangalan ay walang '.', pagkatapos ay walang namespace na direktiba na kasama
sa output.
-csharp-extends=pangalan ng klase
Tukuyin ang klase na ipapalawig ng nabuong klase. Ang default ay
tinyos.message.Message.
Ang mga pamamaraan sa nabuong klase ay kapareho ng para sa Java tool.
PYTHON Tool
Ang tool na ito ay bumubuo ng isang Python class para i-encode o i-decode ang isang nesC na mensahe. Tinatanggap nito ang
mga sumusunod na pagpipilian:
-python-classname=buong-klase-pangalan
Kinakailangan ang opsyong ito at tinutukoy ang pangalan ng nabuong klase.
-python-extends=pangalan ng klase
Tukuyin ang klase na ipapalawig ng nabuong klase. Ang default ay
tinyos.message.Message.Message.
Ang mga pamamaraan sa nabuong klase ay kapareho ng para sa Java tool.
C Tool
Ang tool na ito ay bumubuo ng isang C header file (.h) na may mga constant na naglalarawan sa layout ng uri, at
isang C module (.c) na may mga function upang makuha at itakda ang bawat field. Dapat mong ipasa ang .h pangalan ng file
sa nescc-mig paggamit -o.
Tinatanggap ng C tool ang sumusunod na opsyon:
-c-prefix=unlapi
Tinutukoy ng opsyong ito ang unlapi upang ilakip sa nabuong mga pare-pareho at
mga function. Kung aalisin, uri ng mensahe Ginagamit.
Para sa bawat non-array na field fname ng istraktura uri ng mensahe, ang mga sumusunod na function at
Ang mga constant ay nabuo:
* prefix_fname_get(): makuha ang halaga ng field
* prefix_fname_itakda(): makuha ang halaga ng field
* prefix_fname_OFFSETBITS: bit offset ng field
* prefix_fname_OFFSET: byte offset ng field
* prefix_fname_SIZEBITS: laki sa mga piraso ng field
* prefix_fname_SIZE: laki sa bytes ng field
Para sa bawat field ng array fname ng istraktura uri ng mensahe, ang mga sumusunod na function at
Ang mga constant ay nabuo:
* prefix_fname_get(): makuha ang halaga ng field
* prefix_fname_itakda(): makuha ang halaga ng field
* prefix_fname_offsetbits(): bit offset ng array element
* prefix_fname_offset(): byte offset ng array element
* prefix_fname_ELEMENTSIZEBITS: laki sa mga piraso ng elemento ng array
* prefix_fname_ELEMENTSIZE: laki sa bytes ng elemento ng array
* prefix_fname_NUMELEMENTS: bilang ng mga elemento sa array (wala para sa variable-sized
array)
* prefix_fname_NUMELEMENTS_i: sukat ng iika- array na sukat
Mga naka-embed na istruktura sa uri ng mensahe ay pinalawak, gamit ang _ upang paghiwalayin ang pangalan ng istraktura
at ang mga patlang nito. Ang isang field ng isang hanay ng mga naka-embed na istruktura ay itinuturing na isang array.
MGA KAMALI
nescc-mig nag-uulat ng error kung nescc hindi makapag-compile msg-format-file, Kung uri ng mensahe ay hindi
natagpuan o kung naglalaman ito ng mga payo.
Gumamit ng nescc-mig online gamit ang mga serbisyo ng onworks.net