hackrf.js
Version:
Control HackRF devices from Node.js
177 lines • 9.28 kB
JavaScript
"use strict";
/**
* Enums and constants
*/
/** */
Object.defineProperty(exports, "__esModule", { value: true });
exports.TransceiverMode = exports.VendorRequest = exports.USB_MAX_SERIAL_LENGTH = exports.USB_CONFIG_STANDARD = exports.USB_HACKRF_VID = exports.BASEBAND_FILTER_BW_MAX = exports.BASEBAND_FILTER_BW_MIN = exports.LO_FREQ_HZ_MAX = exports.LO_FREQ_HZ_MIN = exports.IF_HZ_MAX = exports.IF_HZ_MIN = exports.FREQ_HZ_MAX = exports.FREQ_HZ_MIN = exports.SweepStyle = exports.OperacakePorts = exports.rfPathFilterNames = exports.RfPathFilter = exports.usbBoardIdNames = exports.UsbBoardId = exports.boardIdNames = exports.BoardId = exports.errorMessages = exports.ErrorCode = exports.MAX_SWEEP_RANGES = exports.BYTES_PER_BLOCK = exports.SAMPLES_PER_BLOCK = void 0;
exports.SAMPLES_PER_BLOCK = 8192;
exports.BYTES_PER_BLOCK = 16384;
exports.MAX_SWEEP_RANGES = 10;
var ErrorCode;
(function (ErrorCode) {
/** invalid parameter(s) */
ErrorCode[ErrorCode["INVALID_PARAM"] = -2] = "INVALID_PARAM";
/** HackRF not found */
ErrorCode[ErrorCode["NOT_FOUND"] = -5] = "NOT_FOUND";
/** HackRF busy */
ErrorCode[ErrorCode["BUSY"] = -6] = "BUSY";
/** insufficient memory */
ErrorCode[ErrorCode["NO_MEM"] = -11] = "NO_MEM";
/** USB error */
ErrorCode[ErrorCode["LIBUSB"] = -1000] = "LIBUSB";
/** transfer thread error */
ErrorCode[ErrorCode["THREAD"] = -1001] = "THREAD";
/** streaming thread encountered an error */
ErrorCode[ErrorCode["STREAMING_THREAD_ERR"] = -1002] = "STREAMING_THREAD_ERR";
/** streaming stopped */
ErrorCode[ErrorCode["STREAMING_STOPPED"] = -1003] = "STREAMING_STOPPED";
/** streaming terminated */
ErrorCode[ErrorCode["STREAMING_EXIT_CALLED"] = -1004] = "STREAMING_EXIT_CALLED";
/** feature not supported by installed firmware */
ErrorCode[ErrorCode["USB_API_VERSION"] = -1005] = "USB_API_VERSION";
/** one or more HackRFs still in use */
ErrorCode[ErrorCode["NOT_LAST_DEVICE"] = -2000] = "NOT_LAST_DEVICE";
/** unspecified error */
ErrorCode[ErrorCode["OTHER"] = -9999] = "OTHER";
})(ErrorCode = exports.ErrorCode || (exports.ErrorCode = {}));
exports.errorMessages = {
[]: 'invalid parameter(s)',
[]: 'HackRF not found',
[]: 'HackRF busy',
[]: 'insufficient memory',
[]: 'USB error',
[]: 'transfer thread error',
[]: 'streaming thread encountered an error',
[]: 'streaming stopped',
[]: 'streaming terminated',
[]: 'feature not supported by installed firmware',
[]: 'one or more HackRFs still in use',
[]: 'unspecified error',
};
var BoardId;
(function (BoardId) {
BoardId[BoardId["JELLYBEAN"] = 0] = "JELLYBEAN";
BoardId[BoardId["JAWBREAKER"] = 1] = "JAWBREAKER";
BoardId[BoardId["HACKRF_ONE"] = 2] = "HACKRF_ONE";
BoardId[BoardId["RAD1O"] = 3] = "RAD1O";
})(BoardId = exports.BoardId || (exports.BoardId = {}));
exports.boardIdNames = {
[]: 'Jellybean',
[]: 'Jawbreaker',
[]: 'HackRF One',
[]: 'rad1o',
};
/** USB PIDs */
var UsbBoardId;
(function (UsbBoardId) {
UsbBoardId[UsbBoardId["JAWBREAKER"] = 24651] = "JAWBREAKER";
UsbBoardId[UsbBoardId["HACKRF_ONE"] = 24713] = "HACKRF_ONE";
UsbBoardId[UsbBoardId["RAD1O"] = 52245] = "RAD1O";
})(UsbBoardId = exports.UsbBoardId || (exports.UsbBoardId = {}));
exports.usbBoardIdNames = {
[]: 'Jawbreaker',
[]: 'HackRF One',
[]: 'rad1o',
};
var RfPathFilter;
(function (RfPathFilter) {
/** mixer bypass */
RfPathFilter[RfPathFilter["BYPASS"] = 0] = "BYPASS";
/** low pass filter */
RfPathFilter[RfPathFilter["LOW_PASS"] = 1] = "LOW_PASS";
/** high pass filter */
RfPathFilter[RfPathFilter["HIGH_PASS"] = 2] = "HIGH_PASS";
})(RfPathFilter = exports.RfPathFilter || (exports.RfPathFilter = {}));
exports.rfPathFilterNames = {
[]: 'mixer bypass',
[]: 'low pass filter',
[]: 'high pass filter',
};
var OperacakePorts;
(function (OperacakePorts) {
OperacakePorts[OperacakePorts["PA1"] = 0] = "PA1";
OperacakePorts[OperacakePorts["PA2"] = 1] = "PA2";
OperacakePorts[OperacakePorts["PA3"] = 2] = "PA3";
OperacakePorts[OperacakePorts["PA4"] = 3] = "PA4";
OperacakePorts[OperacakePorts["PB1"] = 4] = "PB1";
OperacakePorts[OperacakePorts["PB2"] = 5] = "PB2";
OperacakePorts[OperacakePorts["PB3"] = 6] = "PB3";
OperacakePorts[OperacakePorts["PB4"] = 7] = "PB4";
})(OperacakePorts = exports.OperacakePorts || (exports.OperacakePorts = {}));
var SweepStyle;
(function (SweepStyle) {
/**
* `stepWidth` is added to the current frequency at each step
*/
SweepStyle[SweepStyle["LINEAR"] = 0] = "LINEAR";
/**
* invokes a scheme in which each step is divided into two
* interleaved sub-steps, allowing the host to select the best portions
* of the FFT of each sub-step and discard the rest.
*/
SweepStyle[SweepStyle["INTERLEAVED"] = 1] = "INTERLEAVED";
})(SweepStyle = exports.SweepStyle || (exports.SweepStyle = {}));
// INTERNAL
exports.FREQ_HZ_MIN = 0;
/** 7250MHz */
exports.FREQ_HZ_MAX = 7250000000;
exports.IF_HZ_MIN = 2150000000;
exports.IF_HZ_MAX = 2750000000;
exports.LO_FREQ_HZ_MIN = 84375000;
exports.LO_FREQ_HZ_MAX = 5400000000;
/** 1.75 MHz min value */
exports.BASEBAND_FILTER_BW_MIN = 1750000;
/** 28 MHz max value */
exports.BASEBAND_FILTER_BW_MAX = 28000000;
exports.USB_HACKRF_VID = 0x1d50;
exports.USB_CONFIG_STANDARD = 0x1;
exports.USB_MAX_SERIAL_LENGTH = 32;
var VendorRequest;
(function (VendorRequest) {
VendorRequest[VendorRequest["SET_TRANSCEIVER_MODE"] = 1] = "SET_TRANSCEIVER_MODE";
VendorRequest[VendorRequest["MAX2837_WRITE"] = 2] = "MAX2837_WRITE";
VendorRequest[VendorRequest["MAX2837_READ"] = 3] = "MAX2837_READ";
VendorRequest[VendorRequest["SI5351C_WRITE"] = 4] = "SI5351C_WRITE";
VendorRequest[VendorRequest["SI5351C_READ"] = 5] = "SI5351C_READ";
VendorRequest[VendorRequest["SAMPLE_RATE_SET"] = 6] = "SAMPLE_RATE_SET";
VendorRequest[VendorRequest["BASEBAND_FILTER_BANDWIDTH_SET"] = 7] = "BASEBAND_FILTER_BANDWIDTH_SET";
VendorRequest[VendorRequest["RFFC5071_WRITE"] = 8] = "RFFC5071_WRITE";
VendorRequest[VendorRequest["RFFC5071_READ"] = 9] = "RFFC5071_READ";
VendorRequest[VendorRequest["SPIFLASH_ERASE"] = 10] = "SPIFLASH_ERASE";
VendorRequest[VendorRequest["SPIFLASH_WRITE"] = 11] = "SPIFLASH_WRITE";
VendorRequest[VendorRequest["SPIFLASH_READ"] = 12] = "SPIFLASH_READ";
VendorRequest[VendorRequest["BOARD_ID_READ"] = 14] = "BOARD_ID_READ";
VendorRequest[VendorRequest["VERSION_STRING_READ"] = 15] = "VERSION_STRING_READ";
VendorRequest[VendorRequest["SET_FREQ"] = 16] = "SET_FREQ";
VendorRequest[VendorRequest["AMP_ENABLE"] = 17] = "AMP_ENABLE";
VendorRequest[VendorRequest["BOARD_PARTID_SERIALNO_READ"] = 18] = "BOARD_PARTID_SERIALNO_READ";
VendorRequest[VendorRequest["SET_LNA_GAIN"] = 19] = "SET_LNA_GAIN";
VendorRequest[VendorRequest["SET_VGA_GAIN"] = 20] = "SET_VGA_GAIN";
VendorRequest[VendorRequest["SET_TXVGA_GAIN"] = 21] = "SET_TXVGA_GAIN";
VendorRequest[VendorRequest["ANTENNA_ENABLE"] = 23] = "ANTENNA_ENABLE";
VendorRequest[VendorRequest["SET_FREQ_EXPLICIT"] = 24] = "SET_FREQ_EXPLICIT";
VendorRequest[VendorRequest["USB_WCID_VENDOR_REQ"] = 25] = "USB_WCID_VENDOR_REQ";
VendorRequest[VendorRequest["INIT_SWEEP"] = 26] = "INIT_SWEEP";
VendorRequest[VendorRequest["OPERACAKE_GET_BOARDS"] = 27] = "OPERACAKE_GET_BOARDS";
VendorRequest[VendorRequest["OPERACAKE_SET_PORTS"] = 28] = "OPERACAKE_SET_PORTS";
VendorRequest[VendorRequest["SET_HW_SYNC_MODE"] = 29] = "SET_HW_SYNC_MODE";
VendorRequest[VendorRequest["RESET"] = 30] = "RESET";
VendorRequest[VendorRequest["OPERACAKE_SET_RANGES"] = 31] = "OPERACAKE_SET_RANGES";
VendorRequest[VendorRequest["CLKOUT_ENABLE"] = 32] = "CLKOUT_ENABLE";
VendorRequest[VendorRequest["SPIFLASH_STATUS"] = 33] = "SPIFLASH_STATUS";
VendorRequest[VendorRequest["SPIFLASH_CLEAR_STATUS"] = 34] = "SPIFLASH_CLEAR_STATUS";
VendorRequest[VendorRequest["OPERACAKE_GPIO_TEST"] = 35] = "OPERACAKE_GPIO_TEST";
VendorRequest[VendorRequest["CPLD_CHECKSUM"] = 36] = "CPLD_CHECKSUM";
VendorRequest[VendorRequest["UI_ENABLE"] = 37] = "UI_ENABLE";
})(VendorRequest = exports.VendorRequest || (exports.VendorRequest = {}));
var TransceiverMode;
(function (TransceiverMode) {
TransceiverMode[TransceiverMode["OFF"] = 0] = "OFF";
TransceiverMode[TransceiverMode["RECEIVE"] = 1] = "RECEIVE";
TransceiverMode[TransceiverMode["TRANSMIT"] = 2] = "TRANSMIT";
TransceiverMode[TransceiverMode["SS"] = 3] = "SS";
TransceiverMode[TransceiverMode["CPLD_UPDATE"] = 4] = "CPLD_UPDATE";
TransceiverMode[TransceiverMode["RX_SWEEP"] = 5] = "RX_SWEEP";
})(TransceiverMode = exports.TransceiverMode || (exports.TransceiverMode = {}));
//# sourceMappingURL=constants.js.map