@adeunis/capacitor-serial
TypeScript icon, indicating that this package has built-in type declarations

1.0.2 • Public • Published

capacitor-serial

Manage serial connections to Android devices for Capacitor projects.

NB: Does not work for Web or iOS.

Install

npm install @adeunis/capacitor-serial
npx cap sync

Basic usage

    //Connection
    Serial.requestSerialPermissions({vendorId: '1111', productId: '2222', driver: SerialDriverEnum.CDC_ACM_SERIAL_DRIVER})
    .then((permissionResponse) => {
        if (!permissionResponse.granted) {
            return Promise.reject('Permission refused');
        }
        return Promise.resolve();

    })
    .then(() => Serial.openConnection({baudRate: 115200}))
    .then(() => log.info('Serial connection opend'))
    .catch((error) => log.error(error));

    //Write
    Serial.write({data: 'my_message'})
        .then(() => log.info('Data sent'))
        .catch((error: SerialError ) => {
            log.error(`error : ${error}`);
        });
    
    
    //Read
    Serial.read({readRaw: false}).then((message) => log.info(message.data));

    //Read callback 
    Serial.registerReadCallback((message, error) => {
        if (message !== undefined && message !== null) {
            log.info(message.data);

        } else if (error !== undefined && error !== null) {
            log.error(`error : ${error}`);
        }
    })

    Serial.closeConnection().then(() => log.info('Serial connection closed'));

API

requestSerialPermissions(...)

requestSerialPermissions(parameters?: SerialPermissionsParameters | undefined) => Promise<SerialPermissions>

Request permissions to connect to a device over a serial connection

Param Type Description
parameters SerialPermissionsParameters Parameters used to request permissions for a specific productId and vendorId (integer value or hexadecimal string), and a specific driver

Returns: Promise<SerialPermissions>


openConnection(...)

openConnection(parameters: SerialConnectionParameters) => Promise<void>

Open a serial connection to a device

Param Type Description
parameters SerialConnectionParameters Parameters used to open a serial connection

closeConnection()

closeConnection() => Promise<void>

Close the serial connection


write(...)

write(message: SerialMessage) => Promise<void>

Write a message to a serial connection

Param Type Description
message SerialMessage contains the data string to write to the serial connection

writeHexadecimal(...)

writeHexadecimal(message: SerialMessage) => Promise<void>

Write a hexadecimal message to a serial connection

Param Type Description
message SerialMessage contains the data string in hexadecimal to write to the serial connection

read(...)

read(parameters: SerialReadParameters) => Promise<SerialMessage>

Read from a serial connection

Param Type Description
parameters SerialReadParameters specify if the read data should be sent back as 'raw', meaning the byte array encoded in base64 string, or as a UTF-8 decoded string

Returns: Promise<SerialMessage>


registerReadCallback(...)

registerReadCallback(callback: SerialReadCallback) => Promise<string>

Register a callback to receive the incoming data from the serial connection

Param Type Description
callback SerialReadCallback the callback called each time there is incoming data from the serial connection, the data being a UTF-8 decoded string

Returns: Promise<string>


unregisterReadCallback()

unregisterReadCallback() => Promise<void>

Unregister the read callback


registerReadRawCallback(...)

registerReadRawCallback(callback: SerialReadCallback) => Promise<string>

Register a callback to receive the incoming raw data from the serial connection

Param Type Description
callback SerialReadCallback the callback called each time there is incoming data from the serial connection, the data being the byte array encoded in base64 string

Returns: Promise<string>


unregisterReadRawCallback()

unregisterReadRawCallback() => Promise<void>

Unregister the read raw callback


Interfaces

SerialPermissions

Prop Type
granted boolean

SerialPermissionsParameters

Prop Type
vendorId string | number
productId string | number
driver SerialDriverEnum

SerialConnectionParameters

Prop Type
baudRate number
dataBits number
stopBits number
parity number
dtr boolean
rts boolean

SerialMessage

Prop Type
data string

SerialReadParameters

Prop Type
readRaw boolean

Type Aliases

SerialReadCallback

(message: SerialMessage, error?: SerialError): void

Enums

SerialDriverEnum

Members Value
FTDI_SERIAL_DRIVER "FtdiSerialDriver"
CDC_ACM_SERIAL_DRIVER "CdcAcmSerialDriver"
CP21XX_SERIAL_DRIVER "Cp21xxSerialDriver"
PROLIFIC_SERIAL_DRIVER "ProlificSerialDriver"
CH34X_SERIAL_DRIVER "Ch34xSerialDriver"

SerialError

Members Value
UNKNOWN_DRIVER_ERROR "UNKNOWN_DRIVER_ERROR"
NO_DEVICE_ERROR "NO_DEVICE_ERROR"
PARAMETER_ERROR "PARAMETER_ERROR"
CONNECTION_ERROR "CONNECTION_ERROR"
PORT_CLOSED_ERROR "PORT_CLOSED_ERROR"

Readme

Keywords

Package Sidebar

Install

npm i @adeunis/capacitor-serial

Weekly Downloads

688

Version

1.0.2

License

MIT

Unpacked Size

81.3 kB

Total Files

27

Last publish

Collaborators

  • a.deyres