1mod adaptive;
8mod js;
9mod receiver;
10mod video;
11mod webusb;
12
13pub use adaptive::OpenIpcAdaptiveLink;
14pub use receiver::OpenIpcReceiver;
15pub use webusb::supported_usb_filters;
16#[cfg(target_arch = "wasm32")]
17pub use webusb::{
18 list_authorized_usb_devices, WebBbDbgportRead, WebFalseAlarmCounters, WebInitReport,
19 WebIqkReport, WebPhydmWatchdogReport, WebPowerTrackingReport, WebQueueDepth8814,
20 WebThermalStatus, WebUsbPhydmWatchdog, WebUsbPowerTracking8812, WebUsbRealtekDevice,
21};
22
23use wasm_bindgen::prelude::*;
24
25#[wasm_bindgen(typescript_custom_section)]
26const OPENIPC_VIDEO_FRAME_TYPES: &'static str = r#"
27export type OpenIpcVideoFrame = {
28 data: Uint8Array;
29 codec: "h264" | "h265";
30 codecString: string;
31 isKeyFrame: boolean;
32 timestamp: number;
33};
34
35export type OpenIpcRawPayload = {
36 data: Uint8Array;
37 packetSeq: string;
38 routeId: number;
39 channelId: number;
40};
41
42export type OpenIpcRxTransferProfile = {
43 frames: OpenIpcVideoFrame[];
44 rawPayloads: OpenIpcRawPayload[];
45 mavlinkPayloads: OpenIpcRawPayload[];
46 rawPayloadCount: number;
47 rawPayloadBytes: number;
48 transferBytes: number;
49 packets: number;
50 acceptedPackets: number;
51 droppedPackets: number;
52 crcDropped: number;
53 icvDropped: number;
54 reportDropped: number;
55 ignoredFrames: number;
56 sessions: number;
57 wfbPayloads: number;
58 rtpPackets: number;
59 videoFrames: number;
60 mavlinkPayloadCount: number;
61 mavlinkBytes: number;
62 parseMs: number;
63 pipelineMs: number;
64 totalMs: number;
65};
66"#;