@br8kppooint/visca
Version:
Advanced nodejs library for working with VISCA-based PTZ cameras over IP and over serial connections.
270 lines • 14.5 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.SpecialBlockInquiries = exports.SpecialOpCommands = exports.ViscaError = exports.PTDirection = exports.CameraEffect = exports.DataVal = exports.CameraOpCmd = exports.CameraCmd = exports.DataType = exports.CameraMsg = exports.ControlMsg = void 0;
// enums are a special feature of typescript that
// also have reverse references
/*
enum Enum {A, B}
Enum.A === 0 // true
Enum[0] === 'A' // true
*/
var ControlMsg;
(function (ControlMsg) {
// == MESSAGE TYPE ==
// controller message categories (QQ from the spec)
ControlMsg[ControlMsg["command"] = 1] = "command";
ControlMsg[ControlMsg["if_clear"] = 1] = "if_clear";
ControlMsg[ControlMsg["inquiry"] = 9] = "inquiry";
ControlMsg[ControlMsg["cancel"] = 32] = "cancel";
ControlMsg[ControlMsg["add_set"] = 48] = "add_set";
})(ControlMsg = exports.ControlMsg || (exports.ControlMsg = {}));
var CameraMsg;
(function (CameraMsg) {
// camera message types (QQ from the spec)
CameraMsg[CameraMsg["netchange"] = 56] = "netchange";
CameraMsg[CameraMsg["ack"] = 64] = "ack";
CameraMsg[CameraMsg["complete"] = 80] = "complete";
CameraMsg[CameraMsg["error"] = 96] = "error";
})(CameraMsg = exports.CameraMsg || (exports.CameraMsg = {}));
var DataType;
(function (DataType) {
// == DATA TYPE ==
// data types (RR from the spec)
DataType[DataType["interface"] = 0] = "interface";
DataType[DataType["camera"] = 4] = "camera";
DataType[DataType["operation"] = 6] = "operation";
})(DataType = exports.DataType || (exports.DataType = {}));
var CameraCmd;
(function (CameraCmd) {
// == COMMAND TYPE CONSTANTS ==
// camera settings codes // data (pqrs is in i2v format)
CameraCmd[CameraCmd["power"] = 0] = "power";
CameraCmd[CameraCmd["sleep_time"] = 64] = "sleep_time";
CameraCmd[CameraCmd["icr"] = 1] = "icr";
CameraCmd[CameraCmd["icr_auto"] = 81] = "icr_auto";
CameraCmd[CameraCmd["icr_threshold"] = 33] = "icr_threshold";
CameraCmd[CameraCmd["gain"] = 12] = "gain";
CameraCmd[CameraCmd["gain_limit"] = 44] = "gain_limit";
CameraCmd[CameraCmd["gain_direct"] = 76] = "gain_direct";
CameraCmd[CameraCmd["rgain"] = 3] = "rgain";
CameraCmd[CameraCmd["rgain_direct"] = 67] = "rgain_direct";
CameraCmd[CameraCmd["bgain"] = 4] = "bgain";
CameraCmd[CameraCmd["bgain_direct"] = 68] = "bgain_direct";
CameraCmd[CameraCmd["zoom"] = 7] = "zoom";
CameraCmd[CameraCmd["dzoom"] = 6] = "dzoom";
CameraCmd[CameraCmd["zoom_direct"] = 71] = "zoom_direct";
CameraCmd[CameraCmd["focus"] = 8] = "focus";
CameraCmd[CameraCmd["focus_ir_correction"] = 17] = "focus_ir_correction";
CameraCmd[CameraCmd["focus_trigger"] = 24] = "focus_trigger";
CameraCmd[CameraCmd["focus_near_limit"] = 40] = "focus_near_limit";
CameraCmd[CameraCmd["focus_mode"] = 56] = "focus_mode";
CameraCmd[CameraCmd["focus_direct"] = 72] = "focus_direct";
CameraCmd[CameraCmd["focus_af_mode"] = 87] = "focus_af_mode";
CameraCmd[CameraCmd["focus_af_interval"] = 39] = "focus_af_interval";
CameraCmd[CameraCmd["focus_high_sensitivity"] = 88] = "focus_high_sensitivity";
CameraCmd[CameraCmd["wb_mode"] = 53] = "wb_mode";
CameraCmd[CameraCmd["wb_trigger"] = 16] = "wb_trigger";
CameraCmd[CameraCmd["exposure_mode"] = 57] = "exposure_mode";
CameraCmd[CameraCmd["shutter_mode"] = 90] = "shutter_mode";
CameraCmd[CameraCmd["shutter"] = 10] = "shutter";
CameraCmd[CameraCmd["shutter_direct"] = 74] = "shutter_direct";
CameraCmd[CameraCmd["iris"] = 11] = "iris";
CameraCmd[CameraCmd["iris_direct"] = 75] = "iris_direct";
CameraCmd[CameraCmd["brightness"] = 13] = "brightness";
CameraCmd[CameraCmd["brightness_direct"] = 77] = "brightness_direct";
CameraCmd[CameraCmd["exposure_comp"] = 14] = "exposure_comp";
CameraCmd[CameraCmd["exposure_comp_active"] = 62] = "exposure_comp_active";
CameraCmd[CameraCmd["exposure_comp_direct"] = 78] = "exposure_comp_direct";
CameraCmd[CameraCmd["backlight"] = 51] = "backlight";
CameraCmd[CameraCmd["wide_dynamic"] = 61] = "wide_dynamic";
CameraCmd[CameraCmd["wide_dynamic_refresh"] = 16] = "wide_dynamic_refresh";
CameraCmd[CameraCmd["wide_dynamic_direct"] = 45] = "wide_dynamic_direct";
// wide dynamic range settings
// p: Screen display (0: Combined image, 2: Long-time, 3: Short-time)
// q: Detection sensitivity (0: L 1: M 2: H)
// r: Blocked-up shadow correction level (0: L 1: M 2: H 3: S)
// s: Blown-out highlight correction level (0: L 1: M 2: H)
// tu: Exposure ratio of short exposure (x1 to x64)
CameraCmd[CameraCmd["aperture"] = 2] = "aperture";
CameraCmd[CameraCmd["aperture_direct"] = 66] = "aperture_direct";
CameraCmd[CameraCmd["hires_enable"] = 82] = "hires_enable";
CameraCmd[CameraCmd["noise_reduction"] = 83] = "noise_reduction";
CameraCmd[CameraCmd["gamma"] = 91] = "gamma";
CameraCmd[CameraCmd["high_sensitivity"] = 94] = "high_sensitivity";
// freeze = 0x62, // (can inquire) not supported by sony
CameraCmd[CameraCmd["effect"] = 99] = "effect";
CameraCmd[CameraCmd["effect_digital"] = 100] = "effect_digital";
CameraCmd[CameraCmd["effect_level"] = 101] = "effect_level";
CameraCmd[CameraCmd["chroma_suppress"] = 95] = "chroma_suppress";
CameraCmd[CameraCmd["color_gain"] = 73] = "color_gain";
CameraCmd[CameraCmd["color_hue"] = 79] = "color_hue";
// misc other commands
CameraCmd[CameraCmd["memory"] = 63] = "memory";
CameraCmd[CameraCmd["id_set"] = 34] = "id_set";
})(CameraCmd = exports.CameraCmd || (exports.CameraCmd = {}));
var CameraOpCmd;
(function (CameraOpCmd) {
// pan-tilt commands
// in all PT commands, the following variables apply
// VV: pan speed / sony 01-18
// WW: tilt speed / sony 01-17
// YYYY: pan 4 bit signed value from E1E5 - 1E1B
// ZZZZ: tilt 4 bit signed from FC75 to 0FF0 (flip off) or F010 to 038B (flip on)
CameraOpCmd[CameraOpCmd["pt_home"] = 4] = "pt_home";
CameraOpCmd[CameraOpCmd["pt_reset"] = 5] = "pt_reset";
CameraOpCmd[CameraOpCmd["pt_move"] = 1] = "pt_move";
// p: pan move 1-left, 2-right, 3-none
// q: tilt move 1-up, 2-down, 3-none
CameraOpCmd[CameraOpCmd["pt_direct"] = 2] = "pt_direct";
CameraOpCmd[CameraOpCmd["pt_relative"] = 3] = "pt_relative";
CameraOpCmd[CameraOpCmd["pt_limit"] = 7] = "pt_limit";
// to set: 00 0W 0Y 0Y 0Y 0Y 0Z 0Z 0Z 0Z
// YYYY: pan 4 bit signed value from E1E5 - 1E1B
// ZZZZ: tilt 4 bit signed from FC75 to 0FF0 (flip off) or F010 to 038B (flip on)
// W: 1 addresses the up-right limit (values must be positive)
// W: 0 addresses the down-left limit (values must be negative)
// to clear: 01 0W 07 0F 0F 0F 07 0F 0F 0F
// inquiries only
CameraOpCmd[CameraOpCmd["pt_max_speed_inq"] = 17] = "pt_max_speed_inq";
CameraOpCmd[CameraOpCmd["pt_pos_inq"] = 18] = "pt_pos_inq";
CameraOpCmd[CameraOpCmd["pt_status_inq"] = 16] = "pt_status_inq";
// general operational settings
CameraOpCmd[CameraOpCmd["menu_screen"] = 6] = "menu_screen";
CameraOpCmd[CameraOpCmd["video_format"] = 53] = "video_format";
CameraOpCmd[CameraOpCmd["video_format_now_inq"] = 35] = "video_format_now_inq";
CameraOpCmd[CameraOpCmd["video_format_next_inq"] = 51] = "video_format_next_inq";
// These codes are camera specific. Sony camera codes are as follows here
// p:
// 0 = 1080i59.94, 1 = 1080p29.97, 2 = 720p59.94, 3 = 720p29.97, 4 = NTSC (not all cameras)
// 8 = 1080i50, 9 = 720p50, A = 720p25, B = 1080i50, C = PAL (some cameras)
// (I wonder if the manual intended to say B = 1080p50 ?)
// video system changes require a power cycle
CameraOpCmd[CameraOpCmd["ir_receiver_on"] = 8] = "ir_receiver_on";
})(CameraOpCmd = exports.CameraOpCmd || (exports.CameraOpCmd = {}));
var DataVal;
(function (DataVal) {
// == COMMAND ONLY CONSTANTS ==
// command constants (not available on inquiries)
// super generic constants
DataVal[DataVal["stop"] = 0] = "stop";
DataVal[DataVal["reset"] = 0] = "reset";
DataVal[DataVal["clear"] = 1] = "clear";
DataVal[DataVal["more"] = 2] = "more";
DataVal[DataVal["less"] = 3] = "less";
// greater specificity
DataVal[DataVal["value_reset"] = 0] = "value_reset";
DataVal[DataVal["value_clear"] = 1] = "value_clear";
DataVal[DataVal["value_up"] = 2] = "value_up";
DataVal[DataVal["value_down"] = 3] = "value_down";
DataVal[DataVal["zoom_stop"] = 0] = "zoom_stop";
DataVal[DataVal["zoom_tele"] = 2] = "zoom_tele";
DataVal[DataVal["zoom_wide"] = 3] = "zoom_wide";
DataVal[DataVal["zoom_tele_variable"] = 32] = "zoom_tele_variable";
DataVal[DataVal["zoom_wide_variable"] = 48] = "zoom_wide_variable";
DataVal[DataVal["focus_stop"] = 0] = "focus_stop";
DataVal[DataVal["focus_far"] = 2] = "focus_far";
DataVal[DataVal["focus_near"] = 3] = "focus_near";
DataVal[DataVal["focus_far_variable"] = 32] = "focus_far_variable";
DataVal[DataVal["focus_near_variable"] = 48] = "focus_near_variable";
DataVal[DataVal["focus_trigger_now"] = 1] = "focus_trigger_now";
DataVal[DataVal["focus_trigger_inf"] = 2] = "focus_trigger_inf";
DataVal[DataVal["wb_trigger_now"] = 5] = "wb_trigger_now";
// == OTHER DATA CONSTANTS ==
DataVal[DataVal["on"] = 2] = "on";
DataVal[DataVal["off"] = 3] = "off";
DataVal[DataVal["toggle"] = 16] = "toggle";
DataVal[DataVal["irc_enabled"] = 1] = "irc_enabled";
DataVal[DataVal["focus_mode_auto"] = 2] = "focus_mode_auto";
DataVal[DataVal["focus_mod_manual"] = 3] = "focus_mod_manual";
DataVal[DataVal["focus_mode_toggle"] = 16] = "focus_mode_toggle";
DataVal[DataVal["autofocus_on_movement"] = 0] = "autofocus_on_movement";
DataVal[DataVal["autofocus_on_interval"] = 1] = "autofocus_on_interval";
DataVal[DataVal["autofocus_on_zoom"] = 2] = "autofocus_on_zoom";
DataVal[DataVal["wb_auto"] = 0] = "wb_auto";
DataVal[DataVal["wb_indoor"] = 1] = "wb_indoor";
DataVal[DataVal["wb_outdoor"] = 2] = "wb_outdoor";
DataVal[DataVal["wb_trigger"] = 3] = "wb_trigger";
DataVal[DataVal["wb_manual"] = 4] = "wb_manual";
DataVal[DataVal["exposure_auto"] = 0] = "exposure_auto";
DataVal[DataVal["exposure_manual"] = 3] = "exposure_manual";
DataVal[DataVal["exposure_shutter"] = 10] = "exposure_shutter";
DataVal[DataVal["exposure_iris"] = 11] = "exposure_iris";
DataVal[DataVal["exposure_bright"] = 13] = "exposure_bright";
DataVal[DataVal["wide_dynamic_auto"] = 0] = "wide_dynamic_auto";
DataVal[DataVal["wide_dynamic_ratio"] = 1] = "wide_dynamic_ratio";
DataVal[DataVal["wide_dynamic_on"] = 2] = "wide_dynamic_on";
DataVal[DataVal["wide_dynamic_off"] = 3] = "wide_dynamic_off";
DataVal[DataVal["wide_dynamic_histogram"] = 4] = "wide_dynamic_histogram";
})(DataVal = exports.DataVal || (exports.DataVal = {}));
var CameraEffect;
(function (CameraEffect) {
// basic effects
CameraEffect[CameraEffect["off"] = 0] = "off";
CameraEffect[CameraEffect["pastel"] = 1] = "pastel";
CameraEffect[CameraEffect["negative"] = 2] = "negative";
CameraEffect[CameraEffect["sepia"] = 3] = "sepia";
CameraEffect[CameraEffect["bw"] = 4] = "bw";
CameraEffect[CameraEffect["solar"] = 5] = "solar";
CameraEffect[CameraEffect["mosaic"] = 6] = "mosaic";
CameraEffect[CameraEffect["slim"] = 7] = "slim";
CameraEffect[CameraEffect["stretch"] = 8] = "stretch";
// digital effects
CameraEffect[CameraEffect["d_still"] = 1] = "d_still";
CameraEffect[CameraEffect["d_flash"] = 2] = "d_flash";
CameraEffect[CameraEffect["d_lumi"] = 3] = "d_lumi";
CameraEffect[CameraEffect["d_trail"] = 4] = "d_trail";
})(CameraEffect = exports.CameraEffect || (exports.CameraEffect = {}));
var PTDirection;
(function (PTDirection) {
PTDirection[PTDirection["stop"] = 0] = "stop";
PTDirection[PTDirection["left"] = 1] = "left";
PTDirection[PTDirection["right"] = 2] = "right";
PTDirection[PTDirection["up"] = 1] = "up";
PTDirection[PTDirection["down"] = 2] = "down";
PTDirection[PTDirection["corner_ur"] = 1] = "corner_ur";
PTDirection[PTDirection["corner_dl"] = 0] = "corner_dl";
})(PTDirection = exports.PTDirection || (exports.PTDirection = {}));
var ViscaError;
(function (ViscaError) {
// error codes
ViscaError[ViscaError["syntax"] = 2] = "syntax";
ViscaError[ViscaError["buffer_full"] = 3] = "buffer_full";
ViscaError[ViscaError["cancelled"] = 4] = "cancelled";
ViscaError[ViscaError["invalid_buffer"] = 5] = "invalid_buffer";
ViscaError[ViscaError["command_failed"] = 65] = "command_failed";
})(ViscaError = exports.ViscaError || (exports.ViscaError = {}));
exports.SpecialOpCommands = {
// special system commands (still need header and terminator)
ir_return_on: [0x01, 0x7D, 0x01, 0x03, 0x00, 0x00],
ir_return_off: [0x01, 0x7D, 0x01, 0x13, 0x00, 0x00],
info_display_on: [0x01, 0x7E, 0x01, 0x18, 0x02],
info_display_off: [0x01, 0x7E, 0x01, 0x18, 0x03],
// special inquiry commands
ir_condition_inq: [0x09, 0x06, 0x34],
info_display_on_inq: [0x09, 0x7e, 0x01, 0x18],
fan_condition_inq: [0x09, 0x7e, 0x01, 0x38],
};
exports.SpecialBlockInquiries = {
system_version: [0x09, 0x00, 0x02],
//mnq: model code
//rstu: rom version
//vw: socket number
// block inquiries
camera_lens_inq: [0x09, 0x7E, 0x7E, 0x00],
// 0w 0w 0w 0w 0v 0v 0y 0y 0y 0y 00 WW VV
// w: zoom position
// v: focus near limit
// y: focus position
// WW:
// bit 0 indicates autofocus status,
// bit 1 indicates digital zoom status
// bit 2 indicates AF sensitivity / 0-slow 1-normal
// bits 3-4 indicate AF mode / 0-normal, 1-interval, 2-zoom trigger
// VV:
// bit 0 indicates zooming status / 0-stopped, 1-executing
// bit 1 indicates focusing status
// bit 2 indicates camera memory recall status / 0-stopped, 1-executing
// bit 3 indicates low contrast detection
camera_image_inq: [0x09, 0x7E, 0x7E, 0x01],
};
//# sourceMappingURL=enums.js.map