Skip to content

Commit ed2343e

Browse files
committed
updated devenv
1 parent a9e0dfa commit ed2343e

8 files changed

Lines changed: 579 additions & 58 deletions

File tree

docs/_/js/search-ui.js

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -133,9 +133,14 @@
133133
document.head.appendChild(link);
134134
}
135135

136+
function highlightPageTitle (title, terms) {
137+
const positions = getTermPosition(title, terms);
138+
return buildHighlightedText(title, positions, snippetLength)
139+
}
140+
136141
function highlightSectionTitle (sectionTitle, terms) {
137142
if (sectionTitle) {
138-
const text = sectionTitle.title ?? sectionTitle.text;
143+
const text = sectionTitle.text;
139144
const positions = getTermPosition(text, terms);
140145
return buildHighlightedText(text, positions, snippetLength)
141146
}
@@ -151,7 +156,8 @@
151156
return []
152157
}
153158

154-
function highlightText (text, terms) {
159+
function highlightText (doc, terms) {
160+
const text = doc.text;
155161
const positions = getTermPosition(text, terms);
156162
return buildHighlightedText(text, positions, snippetLength)
157163
}
@@ -177,12 +183,9 @@
177183
}
178184
}
179185
return {
180-
pageTitleNodes: highlightText(doc.title, terms.title || []),
186+
pageTitleNodes: highlightPageTitle(doc.title, terms.title || []),
181187
sectionTitleNodes: highlightSectionTitle(sectionTitle, terms.title || []),
182-
pageContentNodes: highlightText(
183-
sectionTitle?.title && sectionTitle.text ? sectionTitle.text : doc.text,
184-
terms.text || []
185-
),
188+
pageContentNodes: highlightText(doc, terms.text || []),
186189
pageKeywordNodes: highlightKeyword(doc, terms.keyword || []),
187190
}
188191
}
@@ -196,12 +199,12 @@
196199
let sectionTitle;
197200
if (ids.length > 1) {
198201
const titleId = ids[1];
199-
sectionTitle = doc.titles.find(function (item) {
202+
sectionTitle = doc.titles.filter(function (item) {
200203
return String(item.id) === titleId
201-
});
204+
})[0];
202205
}
203206
const metadata = item.matchData.metadata;
204-
const highlightingResult = highlightHit(metadata, sectionTitle || doc, doc);
207+
const highlightingResult = highlightHit(metadata, sectionTitle, doc);
205208
const componentVersion = store.componentVersions[`${doc.component}/${doc.version}`];
206209
if (componentVersion !== undefined && currentComponent !== componentVersion) {
207210
const searchResultComponentHeader = document.createElement('div');

docs/atomvm/devenv.html

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -467,6 +467,141 @@ <h2 id="encender-un-led-con-atomvm"><a class="anchor" href="#encender-un-led-con
467467
</div>
468468
</div>
469469
</div>
470+
<div class="sect1">
471+
<h2 id="compilar-atomvm"><a class="anchor" href="#compilar-atomvm"></a>Compilar AtomVM</h2>
472+
<div class="sectionbody">
473+
<div class="paragraph">
474+
<p>También es opción compilar un ejecutable de AtomVM que permita probar el código
475+
dentro de un computador Linux o MacOS.</p>
476+
</div>
477+
<div class="paragraph">
478+
<p>Para esto se necesitan las siguientes dependencias:</p>
479+
</div>
480+
<div class="ulist">
481+
<ul>
482+
<li>
483+
<p>cmake</p>
484+
</li>
485+
<li>
486+
<p>gperf</p>
487+
</li>
488+
<li>
489+
<p>rebar3</p>
490+
</li>
491+
</ul>
492+
</div>
493+
<div class="paragraph">
494+
<p>Estas pueden ser instaladas en Linux (Debian) por ejemplo:</p>
495+
</div>
496+
<div class="listingblock">
497+
<div class="content">
498+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ sudo apt install cmake
499+
$ sudo apt install gperf
500+
$ sudo apt install rebar3</code></pre>
501+
</div>
502+
</div>
503+
<div class="paragraph">
504+
<p>Y en MacOS utilizando <a href="https://www.macports.org/">MacPorts</a> por ejemplo:</p>
505+
</div>
506+
<div class="listingblock">
507+
<div class="content">
508+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ sudo port install cmake
509+
$ sudo port install gperf
510+
$ sudo port install rebar3</code></pre>
511+
</div>
512+
</div>
513+
<div class="admonitionblock note">
514+
<table>
515+
<tr>
516+
<td class="icon">
517+
<i class="fa icon-note" title="Note"></i>
518+
</td>
519+
<td class="content">
520+
<div class="paragraph">
521+
<p>rebar3 necesita erlang. Por lo que si ya tienes erlang instalado
522+
solo debes descargar el archivo.</p>
523+
</div>
524+
<div class="paragraph">
525+
<p>$ curl <a href="https://s3.amazonaws.com/rebar3/rebar3" class="bare">https://s3.amazonaws.com/rebar3/rebar3</a> -o rebar3
526+
$ chmod +x rebar3
527+
$ sudo mv rebar3 /usr/local/bin
528+
$ rebar3 --version
529+
rebar 3.25.1 on Erlang/OTP 26 Erts 14.2.5.9</p>
530+
</div>
531+
</td>
532+
</tr>
533+
</table>
534+
</div>
535+
<div class="paragraph">
536+
<p>Luego se puede compilar:</p>
537+
</div>
538+
<div class="listingblock">
539+
<div class="content">
540+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ git clone https://github.com/atomvm/AtomVM.git
541+
$ cd AtomVM/
542+
$ mkdir build
543+
$ cd build
544+
$ cmake ..
545+
$ make -j 16</code></pre>
546+
</div>
547+
</div>
548+
<div class="paragraph">
549+
<p>Esto generará un ejecutable que se puede añadir a un alias como <code>avm</code>:</p>
550+
</div>
551+
<div class="listingblock">
552+
<div class="content">
553+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">alias avm='AtomVM ~/bin/atomvmlib.avm'</code></pre>
554+
</div>
555+
</div>
556+
<div class="paragraph">
557+
<p>Y se puede probar</p>
558+
</div>
559+
<div class="listingblock">
560+
<div class="content">
561+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ avm ./examples/erlang/hello_world.avm
562+
Hello World
563+
Console.puts() and Console.print() work with binary or charlist strings.
564+
Return value: ok</code></pre>
565+
</div>
566+
</div>
567+
</div>
568+
</div>
569+
<div class="sect1">
570+
<h2 id="elixir"><a class="anchor" href="#elixir"></a>Elixir</h2>
571+
<div class="sectionbody">
572+
<div class="paragraph">
573+
<p>Para tener soporte de Elixir se debe seguir el siguiente ejemplo:</p>
574+
</div>
575+
<div class="listingblock">
576+
<div class="content">
577+
<pre class="highlightjs highlight"><code class="language-bash hljs" data-lang="bash">$ git clone https://github.com/atomvm/atomvm_examples.git
578+
$ cd atomvm_examples/elixir/HelloWorld
579+
$ mix deps.get
580+
$ mix atomvm.packbeam
581+
$ avm hello_world.avm
582+
Hello World
583+
Return value: ok</code></pre>
584+
</div>
585+
</div>
586+
<div class="admonitionblock note">
587+
<table>
588+
<tr>
589+
<td class="icon">
590+
<i class="fa icon-note" title="Note"></i>
591+
</td>
592+
<td class="content">
593+
<div class="paragraph">
594+
<p>Muchas bibliotecas de Elixir como Enum y Regex, entre otras
595+
no están disponibles en AtomVM debido a que es una máquina virtual muy pequeña.
596+
Se debe tener en consideración sobre qué dependencias utilizar en los proyectos,
597+
muchas veces se preferirá código Erlang para suplir lo que haga falta.</p>
598+
</div>
599+
</td>
600+
</tr>
601+
</table>
602+
</div>
603+
</div>
604+
</div>
470605
<nav class="pagination">
471606
<span class="prev"><a href="atomvm.html">AtomVM</a></span>
472607
<span class="next"><a href="components.html">Componentes Electrónicos</a></span>

docs/controllers/esp32.html

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -378,6 +378,45 @@ <h2 id="esp32-devkit"><a class="anchor" href="#esp32-devkit"></a>ESP32-DevKit</h
378378
</div>
379379
</div>
380380
<div class="sect1">
381+
<h2 id="tipos-de-esp32"><a class="anchor" href="#tipos-de-esp32"></a>Tipos de ESP32</h2>
382+
<div class="sectionbody">
383+
<div class="ulist">
384+
<ul>
385+
<li>
386+
<p>ESP32-DevKitC (varios módulos: WROOM, WROVER con PSRAM). Uno de los más económicos y fáciles de adquirir en el mercado.</p>
387+
</li>
388+
<li>
389+
<p>ESP32-C3-DevKitC / DevKitM (chip RISC-V)</p>
390+
</li>
391+
<li>
392+
<p>ESP32-S2-DevKitC (USB nativo + Wi-Fi)</p>
393+
</li>
394+
<li>
395+
<p>ESP32-S3-DevKitC (USB + PSRAM + AI)</p>
396+
</li>
397+
<li>
398+
<p>ESP32-C6-DevKitC (Wi-Fi 6 + BLE + Thread/Zigbee)</p>
399+
</li>
400+
<li>
401+
<p>ESP32-H2-DevKitM (802.15.4 + BLE para Zigbee/Thread)</p>
402+
</li>
403+
<li>
404+
<p>ESP32-CAM – integración de cámara y microSD (muy usada en visión IoT).</p>
405+
</li>
406+
<li>
407+
<p>Boards con pantalla (TTGO T-Display) – con LCD para proyectos con interfaz visual.</p>
408+
</li>
409+
<li>
410+
<p>Boards con LoRa (TTGO T-Beam, Heltec) – combinan ESP32 con transceptores LoRa para comunicaciones de largo alcance</p>
411+
</li>
412+
<li>
413+
<p>ESP32-P4: No es una placa típica con Wi-Fi/Bluetooth, sino un SoC (chip). Está más orientada a tareas de procesamiento y conectividad por cable/periféricos.</p>
414+
</li>
415+
</ul>
416+
</div>
417+
</div>
418+
</div>
419+
<div class="sect1">
381420
<h2 id="proyecto-gladiadores-robots"><a class="anchor" href="#proyecto-gladiadores-robots"></a>Proyecto Gladiadores Robots</h2>
382421
<div class="sectionbody">
383422
<div class="paragraph">

0 commit comments

Comments
 (0)