aboutsummaryrefslogtreecommitdiff
path: root/pw_web/docs.rst
blob: c10242518791466829a842f9a8e7fe63d66ad108 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
.. _module-pw_web:

---------
pw_web
---------

Pigweed provides an NPM package with modules to build web UIs for Pigweed
devices.

Also included is a basic React app that demonstrates using the npm package.


Available Modules
=============================
Following Pigweed modules are included in the NPM package:

- `pw_hdlc <https://pigweed.dev/pw_hdlc/#typescript>`_
- `pw_rpc <https://pigweed.dev/pw_rpc/ts/>`_
- `pw_tokenizer <https://pigweed.dev/pw_tokenizer/#typescript>`_
- `pw_transfer <https://pigweed.dev/pw_transfer/#typescript>`_

To help with connecting to WebSerial and listening for serial data, a helper
class is also included under ``WebSerial.WebSerialTransport``. Here is an example
usage:

.. code:: javascript

   import { WebSerial, pw_hdlc } from 'pigweedjs';

   const transport = new WebSerial.WebSerialTransport();
   const decoder = new pw_hdlc.Decoder();

   // Present device selection prompt to user
   await transport.connect();

   // Listen and decode HDLC frames
   transport.chunks.subscribe((item) => {
     const decoded = decoder.process(item);
     for (const frame of decoded) {
       if (frame.address === 1) {
         const decodedLine = new TextDecoder().decode(frame.data);
         console.log(decodedLine);
       }
     }
   });

Installation
=============

You can install ``pigweedjs`` in your web application by:

.. code:: bash

   $ npm install --save pigweedjs


Getting Started
================

After installing, you can import modules from ``pigweedjs`` in this way:

.. code:: javascript

   import { pw_rpc, pw_tokenizer } from 'pigweedjs';

Click on each module above to see its usage.