@jtarrio/webrtlsdr 0.1.0 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +6 -11
- package/dist/demod/demodulator.d.ts +3 -3
- package/dist/demod/demodulator.d.ts.map +1 -1
- package/dist/demod/demodulator.js +4 -7
- package/dist/demod/demodulator.js.map +1 -1
- package/dist/demod/modes.d.ts +2 -2
- package/dist/demod/modes.d.ts.map +1 -1
- package/dist/demod/modes.js +4 -4
- package/dist/demod/modes.js.map +1 -1
- package/dist/demod/sample-counter.d.ts +3 -4
- package/dist/demod/sample-counter.d.ts.map +1 -1
- package/dist/demod/sample-counter.js +3 -7
- package/dist/demod/sample-counter.js.map +1 -1
- package/dist/demod/spectrum.d.ts +1 -2
- package/dist/demod/spectrum.d.ts.map +1 -1
- package/dist/demod/spectrum.js +0 -4
- package/dist/demod/spectrum.js.map +1 -1
- package/dist/radio/radio.d.ts +3 -2
- package/dist/radio/radio.d.ts.map +1 -1
- package/dist/radio/radio.js +4 -3
- package/dist/radio/radio.js.map +1 -1
- package/dist/radio/sample_receiver.d.ts +9 -5
- package/dist/radio/sample_receiver.d.ts.map +1 -1
- package/dist/radio/sample_receiver.js +23 -22
- package/dist/radio/sample_receiver.js.map +1 -1
- package/dist/radio.d.ts +1 -0
- package/dist/radio.d.ts.map +1 -1
- package/dist/radio.js +1 -0
- package/dist/radio.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -14,6 +14,8 @@ This library powers Radio Receiver, my browser-based SDR application, which you
|
|
|
14
14
|
|
|
15
15
|
Web RTL-SDR was written to work with an RTL-2832U-based DVB-T (European digital TV) USB receiver, with a R820/828/860 tuner chip. Support for other chips may be added as required.
|
|
16
16
|
|
|
17
|
+
Web RTL-SDR uses the WebUSB API, which is only available in Chromium-based browsers (Chrome, Edge, Opera) on computers and Android devices.
|
|
18
|
+
|
|
17
19
|
## How to install
|
|
18
20
|
|
|
19
21
|
```shell
|
|
@@ -22,17 +24,11 @@ npm install @jtarrio/webrtlsdr
|
|
|
22
24
|
|
|
23
25
|
## How to use
|
|
24
26
|
|
|
25
|
-
I want to write a comprehensive set of documentation, but in the meantime, here is an introduction.
|
|
26
|
-
|
|
27
|
-
> [!NOTE]
|
|
28
|
-
> This library uses the WebUSB API to access the RTL-SDR device. This means that you need to do two things for it to work:
|
|
29
|
-
>
|
|
30
|
-
> - You must connect to the RTL-SDR device in response to a user gesture (a click or tap, generally.) You cannot, for example, connect to it automatically on opening a webpage or after a timeout.
|
|
31
|
-
> - Your web page must be served through a secure context. That means a HTTPS connection or a connection to `localhost`.
|
|
32
|
-
|
|
33
27
|
> [!NOTE]
|
|
34
28
|
> This is a new library and the API is still being refined. For `0.x.y` versions, the `x` component will be incremented when there are incompatible API changes.
|
|
35
29
|
|
|
30
|
+
See [the `docs` directory](docs/README.md) for the documentation or check out the following examples.
|
|
31
|
+
|
|
36
32
|
### High-level access to RTL-SDR (demodulate and play through the computer's speakers)
|
|
37
33
|
|
|
38
34
|
This program is a complete stereo FM radio receiver tuned for 88.5 MHz.
|
|
@@ -43,9 +39,8 @@ import { getMode } from "@jtarrio/webrtlsdr/demod/modes";
|
|
|
43
39
|
import { Radio } from "@jtarrio/webrtlsdr/radio";
|
|
44
40
|
import { RTL2832U_Provider } from "@jtarrio/webrtlsdr/rtlsdr";
|
|
45
41
|
|
|
46
|
-
|
|
47
|
-
let
|
|
48
|
-
let radio = new Radio(new RTL2832U_Provider(), demodulator, sampleRate);
|
|
42
|
+
let demodulator = new Demodulator();
|
|
43
|
+
let radio = new Radio(new RTL2832U_Provider(), demodulator);
|
|
49
44
|
|
|
50
45
|
radio.setFrequency(88500000);
|
|
51
46
|
demodulator.setVolume(1);
|
|
@@ -10,11 +10,12 @@
|
|
|
10
10
|
* to observe the demodulator's state.
|
|
11
11
|
*/
|
|
12
12
|
import { Mode } from "./modes";
|
|
13
|
-
import { SampleReceiver } from "../radio
|
|
13
|
+
import { SampleReceiver } from "../radio";
|
|
14
14
|
/** The demodulator class. */
|
|
15
15
|
export declare class Demodulator extends EventTarget implements SampleReceiver {
|
|
16
|
+
constructor();
|
|
17
|
+
/** The sample rate. */
|
|
16
18
|
private inRate;
|
|
17
|
-
constructor(inRate: number);
|
|
18
19
|
/** The audio output device. */
|
|
19
20
|
private player;
|
|
20
21
|
/** Controller that silences the output if the SNR is low. */
|
|
@@ -49,7 +50,6 @@ export declare class Demodulator extends EventTarget implements SampleReceiver {
|
|
|
49
50
|
setSampleRate(sampleRate: number): void;
|
|
50
51
|
/** Receives radio samples. */
|
|
51
52
|
receiveSamples(I: Float32Array, Q: Float32Array, frequency: number): void;
|
|
52
|
-
andThen(next: SampleReceiver): SampleReceiver;
|
|
53
53
|
addEventListener(type: "stereo-status", callback: (e: StereoStatusEvent) => void | null, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
54
54
|
addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
55
55
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH,OAAO,EAAoB,IAAI,EAAE,MAAM,SAAS,CAAC;AAOjD,OAAO,
|
|
1
|
+
{"version":3,"file":"demodulator.d.ts","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"AAcA;;;;;;;;;;GAUG;AAEH,OAAO,EAAoB,IAAI,EAAE,MAAM,SAAS,CAAC;AAOjD,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,6BAA6B;AAC7B,qBAAa,WAAY,SAAQ,WAAY,YAAW,cAAc;;IAYpE,uBAAuB;IACvB,OAAO,CAAC,MAAM,CAAS;IACvB,+BAA+B;IAC/B,OAAO,CAAC,MAAM,CAAS;IACvB,6DAA6D;IAC7D,OAAO,CAAC,cAAc,CAAiB;IACvC,kDAAkD;IAClD,OAAO,CAAC,IAAI,CAAO;IACnB,6BAA6B;IAC7B,OAAO,CAAC,MAAM,CAAmB;IACjC,+CAA+C;IAC/C,OAAO,CAAC,eAAe,CAAS;IAChC,iDAAiD;IACjD,OAAO,CAAC,YAAY,CAAU;IAC9B,2CAA2C;IAC3C,OAAO,CAAC,kBAAkB,CAAC,CAAY;IAEvC,yCAAyC;IACzC,OAAO,CAAC,IAAI,EAAE,IAAI;IAKlB,iDAAiD;IACjD,OAAO,IAAI,IAAI;IAIf,oCAAoC;IACpC,kBAAkB,CAAC,MAAM,EAAE,MAAM;IAIjC,4CAA4C;IAC5C,kBAAkB;IAIlB,2FAA2F;IAC3F,2BAA2B,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAI1D,gDAAgD;IAChD,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,8CAA8C;IAC9C,SAAS;IAIT,kFAAkF;IAClF,OAAO,CAAC,SAAS;IAqBjB,+BAA+B;IAC/B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,8BAA8B;IAC9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAmBzE,gBAAgB,CACd,IAAI,EAAE,eAAe,EACrB,QAAQ,EAAE,CAAC,CAAC,EAAE,iBAAiB,KAAK,IAAI,GAAG,IAAI,EAC/C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR;AAED,qBAAa,iBAAkB,SAAQ,WAAW,CAAC,OAAO,CAAC;gBAC7C,MAAM,EAAE,OAAO;CAG5B"}
|
|
@@ -17,13 +17,11 @@ import { SchemeNBFM } from "./scheme-nbfm";
|
|
|
17
17
|
import { SchemeSSB } from "./scheme-ssb";
|
|
18
18
|
import { SchemeWBFM } from "./scheme-wbfm";
|
|
19
19
|
import { Player } from "../audio/player";
|
|
20
|
-
import { concatenateReceivers } from "../radio/sample_receiver";
|
|
21
20
|
/** The demodulator class. */
|
|
22
21
|
export class Demodulator extends EventTarget {
|
|
23
|
-
|
|
24
|
-
constructor(inRate) {
|
|
22
|
+
constructor() {
|
|
25
23
|
super();
|
|
26
|
-
this.inRate =
|
|
24
|
+
this.inRate = 1024000;
|
|
27
25
|
this.player = new Player();
|
|
28
26
|
this.squelchControl = new SquelchControl(this.player.sampleRate);
|
|
29
27
|
this.mode = { scheme: "WBFM", stereo: true };
|
|
@@ -31,6 +29,8 @@ export class Demodulator extends EventTarget {
|
|
|
31
29
|
this.frequencyOffset = 0;
|
|
32
30
|
this.latestStereo = false;
|
|
33
31
|
}
|
|
32
|
+
/** The sample rate. */
|
|
33
|
+
inRate;
|
|
34
34
|
/** The audio output device. */
|
|
35
35
|
player;
|
|
36
36
|
/** Controller that silences the output if the SNR is low. */
|
|
@@ -113,9 +113,6 @@ export class Demodulator extends EventTarget {
|
|
|
113
113
|
this.latestStereo = stereo;
|
|
114
114
|
}
|
|
115
115
|
}
|
|
116
|
-
andThen(next) {
|
|
117
|
-
return concatenateReceivers(this, next);
|
|
118
|
-
}
|
|
119
116
|
addEventListener(type, callback, options) {
|
|
120
117
|
super.addEventListener(type, callback, options);
|
|
121
118
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"demodulator.js","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAejC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"demodulator.js","sourceRoot":"","sources":["../../src/demod/demodulator.ts"],"names":[],"mappings":"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"}
|
package/dist/demod/modes.d.ts
CHANGED
|
@@ -67,8 +67,8 @@ export declare function getSchemes(): Array<Scheme>;
|
|
|
67
67
|
/** Returns the default mode for the given scheme. */
|
|
68
68
|
export declare function getMode(scheme: Scheme): Mode;
|
|
69
69
|
/** Returns accessors for the mode's or scheme's parameters. */
|
|
70
|
-
export declare function
|
|
71
|
-
export declare function
|
|
70
|
+
export declare function modeParameters(mode: Mode): ModeParameters;
|
|
71
|
+
export declare function modeParameters(scheme: Scheme): SchemeParameters;
|
|
72
72
|
/** A class to inspect and modify a mode's parameters. */
|
|
73
73
|
export declare class ModeParameters {
|
|
74
74
|
mode: Mode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAcA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/E;AAED,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,qBAAqB;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,IAAI;AACd,qCAAqC;AACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE;AACrC,uCAAuC;GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACnD,4BAA4B;GAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,uBAAuB;GACrB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEpC,yCAAyC;AACzC,wBAAgB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAE1C;AAED,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe5C;AAED,+DAA+D;AAC/D,wBAAgB,
|
|
1
|
+
{"version":3,"file":"modes.d.ts","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAcA,8DAA8D;AAC9D,MAAM,WAAW,gBAAgB;IAC/B,2CAA2C;IAC3C,OAAO,IAAI,IAAI,CAAC;IAChB,0DAA0D;IAC1D,OAAO,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B;;;;;;OAMG;IACH,UAAU,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,WAAW,CAAC;CAC/E;AAED,0BAA0B;AAC1B,MAAM,MAAM,WAAW,GAAG;IACxB,oBAAoB;IACpB,IAAI,EAAE,YAAY,CAAC;IACnB,qBAAqB;IACrB,KAAK,EAAE,YAAY,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,OAAO,CAAC;IAChB,0DAA0D;IAC1D,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,6BAA6B;AAC7B,MAAM,MAAM,IAAI;AACd,qCAAqC;AACnC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE;AACrC,uCAAuC;GACrC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACnD,4BAA4B;GAC1B;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACtD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,iCAAiC;GAC/B;IAAE,MAAM,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE;AACvD,uBAAuB;GACrB;IAAE,MAAM,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC,oDAAoD;AACpD,MAAM,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;AAEpC,yCAAyC;AACzC,wBAAgB,UAAU,IAAI,KAAK,CAAC,MAAM,CAAC,CAE1C;AAED,qDAAqD;AACrD,wBAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAe5C;AAED,+DAA+D;AAC/D,wBAAgB,cAAc,CAAC,IAAI,EAAE,IAAI,GAAG,cAAc,CAAC;AAC3D,wBAAgB,cAAc,CAAC,MAAM,EAAE,MAAM,GAAG,gBAAgB,CAAC;AAQjE,yDAAyD;AACzD,qBAAa,cAAc;IACN,IAAI,EAAE,IAAI;gBAAV,IAAI,EAAE,IAAI;IAE7B,SAAS,IAAI,OAAO;IAIpB,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;IAM1C,YAAY,IAAI,OAAO;IAIvB,YAAY,IAAI,MAAM;IAWtB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAiC/C,UAAU,IAAI,OAAO;IAIrB,UAAU,IAAI,MAAM;IAKpB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAK5C;AAED,gDAAgD;AAChD,qBAAa,gBAAgB;IACR,MAAM,EAAE,MAAM;gBAAd,MAAM,EAAE,MAAM;IAEjC,SAAS,IAAI,OAAO;IAIpB,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,cAAc;IAI1C,YAAY,IAAI,OAAO;IAIvB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc;IAI/C,UAAU,IAAI,OAAO;IAIrB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAG5C"}
|
package/dist/demod/modes.js
CHANGED
|
@@ -32,7 +32,7 @@ export function getMode(scheme) {
|
|
|
32
32
|
return { scheme: "CW", bandwidth: 50 };
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
|
-
export function
|
|
35
|
+
export function modeParameters(mode) {
|
|
36
36
|
if (typeof mode === "string")
|
|
37
37
|
return new SchemeParameters(mode);
|
|
38
38
|
return new ModeParameters(mode);
|
|
@@ -123,19 +123,19 @@ export class SchemeParameters {
|
|
|
123
123
|
return this.scheme == "WBFM";
|
|
124
124
|
}
|
|
125
125
|
setStereo(stereo) {
|
|
126
|
-
return
|
|
126
|
+
return modeParameters(getMode(this.scheme)).setStereo(stereo);
|
|
127
127
|
}
|
|
128
128
|
hasBandwidth() {
|
|
129
129
|
return this.scheme != "WBFM";
|
|
130
130
|
}
|
|
131
131
|
setBandwidth(bandwidth) {
|
|
132
|
-
return
|
|
132
|
+
return modeParameters(getMode(this.scheme)).setBandwidth(bandwidth);
|
|
133
133
|
}
|
|
134
134
|
hasSquelch() {
|
|
135
135
|
return this.scheme != "WBFM" && this.scheme != "CW";
|
|
136
136
|
}
|
|
137
137
|
setSquelch(squelch) {
|
|
138
|
-
return
|
|
138
|
+
return modeParameters(getMode(this.scheme)).setSquelch(squelch);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
//# sourceMappingURL=modes.js.map
|
package/dist/demod/modes.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAgDjC,yCAAyC;AACzC,MAAM,UAAU,UAAU;IACxB,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACpD,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,OAAO,CAAC,MAAc;IACpC,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;QAC1C,KAAK,MAAM;YACT,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACpD,KAAK,IAAI;YACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,KAAK;YACR,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;QACxD,KAAK,IAAI;YACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC3C,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"modes.js","sourceRoot":"","sources":["../../src/demod/modes.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { SampleReceiver } from "../radio
|
|
1
|
+
import { SampleReceiver } from "../radio";
|
|
2
2
|
/** A SampleReceiver that counts received samples to send a `sample-click` event periodically. */
|
|
3
3
|
export declare class SampleCounter extends EventTarget implements SampleReceiver {
|
|
4
|
-
private sampleRate;
|
|
5
4
|
private clicksPerSecond?;
|
|
6
5
|
/**
|
|
7
6
|
* @param sampleRate The initial sample rate.
|
|
8
7
|
* @param clicksPerSecond The number of events per second.
|
|
9
8
|
*/
|
|
10
|
-
constructor(
|
|
9
|
+
constructor(clicksPerSecond?: number | undefined);
|
|
10
|
+
private sampleRate;
|
|
11
11
|
private samplesPerClick?;
|
|
12
12
|
private countedSamples;
|
|
13
13
|
private getSamplesPerClick;
|
|
14
14
|
setSampleRate(sampleRate: number): void;
|
|
15
15
|
receiveSamples(I: Float32Array, Q: Float32Array): void;
|
|
16
|
-
andThen(next: SampleReceiver): SampleReceiver;
|
|
17
16
|
addEventListener(type: "sample-click", callback: (e: SampleClickEvent) => void | null, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
18
17
|
addEventListener(type: string, callback: EventListenerOrEventListenerObject | null, options?: boolean | AddEventListenerOptions | undefined): void;
|
|
19
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample-counter.d.ts","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAcA,OAAO,
|
|
1
|
+
{"version":3,"file":"sample-counter.d.ts","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,iGAAiG;AACjG,qBAAa,aAAc,SAAQ,WAAY,YAAW,cAAc;IAK1D,OAAO,CAAC,eAAe,CAAC;IAJpC;;;OAGG;gBACiB,eAAe,CAAC,EAAE,MAAM,YAAA;IAO5C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAC,CAAS;IACjC,OAAO,CAAC,cAAc,CAAS;IAE/B,OAAO,CAAC,kBAAkB;IAM1B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKvC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,GAAG,IAAI;IAWtD,gBAAgB,CACd,IAAI,EAAE,cAAc,EACpB,QAAQ,EAAE,CAAC,CAAC,EAAE,gBAAgB,KAAK,IAAI,GAAG,IAAI,EAC9C,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR;AAED,qBAAa,gBAAiB,SAAQ,KAAK;;CAI1C"}
|
|
@@ -11,22 +11,21 @@
|
|
|
11
11
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
|
-
import { concatenateReceivers } from "../radio/sample_receiver";
|
|
15
14
|
/** A SampleReceiver that counts received samples to send a `sample-click` event periodically. */
|
|
16
15
|
export class SampleCounter extends EventTarget {
|
|
17
|
-
sampleRate;
|
|
18
16
|
clicksPerSecond;
|
|
19
17
|
/**
|
|
20
18
|
* @param sampleRate The initial sample rate.
|
|
21
19
|
* @param clicksPerSecond The number of events per second.
|
|
22
20
|
*/
|
|
23
|
-
constructor(
|
|
21
|
+
constructor(clicksPerSecond) {
|
|
24
22
|
super();
|
|
25
|
-
this.sampleRate = sampleRate;
|
|
26
23
|
this.clicksPerSecond = clicksPerSecond;
|
|
24
|
+
this.sampleRate = 1024000;
|
|
27
25
|
this.samplesPerClick = this.getSamplesPerClick();
|
|
28
26
|
this.countedSamples = 0;
|
|
29
27
|
}
|
|
28
|
+
sampleRate;
|
|
30
29
|
samplesPerClick;
|
|
31
30
|
countedSamples;
|
|
32
31
|
getSamplesPerClick() {
|
|
@@ -46,9 +45,6 @@ export class SampleCounter extends EventTarget {
|
|
|
46
45
|
this.countedSamples %= this.samplesPerClick;
|
|
47
46
|
this.dispatchEvent(new SampleClickEvent());
|
|
48
47
|
}
|
|
49
|
-
andThen(next) {
|
|
50
|
-
return concatenateReceivers(this, next);
|
|
51
|
-
}
|
|
52
48
|
addEventListener(type, callback, options) {
|
|
53
49
|
super.addEventListener(type, callback, options);
|
|
54
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample-counter.js","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"sample-counter.js","sourceRoot":"","sources":["../../src/demod/sample-counter.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAIjC,iGAAiG;AACjG,MAAM,OAAO,aAAc,SAAQ,WAAW;IAKxB;IAJpB;;;OAGG;IACH,YAAoB,eAAwB;QAC1C,KAAK,EAAE,CAAC;QADU,oBAAe,GAAf,eAAe,CAAS;QAE1C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACjD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;IAC1B,CAAC;IAEO,UAAU,CAAS;IACnB,eAAe,CAAU;IACzB,cAAc,CAAS;IAEvB,kBAAkB;QACxB,OAAO,IAAI,CAAC,eAAe,KAAK,SAAS;YACvC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,eAAe,CAAC,CAAC;IACzD,CAAC;IAED,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnD,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe;QAC7C,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,MAAM,CAAC;QAChC,IACE,IAAI,CAAC,eAAe,KAAK,SAAS;YAClC,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,cAAc;YAE1C,OAAO;QACT,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,eAAe,CAAC;QAC5C,IAAI,CAAC,aAAa,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;IAC7C,CAAC;IAYD,gBAAgB,CACd,IAAY,EACZ,QAAa,EACb,OAAuD;QAEvD,KAAK,CAAC,gBAAgB,CACpB,IAAI,EACJ,QAAqD,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzC;QACE,KAAK,CAAC,cAAc,CAAC,CAAC;IACxB,CAAC;CACF"}
|
package/dist/demod/spectrum.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { SampleReceiver } from "../radio
|
|
1
|
+
import { SampleReceiver } from "../radio";
|
|
2
2
|
/** A sample receiver that computes the received signal's spectrum. */
|
|
3
3
|
export declare class Spectrum implements SampleReceiver {
|
|
4
4
|
constructor(fftSize?: number);
|
|
@@ -12,7 +12,6 @@ export declare class Spectrum implements SampleReceiver {
|
|
|
12
12
|
get size(): number;
|
|
13
13
|
setSampleRate(_: number): void;
|
|
14
14
|
receiveSamples(I: Float32Array, Q: Float32Array, frequency: number): void;
|
|
15
|
-
andThen(next: SampleReceiver): SampleReceiver;
|
|
16
15
|
frequency(): number | undefined;
|
|
17
16
|
/**
|
|
18
17
|
* Populates the given array with the spectrum of the latest received signals.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spectrum.d.ts","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAmBA,OAAO,
|
|
1
|
+
{"version":3,"file":"spectrum.d.ts","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAmBA,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAE1C,sEAAsE;AACtE,qBAAa,QAAS,YAAW,cAAc;gBACjC,OAAO,CAAC,EAAE,MAAM;IAc5B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,CAAC,CAAoB;IAC7B,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,GAAG,CAAM;IACjB,OAAO,CAAC,UAAU,CAAe;IACjC,OAAO,CAAC,KAAK,CAAU;IAEvB,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAKvB;IAED,IAAI,IAAI,IAPU,MAAM,CASvB;IAED,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAE9B,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAOzE,SAAS,IAAI,MAAM,GAAG,SAAS;IAI/B;;;;OAIG;IACH,WAAW,CAAC,QAAQ,EAAE,YAAY;CAanC"}
|
package/dist/demod/spectrum.js
CHANGED
|
@@ -15,7 +15,6 @@
|
|
|
15
15
|
import { Float32RingBuffer } from "../dsp/buffers";
|
|
16
16
|
import { makeBlackmanWindow } from "../dsp/coefficients";
|
|
17
17
|
import { FFT } from "../dsp/fft";
|
|
18
|
-
import { concatenateReceivers } from "../radio/sample_receiver";
|
|
19
18
|
/** A sample receiver that computes the received signal's spectrum. */
|
|
20
19
|
export class Spectrum {
|
|
21
20
|
constructor(fftSize) {
|
|
@@ -54,9 +53,6 @@ export class Spectrum {
|
|
|
54
53
|
this.lastFrequency = frequency;
|
|
55
54
|
this.dirty = true;
|
|
56
55
|
}
|
|
57
|
-
andThen(next) {
|
|
58
|
-
return concatenateReceivers(this, next);
|
|
59
|
-
}
|
|
60
56
|
frequency() {
|
|
61
57
|
return this.lastFrequency;
|
|
62
58
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spectrum.js","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,gCAAgC;AAEhC,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,EAAE,GAAG,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"spectrum.js","sourceRoot":"","sources":["../../src/demod/spectrum.ts"],"names":[],"mappings":"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"}
|
package/dist/radio/radio.d.ts
CHANGED
|
@@ -20,9 +20,10 @@ export declare class RadioEvent extends CustomEvent<RadioEventType> {
|
|
|
20
20
|
export declare class Radio extends EventTarget {
|
|
21
21
|
private rtlProvider;
|
|
22
22
|
private sampleReceiver;
|
|
23
|
-
private sampleRate;
|
|
24
23
|
/** @param sampleReceiver the object that will receive the radio samples. */
|
|
25
|
-
constructor(rtlProvider: RtlDeviceProvider, sampleReceiver: SampleReceiver
|
|
24
|
+
constructor(rtlProvider: RtlDeviceProvider, sampleReceiver: SampleReceiver);
|
|
25
|
+
/** Current sample rate. */
|
|
26
|
+
private sampleRate;
|
|
26
27
|
/** Current state. */
|
|
27
28
|
private state;
|
|
28
29
|
/** Channel to send messages to the state machine. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAa,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,CAAC;AAEtC,kCAAkC;AAClC,qBAAa,UAAW,SAAQ,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,EAAE,cAAc;CAG9B;AAQD,2DAA2D;AAC3D,qBAAa,KAAM,SAAQ,WAAW;IAGlC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAkBA,OAAO,EAAE,cAAc,EAAa,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAYnD,0CAA0C;AAC1C,MAAM,MAAM,cAAc,GACtB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,OAAO,CAAA;CAAE,GAC3C;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,SAAS,EAAE,GAAG,CAAA;CAAE,CAAC;AAEtC,kCAAkC;AAClC,qBAAa,UAAW,SAAQ,WAAW,CAAC,cAAc,CAAC;gBAC7C,CAAC,EAAE,cAAc;CAG9B;AAQD,2DAA2D;AAC3D,qBAAa,KAAM,SAAQ,WAAW;IAGlC,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,cAAc;IAHxB,4EAA4E;gBAElE,WAAW,EAAE,iBAAiB,EAC9B,cAAc,EAAE,cAAc;IAcxC,2BAA2B;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,qBAAqB;IACrB,OAAO,CAAC,KAAK,CAAQ;IACrB,qDAAqD;IACrD,OAAO,CAAC,OAAO,CAAmB;IAClC,2CAA2C;IAC3C,OAAO,CAAC,mBAAmB,CAAS;IACpC,4CAA4C;IAC5C,OAAO,CAAC,IAAI,CAAgB;IAC5B,iCAAiC;IACjC,OAAO,CAAC,SAAS,CAAS;IAC1B,+CAA+C;IAC/C,OAAO,CAAC,oBAAoB,CAAiB;IAC7C,uCAAuC;IACvC,OAAO,CAAC,cAAc,CAAU;IAEhC,gCAAgC;IAChC,KAAK;IAIL,+BAA+B;IAC/B,IAAI;IAIJ,0DAA0D;IAC1D,SAAS;IAIT,yCAAyC;IACzC,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,mCAAmC;IACnC,YAAY,IAAI,MAAM;IAItB,oDAAoD;IACpD,sBAAsB,CAAC,GAAG,EAAE,MAAM;IAIlC,uDAAuD;IACvD,sBAAsB,IAAI,MAAM;IAIhC;;;OAGG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAI3B;;;OAGG;IACH,OAAO,IAAI,MAAM,GAAG,IAAI;IAIxB,uCAAuC;IACvC,uBAAuB,CAAC,MAAM,EAAE,cAAc;IAI9C,kDAAkD;IAClD,uBAAuB,IAAI,cAAc;IAIzC,wFAAwF;IACxF,aAAa,CAAC,UAAU,EAAE,MAAM;IAIhC,uCAAuC;IACvC,aAAa,IAAI,MAAM;IAIvB,wCAAwC;IACxC,aAAa,CAAC,MAAM,EAAE,OAAO;IAI7B,+CAA+C;IAC/C,gBAAgB,IAAI,OAAO;IAI3B,8BAA8B;YAChB,OAAO;IAoFrB,gBAAgB,CACd,IAAI,EAAE,OAAO,EACb,QAAQ,EAAE,CAAC,CAAC,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI,EACxC,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;IACP,gBAAgB,CACd,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,kCAAkC,GAAG,IAAI,EACnD,OAAO,CAAC,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,GACtD,IAAI;CAYR"}
|
package/dist/radio/radio.js
CHANGED
|
@@ -32,13 +32,12 @@ var State;
|
|
|
32
32
|
export class Radio extends EventTarget {
|
|
33
33
|
rtlProvider;
|
|
34
34
|
sampleReceiver;
|
|
35
|
-
sampleRate;
|
|
36
35
|
/** @param sampleReceiver the object that will receive the radio samples. */
|
|
37
|
-
constructor(rtlProvider, sampleReceiver
|
|
36
|
+
constructor(rtlProvider, sampleReceiver) {
|
|
38
37
|
super();
|
|
39
38
|
this.rtlProvider = rtlProvider;
|
|
40
39
|
this.sampleReceiver = sampleReceiver;
|
|
41
|
-
this.sampleRate =
|
|
40
|
+
this.sampleRate = 1024000;
|
|
42
41
|
this.state = State.OFF;
|
|
43
42
|
this.channel = new Channel();
|
|
44
43
|
this.frequencyCorrection = 0;
|
|
@@ -48,6 +47,8 @@ export class Radio extends EventTarget {
|
|
|
48
47
|
this.biasTeeEnabled = false;
|
|
49
48
|
this.runLoop();
|
|
50
49
|
}
|
|
50
|
+
/** Current sample rate. */
|
|
51
|
+
sampleRate;
|
|
51
52
|
/** Current state. */
|
|
52
53
|
state;
|
|
53
54
|
/** Channel to send messages to the state machine. */
|
package/dist/radio/radio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,iFAAiF;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,cAAc,EAAgC,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAoBrC,kCAAkC;AAClC,MAAM,OAAO,UAAW,SAAQ,WAA2B;IACzD,YAAY,CAAiB;QAC3B,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AAED,qBAAqB;AACrB,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,+BAAG,CAAA;IACH,uCAAO,CAAA;AACT,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAED,2DAA2D;AAC3D,MAAM,OAAO,KAAM,SAAQ,WAAW;IAG1B;IACA;
|
|
1
|
+
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../../src/radio/radio.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAEjC,iFAAiF;AAEjF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AACvD,OAAO,EAAE,cAAc,EAAgC,MAAM,qBAAqB,CAAC;AACnF,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAoBrC,kCAAkC;AAClC,MAAM,OAAO,UAAW,SAAQ,WAA2B;IACzD,YAAY,CAAiB;QAC3B,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;CACF;AAED,qBAAqB;AACrB,IAAK,KAGJ;AAHD,WAAK,KAAK;IACR,+BAAG,CAAA;IACH,uCAAO,CAAA;AACT,CAAC,EAHI,KAAK,KAAL,KAAK,QAGT;AAED,2DAA2D;AAC3D,MAAM,OAAO,KAAM,SAAQ,WAAW;IAG1B;IACA;IAHV,4EAA4E;IAC5E,YACU,WAA8B,EAC9B,cAA8B;QAEtC,KAAK,EAAE,CAAC;QAHA,gBAAW,GAAX,WAAW,CAAmB;QAC9B,mBAAc,GAAd,cAAc,CAAgB;QAGtC,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,OAAO,GAAG,IAAI,OAAO,EAAW,CAAC;QACtC,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,oBAAoB,GAAG,cAAc,CAAC,GAAG,CAAC;QAC/C,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,OAAO,EAAE,CAAC;IACjB,CAAC;IAED,2BAA2B;IACnB,UAAU,CAAS;IAC3B,qBAAqB;IACb,KAAK,CAAQ;IACrB,qDAAqD;IAC7C,OAAO,CAAmB;IAClC,2CAA2C;IACnC,mBAAmB,CAAS;IACpC,4CAA4C;IACpC,IAAI,CAAgB;IAC5B,iCAAiC;IACzB,SAAS,CAAS;IAC1B,+CAA+C;IACvC,oBAAoB,CAAiB;IAC7C,uCAAuC;IAC/B,cAAc,CAAU;IAEhC,gCAAgC;IAChC,KAAK;QACH,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IACvC,CAAC;IAED,+BAA+B;IAC/B,IAAI;QACF,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,0DAA0D;IAC1D,SAAS;QACP,OAAO,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,CAAC;IACjC,CAAC;IAED,yCAAyC;IACzC,YAAY,CAAC,IAAY;QACvB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACxD,CAAC;IAED,mCAAmC;IACnC,YAAY;QACV,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAED,oDAAoD;IACpD,sBAAsB,CAAC,GAAW;QAChC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,uDAAuD;IACvD,sBAAsB;QACpB,OAAO,IAAI,CAAC,mBAAmB,CAAC;IAClC,CAAC;IAED;;;OAGG;IACH,OAAO,CAAC,IAAmB;QACzB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED;;;OAGG;IACH,OAAO;QACL,OAAO,IAAI,CAAC,IAAI,CAAC;IACnB,CAAC;IAED,uCAAuC;IACvC,uBAAuB,CAAC,MAAsB;QAC5C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,sBAAsB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,kDAAkD;IAClD,uBAAuB;QACrB,OAAO,IAAI,CAAC,oBAAoB,CAAC;IACnC,CAAC;IAED,wFAAwF;IACxF,aAAa,CAAC,UAAkB;QAC9B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,uCAAuC;IACvC,aAAa;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,wCAAwC;IACxC,aAAa,CAAC,MAAe;QAC3B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,+CAA+C;IAC/C,gBAAgB;QACd,OAAO,IAAI,CAAC,cAAc,CAAC;IAC7B,CAAC;IAED,8BAA8B;IACtB,KAAK,CAAC,OAAO;QACnB,IAAI,SAAoB,CAAC;QACzB,IAAI,GAAc,CAAC;QACnB,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,GAAG,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACvC,IAAI,CAAC;gBACH,QAAQ,IAAI,CAAC,KAAK,EAAE,CAAC;oBACnB,KAAK,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;wBACf,IAAI,GAAG,CAAC,IAAI,IAAI,WAAW;4BAAE,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;wBACxD,IAAI,GAAG,CAAC,IAAI,IAAI,qBAAqB;4BACnC,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC;wBACvC,IAAI,GAAG,CAAC,IAAI,IAAI,MAAM;4BAAE,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;wBAC9C,IAAI,GAAG,CAAC,IAAI,IAAI,sBAAsB;4BACpC,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC;wBACxC,IAAI,GAAG,CAAC,IAAI,IAAI,gBAAgB;4BAAE,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC;wBAClE,IAAI,GAAG,CAAC,IAAI,IAAI,OAAO;4BAAE,SAAS;wBAClC,GAAG,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;wBACnC,MAAM,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACzC,MAAM,GAAG,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;wBAC3D,MAAM,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC7B,MAAM,GAAG,CAAC,uBAAuB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;wBAC7D,MAAM,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;wBAC7C,MAAM,GAAG,CAAC,WAAW,EAAE,CAAC;wBACxB,SAAS,GAAG,IAAI,SAAS,CACvB,GAAG,EACH,IAAI,CAAC,cAAc,EACnB,IAAI,EACJ,IAAI,CAAC,UAAU,CAChB,CAAC;wBACF,SAAS,CAAC,WAAW,EAAE,CAAC;wBACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;wBAC3B,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;wBACxD,MAAM;oBACR,CAAC;oBACD,KAAK,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;wBACnB,QAAQ,GAAG,CAAC,IAAI,EAAE,CAAC;4BACjB,KAAK,WAAW;gCACd,IAAI,IAAI,CAAC,SAAS,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oCAChC,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC;oCAC3B,MAAM,GAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gCAChD,CAAC;gCACD,MAAM;4BACR,KAAK,MAAM;gCACT,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oCAC3B,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC;oCACtB,MAAM,GAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gCAChC,CAAC;gCACD,MAAM;4BACR,KAAK,qBAAqB;gCACxB,IAAI,IAAI,CAAC,mBAAmB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oCAC1C,IAAI,CAAC,mBAAmB,GAAG,GAAG,CAAC,KAAK,CAAC;oCACrC,MAAM,GAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;gCAC9D,CAAC;gCACD,MAAM;4BACR,KAAK,sBAAsB;gCACzB,IAAI,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oCAC3C,IAAI,CAAC,oBAAoB,GAAG,GAAG,CAAC,KAAK,CAAC;oCACtC,MAAM,GAAI,CAAC,uBAAuB,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAC;gCAChE,CAAC;gCACD,MAAM;4BACR,KAAK,gBAAgB;gCACnB,IAAI,IAAI,CAAC,cAAc,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;oCACrC,IAAI,CAAC,cAAc,GAAG,GAAG,CAAC,KAAK,CAAC;oCAChC,MAAM,GAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;gCAChD,CAAC;gCACD,MAAM;4BACR,KAAK,MAAM;gCACT,MAAM,SAAU,CAAC,UAAU,EAAE,CAAC;gCAC9B,MAAM,GAAI,CAAC,KAAK,EAAE,CAAC;gCACnB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC;gCACvB,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;gCACxD,MAAM;4BACR,QAAQ;4BACR,cAAc;wBAChB,CAAC;wBACD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;IACH,CAAC;IAYD,gBAAgB,CACd,IAAY,EACZ,QAAa,EACb,OAAuD;QAEvD,KAAK,CAAC,gBAAgB,CACpB,IAAI,EACJ,QAAqD,EACrD,OAAO,CACR,CAAC;IACJ,CAAC;CACF;AAED;;;;;;GAMG;AACH,MAAM,SAAS;IAKH;IACA;IACA;IACA;IAPV,4CAA4C;IACpC,MAAM,CAAC,YAAY,GAAG,EAAE,CAAC;IAEjC,YACU,GAAc,EACd,cAA8B,EAC9B,KAAY,EACZ,UAAkB;QAHlB,QAAG,GAAH,GAAG,CAAW;QACd,mBAAc,GAAd,cAAc,CAAgB;QAC9B,UAAK,GAAL,KAAK,CAAO;QACZ,eAAU,GAAV,UAAU,CAAQ;QAE1B,IAAI,CAAC,aAAa;YAChB,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC,YAAY,GAAG,GAAG,CAAC,CAAC;QAC7D,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC;QACxB,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;QAC5B,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC;IAC5C,CAAC;IAEO,aAAa,CAAS;IACtB,aAAa,CAAS;IACtB,cAAc,CAAS;IACvB,WAAW,CAAc;IACzB,cAAc,CAAU;IACxB,YAAY,CAAa;IAEjC,MAAM,CAAC,gBAAgB,GAAG,CAAC,CAAC;IAE5B,wCAAwC;IACxC,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QAC7B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,gBAAgB,CAAC;QAChD,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;YAChD,EAAE,IAAI,CAAC,cAAc,CAAC;YACtB,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,UAAU;QACd,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,IAAI,IAAI,CAAC,aAAa,IAAI,CAAC;YAAE,OAAO;QAChE,IAAI,OAAO,GAAG,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE;YACpC,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,gCAAgC;IACxB,KAAK,CAAC,UAAU;QACtB,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;gBACjD,MAAM,CAAC,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;gBACzD,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC9C,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,CAAC,cAAc,EAAE,CAAC;oBAC5C,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;oBACvC,IAAI,CAAC,KAAK,CAAC,aAAa,CACtB,IAAI,UAAU,CAAC;wBACb,IAAI,EAAE,gBAAgB;wBACtB,MAAM,EAAE,IAAI,CAAC,cAAc;qBAC5B,CAAC,CACH,CAAC;gBACJ,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,KAAK,GAAG,IAAI,UAAU,CACxB,8DAA8D,EAC9D,cAAc,CAAC,gBAAgB,EAC/B,EAAE,KAAK,EAAE,CAAC,EAAE,CACb,CAAC;YACF,IAAI,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QACD,EAAE,IAAI,CAAC,cAAc,CAAC;QACtB,IAAI,IAAI,CAAC,cAAc,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC,YAAY,EAAE,CAAC;YACpB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,WAAW,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,MAAM,CAAC,WAAW,KAAI,CAAC"}
|
|
@@ -4,12 +4,16 @@ export interface SampleReceiver {
|
|
|
4
4
|
setSampleRate(sampleRate: number): void;
|
|
5
5
|
/** Receives samples that should be demodulated. */
|
|
6
6
|
receiveSamples(I: Float32Array, Q: Float32Array, frequency: number): void;
|
|
7
|
-
/** Sets a sample receiver to be executed right after this one. */
|
|
8
|
-
andThen(next: SampleReceiver): SampleReceiver;
|
|
9
7
|
}
|
|
10
8
|
/**
|
|
11
|
-
* A
|
|
12
|
-
* Use it in your implementation of SampleReceiver.andThen.
|
|
9
|
+
* A "composite" sample receiver that executes its component receivers in sequence.
|
|
13
10
|
*/
|
|
14
|
-
export declare
|
|
11
|
+
export declare class CompositeReceiver implements SampleReceiver {
|
|
12
|
+
receivers: SampleReceiver[];
|
|
13
|
+
/** Creates a ReceiverSequence out of the given SampleReceivers. */
|
|
14
|
+
static of(first: SampleReceiver, ...rest: SampleReceiver[]): SampleReceiver;
|
|
15
|
+
private constructor();
|
|
16
|
+
setSampleRate(sampleRate: number): void;
|
|
17
|
+
receiveSamples(I: Float32Array, Q: Float32Array, frequency: number): void;
|
|
18
|
+
}
|
|
15
19
|
//# sourceMappingURL=sample_receiver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample_receiver.d.ts","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,mDAAmD;IACnD,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"sample_receiver.d.ts","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAcA,iEAAiE;AACjE,MAAM,WAAW,cAAc;IAC7B,4BAA4B;IAC5B,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAExC,mDAAmD;IACnD,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3E;AAED;;GAEG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IAoB3B,SAAS,EAAE,cAAc,EAAE;IAnBtD,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,cAAc,EAAE,GAAG,cAAc;IAkB3E,OAAO;IAEP,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAMvC,cAAc,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;CAK1E"}
|
|
@@ -12,27 +12,31 @@
|
|
|
12
12
|
// See the License for the specific language governing permissions and
|
|
13
13
|
// limitations under the License.
|
|
14
14
|
/**
|
|
15
|
-
* A
|
|
16
|
-
* Use it in your implementation of SampleReceiver.andThen.
|
|
15
|
+
* A "composite" sample receiver that executes its component receivers in sequence.
|
|
17
16
|
*/
|
|
18
|
-
export
|
|
19
|
-
let list = [];
|
|
20
|
-
if (prev instanceof ReceiverSequence) {
|
|
21
|
-
list.push(...prev.receivers);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
list.push(prev);
|
|
25
|
-
}
|
|
26
|
-
if (next instanceof ReceiverSequence) {
|
|
27
|
-
list.push(...next.receivers);
|
|
28
|
-
}
|
|
29
|
-
else {
|
|
30
|
-
list.push(next);
|
|
31
|
-
}
|
|
32
|
-
return new ReceiverSequence(list);
|
|
33
|
-
}
|
|
34
|
-
class ReceiverSequence {
|
|
17
|
+
export class CompositeReceiver {
|
|
35
18
|
receivers;
|
|
19
|
+
/** Creates a ReceiverSequence out of the given SampleReceivers. */
|
|
20
|
+
static of(first, ...rest) {
|
|
21
|
+
let list = [];
|
|
22
|
+
if (first instanceof CompositeReceiver) {
|
|
23
|
+
list.push(...first.receivers);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
list.push(first);
|
|
27
|
+
}
|
|
28
|
+
for (let next of rest) {
|
|
29
|
+
if (next instanceof CompositeReceiver) {
|
|
30
|
+
list.push(...next.receivers);
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
list.push(next);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
if (list.length == 1)
|
|
37
|
+
return list[0];
|
|
38
|
+
return new CompositeReceiver(list);
|
|
39
|
+
}
|
|
36
40
|
constructor(receivers) {
|
|
37
41
|
this.receivers = receivers;
|
|
38
42
|
}
|
|
@@ -46,8 +50,5 @@ class ReceiverSequence {
|
|
|
46
50
|
receiver.receiveSamples(I, Q, frequency);
|
|
47
51
|
}
|
|
48
52
|
}
|
|
49
|
-
andThen(next) {
|
|
50
|
-
return concatenateReceivers(this, next);
|
|
51
|
-
}
|
|
52
53
|
}
|
|
53
54
|
//# sourceMappingURL=sample_receiver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample_receiver.js","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;
|
|
1
|
+
{"version":3,"file":"sample_receiver.js","sourceRoot":"","sources":["../../src/radio/sample_receiver.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,EAAE;AACF,kEAAkE;AAClE,mEAAmE;AACnE,0CAA0C;AAC1C,EAAE;AACF,iDAAiD;AACjD,EAAE;AACF,sEAAsE;AACtE,oEAAoE;AACpE,2EAA2E;AAC3E,sEAAsE;AACtE,iCAAiC;AAWjC;;GAEG;AACH,MAAM,OAAO,iBAAiB;IAoBD;IAnB3B,mEAAmE;IACnE,MAAM,CAAC,EAAE,CAAC,KAAqB,EAAE,GAAG,IAAsB;QACxD,IAAI,IAAI,GAAqB,EAAE,CAAC;QAChC,IAAI,KAAK,YAAY,iBAAiB,EAAE,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACnB,CAAC;QACD,KAAK,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,IAAI,YAAY,iBAAiB,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;YAC/B,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;QACH,CAAC;QACD,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC;YAAE,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,YAA2B,SAA2B;QAA3B,cAAS,GAAT,SAAS,CAAkB;IAAG,CAAC;IAE1D,aAAa,CAAC,UAAkB;QAC9B,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;QACrC,CAAC;IACH,CAAC;IAED,cAAc,CAAC,CAAe,EAAE,CAAe,EAAE,SAAiB;QAChE,KAAK,IAAI,QAAQ,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACpC,QAAQ,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;CACF"}
|
package/dist/radio.d.ts
CHANGED
package/dist/radio.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"radio.d.ts","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
|
package/dist/radio.js
CHANGED
package/dist/radio.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"radio.js","sourceRoot":"","sources":["../src/radio.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@jtarrio/webrtlsdr",
|
|
3
3
|
"description": "Access RTL-SDR devices and receive and demodulate radio signals from your web application",
|
|
4
|
-
"version": "
|
|
4
|
+
"version": "1.0.0",
|
|
5
5
|
"author": "Jacobo Tarrio <jtarrio@gmail.com>",
|
|
6
6
|
"license": "Apache-2.0",
|
|
7
7
|
"repository": {
|