ixfx
    Preparing search index...

    Class EspruinoSerialDevice

    Serial device. Assumes data is sent with new line characters (\r\n) between messages.

    import { Serial } from '@ixfx/io.js'
    const s = new Serial.Device();
    s.addEventListener(`change`, evt => {
    console.log(`State change ${evt.priorState} -> ${evt.newState}`);
    if (evt.newState === `connected`) {
    // Do something when connected...
    }
    });

    // In a UI event handler...
    s.connect();

    Reading incoming data:

    // Parse incoming data as JSON
    s.addEventListener(`data`, evt => {
    try {
    const o = JSON.parse(evt.data);
    // If we get this far, JSON is legit
    } catch (ex) {
    }
    });

    Writing to the microcontroller

    s.write(JSON.stringify({msg:"hello"}));
    

    Hierarchy (View Summary)

    Index

    Accessors

    Constructors

    Methods

    • Sends some code to be executed on the Espruino. The result is packaged into JSON and sent back to your code. An exception is thrown if code can't be executed for some reason.

      const sum = await e.eval(`2+2`);
      

      It will wait for a period of time for a well-formed response from the Espruino. This might not happen if there is a connection problem or a syntax error in the code being evaled. In cases like the latter, it will take up to timeoutMs (default 5 seconds) before we give up waiting for a correct response and throw an error.

      Tweaking of the timeout may be required if eval() is giving up too quickly or too slowly. A default timeout can be given when creating the class.

      Options: timeoutMs: Timeout for execution. 5 seconds by default assumeExclusive: If true, eval assumes all replies from controller are in response to eval. True by default debug: If true, execution is traced via warn callback

      Parameters

      • code: string

        Code to run on the Espruino.

      • opts: EvalOpts = {}

        Options

      • Optionalwarn: (message: string) => void

        Function to pass warning/trace messages to. If undefined, this.warn is used, printing to console.

      Returns Promise<string>

    • Writes a script to Espruino.

      It will first send a CTRL+C to cancel any previous input, reset() to clear the board, and then the provided code followed by a new line.

      Use eval instead to execute remote code and get the result back.

      // Eg from https://www.espruino.com/Web+Bluetooth
      writeScript(`
      setInterval(() => Bluetooth.println(E.getTemperature()), 1000);
      NRF.on('disconnect',()=>reset());
      `);

      Parameters

      • code: string

        Code to send. A new line is added automatically.

      Returns void

    Properties

    abort: AbortController
    baudRate: number
    chunkSize: number
    codec: Codec
    connectAttempts: number
    evalReplyBluetooth: boolean = false
    evalTimeoutMs: number
    name: string
    port: undefined | SerialPort
    states: StateMachineWithEvents<
        Readonly<
            Readonly<
                {
                    closed: "connecting";
                    connected: string[];
                    connecting: string[];
                    ready: "connecting";
                },
            >,
        >,
    >
    tx: undefined | WritableStreamDefaultWriter<string>
    verboseLogging: boolean = false