0.10.0 • Published 4 months ago

dronecan.ts v0.10.0

Weekly downloads
-
License
ISC
Repository
github
Last release
4 months ago

Dronecan.ts

TypeScript implementation of the DroneCAN protocol.

Example

Usage overview

Define protocol schema

export const schema = {
  messages: [
    message({
      id: 341,
      type: "uavcan.protocol.NodeStatus",
      definition: {
        uptimeSec: uint(32),
        health: enumeration(2, ["ok", "warning", "error", "critical"] as const),
        mode: enumeration(3, [
          "operational",
          "initialization",
          "maintenance",
          "software update",
          4,
          5,
          6,
          "offline",
        ] as const),
        subMode: uint(3),
        vendorSpecificStatusCode: uint(16),
      },
    }),
  ],
  services: [],
} as const;

Broadcast

 dronecan.broadcast("uavcan.protocol.NodeStatus", {
    uptimeSec: 0,
    health: "ok",
    mode: "operational",
    subMode: 0,
    vendorSpecificStatusCode: 0,
  })

Request

const info = await dronecan.request("uavcan.protocol.GetNodeInfo", destinationId, {});

Respond

dronecan.onRequest("uavcan.protocol.GetNodeInfo", () => ({
  status: {
    uptimeSec: 0,
    health: "ok",
    mode: "operational",
    subMode: 0,
    vendorSpecificStatusCode: 0,
  },
  softwareVersion: {
    major: 1,
    minor: 0,
    optionalFieldFlags: 0,
    vcsCommit: 0,
    imageCrc: 0n,
  },
  hardwareVersion: {
    major: 1,
    minor: 0,
    uniqueId: new Uint8Array(new Array(16)),
    certificateOfAuthenticity: new Uint8Array(),
  },
  name: "",
});
0.10.0

4 months ago

0.9.0

4 months ago

0.8.0

4 months ago

0.9.1

4 months ago

0.7.0

4 months ago

0.6.0

4 months ago

0.5.0

5 months ago

0.4.0

5 months ago

0.3.0

5 months ago

0.2.0

5 months ago

0.1.0

5 months ago