0.1.3 • Published 1 year ago

@2hire/react-native-bleintsdk v0.1.3

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

@2hire/react-native-bleintsdk

React Native bridge for BLEIntSDK

Installation

npm install @2hire/react-native-bleintsdk

Usage

Setup a new session

Before creating a session with a vehicle, a server session must be created using start_offline_session endpoint.

Create a BLEIntSDK Client instance with data received from the endpoint. See errors for other error codes.

import * as SDK from "@2hire/react-native-bleintsdk";

// ...

const commandsHistory: string[] = [];

// data received from start_offline_session endpoint
const accessDataToken = "session_token";
const publicKey = "board_public_key";
const commands: SDK.Commands = {
  start: "start_command_payload",
  stop: "stop_command_payload",
  end_session: "end_session_command_payload",
};

try {
  const result = await SDK.sessionSetup(accessDataToken, commands, publicKey);

  console.log(result); // true
} catch (e) {
  if (e.code === "invalid_data") {
    // data supplied is not correct. e.g. wrong format?
  }
}

Connect to a vehicle

Connect to a board and start the session. See errors for other error codes.

import * as SDK from "@2hire/react-native-bleintsdk";

// ...

// board mac address is received from start_offline_session endpoint
const boardMacAddress = "mac_address";

try {
  // connect to vehicle using `boardMacAddress`
  const result = await SDK.connect(boardMacAddress);

  // save base64 result.payload command response
  commandsHistory.push(result.payload);

  console.log(result); // { success: true, payload: "efab2331..." }
} catch (e) {
  if (e.code === "invalid_session") {
    // session is not valid. e.g. call server o get a new one
  }
}

Send a command to a vehicle

Available commands are Start and Stop. See errors for other error codes.

import * as SDK from "@2hire/react-native-bleintsdk";

// ...

try {
  const result = await SDK.sendCommand("start");

  // save base64 result.payload command response
  commandsHistory.push(result.payload)

  console.log(result); // { success: true, payload: "efab2331..." }
} catch (e) {
  if (e.code === "timeout") {
    // command timed out. e.g. retry command
  }
}

End a session

End the board session and clear the client instance. After ending a board session all payloads received must be then sent back to the server using end_offline_session. See errors for other error codes.

import * as SDK from "@2hire/react-native-bleintsdk";

// ...

try {
  const result = await SDK.endSession();

  // save base64 result.payload command response
  commandsHistory.push(result.payload);

  console.log(result); // { success: true, payload: "efab2331..." }

  // endServerSession(commandsHistory)
} catch (e) {
  if (e.code === "timeout") {
    // command timed out. e.g. retry command
  }
}
0.1.2

1 year ago

0.1.3

1 year ago

0.1.1

1 year ago

0.1.0

2 years ago

0.0.6

2 years ago

0.0.5

2 years ago

0.0.4

2 years ago

0.0.3

2 years ago

0.0.2

2 years ago

0.0.2-beta.17

2 years ago

0.0.2-beta.16

2 years ago

0.0.2-beta.14

2 years ago

0.0.2-beta.8

2 years ago

0.0.2-beta.7

2 years ago

0.0.2-beta.6

2 years ago

0.0.2-beta.5

2 years ago

0.0.2-beta.4

2 years ago

0.0.2-beta.3

2 years ago

0.0.2-beta.2

2 years ago

0.0.2-beta.1

2 years ago

0.0.1-beta

2 years ago

0.0.1

2 years ago