@deeptrekker/controls 1.0.1-rca-1624-winmate.1 → 1.0.1-rca-1624-winmate.3
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/dist/index.es.js +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/gamepadHelper/index.d.ts +3 -3
- package/package.json +1 -1
package/dist/index.es.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
var e,a,t,r,n,i;!function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE"}(e||(e={})),function(e){e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CruiseControl="CRUISE_CONTROL",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DisableMotors="DISABLE_MOTORS",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.MainLight="MAIN_LIGHT",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Record="RECORD",e.ReelReset="REEL_RESET",e.Screenshot="SCREENSHOT",e.SwitchCamera="SWITCH_CAMERA",e.TiltDown="TILT_DOWN",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(a||(a={})),function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerSteer="CRAWLER_STEER",e.CruiseControl="CRUISE_CONTROL",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.Exposure="EXPOSURE",e.Focus="FOCUS",e.Fn="FN",e.Grabber="GRABBER",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.Lateral="LATERAL",e.LateralLeft="LATERAL_LEFT",e.LateralGain="LATERAL_GAIN",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Pitch="PITCH",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.PitchLock="PITCH_LOCK",e.PrecisionThrusters="PRECISION_THRUSTERS",e.Record="RECORD",e.ReelDisengage="REEL_DISENGAGE",e.ReelMotors="REEL_MOTORS",e.ReelReset="REEL_RESET",e.ResetPosture="RESET_POSTURE",e.ReelTetherIn="REEL_TETHER_IN",e.Roll="ROLL",e.RollLeft="ROLL_LEFT",e.RollPitchGain="ROLL_PITCH_GAIN",e.RollRight="ROLL_RIGHT",e.RotateGrabber="ROTATE_GRABBER",e.Screenshot="SCREENSHOT",e.SonarGain="SONAR_GAIN",e.SonarRange="SONAR_RANGE",e.SpeedGain="SPEED_GAIN",e.StationHolding="STATION_HOLDING",e.SteerGain="STEER_GAIN",e.SwitchCamera="SWITCH_CAMERA",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.Tilt="TILT",e.TiltDown="TILT_DOWN",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.Vertical="VERTICAL",e.VerticalDown="VERTICAL_DOWN",e.VerticalGain="VERTICAL_GAIN",e.VerticalUp="VERTICAL_UP",e.Yaw="YAW",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(t||(t={})),function(e){e.Vehicle="VEHICLE",e.Camera="CAMERA",e.Reel="REEL",e.Lights="LIGHTS",e.IntelligentModes="INTELLIGENT_MODES",e.IntelligentMode="INTELLIGENT_MODE",e.Tools="TOOLS",e.Grabber="GRABBER",e.Sonar="SONAR",e.Menu="MENU",e.Miscellaneous="MISCELLANEOUS"}(r||(r={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)",e.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)"}(i||(i={}));const o={[i.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[i.KEYBOARD_ID]:"Keyboard",[i.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[i.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[i.STEELSERIES_CONTROLLER_ID]:"Gamepad",[i.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[i.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[i.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[i.CONSOLE_CONTROLLER]:"Deep Trekker Console",[i.FLIGHT_JOYSTICK]:"Flight joystick",[i.GCS_CONTROLLER]:"GCS Controller"},s={[t.CrawlerLeft]:!0,[t.CrawlerRight]:!0,[t.CrawlerForward]:!0,[t.CrawlerReverse]:!0,[t.TiltDown]:!0,[t.TiltUp]:!0,[t.PanLeft]:!0,[t.PanRight]:!0,[t.ReelDisengage]:!0,[t.ReelTetherIn]:!0},E={positiveCommand:t.ReelDisengage,negativeCommand:t.ReelTetherIn},l={positiveCommand:t.CrawlerForward,negativeCommand:t.CrawlerReverse},R={positiveCommand:t.CrawlerRight,negativeCommand:t.CrawlerLeft},c={positiveCommand:t.ElevatingArmAscend,negativeCommand:t.ElevatingArmDescend},L={positiveCommand:t.PanRight,negativeCommand:t.PanLeft},T={positiveCommand:t.TiltUp,negativeCommand:t.TiltDown},A={positiveCommand:t.IncreaseFocus,negativeCommand:t.DecreaseFocus},I={positiveCommand:t.IncreaseExposure,negativeCommand:t.DecreaseExposure},_={positiveCommand:t.ZoomIn,negativeCommand:t.ZoomOut},S={positiveCommand:t.ThrusterForward,negativeCommand:t.ThrusterReverse},C={positiveCommand:t.YawRight,negativeCommand:t.YawLeft},h={positiveCommand:t.LateralRight,negativeCommand:t.LateralLeft},G={positiveCommand:t.VerticalUp,negativeCommand:t.VerticalDown},u={positiveCommand:t.RollLeft,negativeCommand:t.RollRight},g={positiveCommand:t.PitchUp,negativeCommand:t.PitchDown},D={positiveCommand:t.GrabberOpen,negativeCommand:t.GrabberClose},d={positiveCommand:t.GrabberRotateRight,negativeCommand:t.GrabberRotateLeft},O={positiveCommand:t.TiltPlatformUp,negativeCommand:t.TiltPlatformDown},m={positiveCommand:t.IncreaseMainLightBrightness,negativeCommand:t.DecreaseMainLightBrightness},N={positiveCommand:t.IncreaseAuxLightBrightness,negativeCommand:t.DecreaseAuxLightBrightness},p={positiveCommand:t.IncreaseSpeedGain,negativeCommand:t.DecreaseSpeedGain},P={positiveCommand:t.IncreaseSteerGain,negativeCommand:t.DecreaseSteerGain},v={positiveCommand:t.IncreaseSonarRange,negativeCommand:t.DecreaseSonarRange},f={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},b={positiveCommand:t.IncreaseLateralGain,negativeCommand:t.DecreaseLateralGain},M={positiveCommand:t.IncreaseRollPitchGain,negativeCommand:t.DecreaseRollPitchGain},V={positiveCommand:t.IncreaseVerticalGain,negativeCommand:t.DecreaseVerticalGain},H={[t.ReelMotors]:E,[t.CrawlerDrive]:l,[t.CrawlerSteer]:R,[t.ElevatingArm]:c,[t.Pan]:L,[t.Tilt]:T,[t.Focus]:A,[t.Exposure]:I,[t.Zoom]:_,[t.Thrusters]:S,[t.Yaw]:C,[t.Lateral]:h,[t.Vertical]:G,[t.Roll]:u,[t.Pitch]:g,[t.Grabber]:D,[t.RotateGrabber]:d,[t.TiltPlatform]:O,[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.LateralGain]:b,[t.VerticalGain]:V,[t.RollPitchGain]:M,[t.SonarRange]:v,[t.SonarGain]:f},B={[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.SonarRange]:v,[t.SonarGain]:f},w=20,U="+",F="-",x=" ",k={[t.MainLight]:"Main light on/off",[t.AuxLight]:"Aux light on/off",[t.ToggleLasers]:"Lasers on/off",[t.IncreaseMainLightBrightness]:"Increase main LED",[t.DecreaseMainLightBrightness]:"Decrease main LED",[t.IncreaseAuxLightBrightness]:"Increase aux LED",[t.DecreaseAuxLightBrightness]:"Decrease aux LED",[t.CruiseControl]:"CC/Retrieval",[t.ResetPosture]:"Reset Posture",[t.ReelReset]:"Reel reset [hold]",[t.SwitchCamera]:"Camera switch",[t.ThrusterForward]:"Thruster forward",[t.ThrusterReverse]:"Thruster reverse",[t.YawLeft]:"Yaw left",[t.YawRight]:"Yaw right",[t.LateralLeft]:"Lateral left",[t.LateralRight]:"Lateral right",[t.VerticalUp]:"Vertical up",[t.VerticalDown]:"Vertical down",[t.PitchUp]:"Pitch up",[t.PitchDown]:"Pitch down",[t.RollLeft]:"Roll left",[t.RollRight]:"Roll right",[t.DisableMotors]:"Disable motors",[t.IncreaseSpeedGain]:"Increase speed gain",[t.DecreaseSpeedGain]:"Decrease speed gain",[t.IncreaseSteerGain]:"Increase steer gain",[t.DecreaseSteerGain]:"Decrease steer gain",[t.IncreaseLateralGain]:"Increase lateral gain",[t.DecreaseLateralGain]:"Decrease lateral gain",[t.IncreaseVerticalGain]:"Increase vertical gain",[t.DecreaseVerticalGain]:"Decrease vertical gain",[t.IncreaseRollPitchGain]:"Increase pitch/roll gain",[t.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[t.DepthLock]:"Depth lock",[t.AltitudeLock]:"Altitude lock",[t.HeadingLock]:"Heading lock",[t.PitchLock]:"Pitch lock",[t.AutoStabilization]:"Auto stabilization on/off",[t.StationHolding]:"Station holding on/off",[t.DistanceLock]:"Distance lock",[t.PrecisionThrusters]:"Precision thrusters on/off",[t.TiltUp]:"Camera tilt Up",[t.TiltDown]:"Camera tilt Down",[t.ZoomIn]:"Zoom in",[t.ZoomOut]:"Zoom out",[t.CameraHome]:"Camera home",[t.Record]:"Record",[t.Screenshot]:"Snapshot",[t.IncreaseSonarRange]:"Increase sonar range",[t.DecreaseSonarRange]:"Decrease sonar range",[t.IncreaseSonarGain]:"Increase sonar gain",[t.DecreaseSonarGain]:"Decrease sonar gain",[t.ChangeSonarFrequency]:"Change sonar frequency",[t.GrabberOpen]:"Grabber open",[t.GrabberClose]:"Grabber close",[t.GrabberRotateLeft]:"Grabber rotate left",[t.GrabberRotateRight]:"Grabber rotate right",[t.TiltPlatformUp]:"Tilt platform up",[t.TiltPlatformDown]:"Tilt platform down",[t.IncreaseFocus]:"Increase focus",[t.DecreaseFocus]:"Decrease focus",[t.IncreaseExposure]:"Increase exposure",[t.DecreaseExposure]:"Decrease exposure",[t.Fn]:"FN",[t.ReelTetherIn]:"Reel tether in"},y={[e.ThrusterForward]:r.Vehicle,[e.ThrusterReverse]:r.Vehicle,[e.YawLeft]:r.Vehicle,[e.YawRight]:r.Vehicle,[e.LateralLeft]:r.Vehicle,[e.LateralRight]:r.Vehicle,[e.VerticalUp]:r.Vehicle,[e.VerticalDown]:r.Vehicle,[e.DisableMotors]:r.Vehicle,[e.PitchUp]:r.Vehicle,[e.PitchDown]:r.Vehicle,[e.RollLeft]:r.Vehicle,[e.RollRight]:r.Vehicle,[e.IncreaseSpeedGain]:r.Vehicle,[e.DecreaseSpeedGain]:r.Vehicle,[e.IncreaseSteerGain]:r.Vehicle,[e.DecreaseSteerGain]:r.Vehicle,[e.IncreaseLateralGain]:r.Vehicle,[e.DecreaseLateralGain]:r.Vehicle,[e.IncreaseVerticalGain]:r.Vehicle,[e.DecreaseVerticalGain]:r.Vehicle,[e.IncreaseRollPitchGain]:r.Vehicle,[e.DecreaseRollPitchGain]:r.Vehicle,[e.CruiseControl]:r.Vehicle,[e.ResetPosture]:r.Vehicle,[e.DepthLock]:r.IntelligentModes,[e.AltitudeLock]:r.IntelligentModes,[e.HeadingLock]:r.IntelligentModes,[e.AutoStabilization]:r.IntelligentModes,[e.DistanceLock]:r.IntelligentModes,[e.MainLight]:r.Lights,[e.AuxLight]:r.Lights,[e.ToggleLasers]:r.Lights,[e.IncreaseMainLightBrightness]:r.Lights,[e.DecreaseMainLightBrightness]:r.Lights,[e.IncreaseAuxLightBrightness]:r.Lights,[e.DecreaseAuxLightBrightness]:r.Lights,[e.TiltUp]:r.Camera,[e.TiltDown]:r.Camera,[e.ZoomIn]:r.Camera,[e.ZoomOut]:r.Camera,[e.CameraHome]:r.Camera,[e.Screenshot]:r.Camera,[e.Record]:r.Camera,[e.IncreaseSonarRange]:r.Sonar,[e.DecreaseSonarRange]:r.Sonar,[e.IncreaseSonarGain]:r.Sonar,[e.DecreaseSonarGain]:r.Sonar,[e.ChangeSonarFrequency]:r.Sonar,[e.GrabberOpen]:r.Tools,[e.GrabberClose]:r.Tools,[e.GrabberRotateLeft]:r.Tools,[e.GrabberRotateRight]:r.Tools,[e.TiltPlatformUp]:r.Tools,[e.TiltPlatformDown]:r.Tools,[e.Fn]:r.Miscellaneous,[e.ReelTetherIn]:r.Miscellaneous},K={[r.Vehicle]:"Thruster controls",[r.Camera]:"Camera controls",[r.Tools]:"Grabber/tools",[r.Grabber]:"Grabber/tools",[r.IntelligentMode]:"Intelligent modes",[r.Reel]:"Miscellaneous",[r.IntelligentModes]:"Intelligent modes",[r.Lights]:"Lights/lasers",[r.Menu]:"Menu Navigation",[r.Miscellaneous]:"Miscellaneous",[r.Sonar]:"Sonar controls"},W={};function Y(e,a){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{a[e]||(n=!1)})),n}function Z(e,a,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[a])})),Math.round(100*r)}function X(e,a,t){const r=`${e}:${a}`,n=W[r];return void 0===n?(W[r]=t,!1):n!==t&&(W[r]=t,!0)}function J(e,a,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[a])||void 0===n?void 0:n.pressed))})),e!==i.GCS_CONTROLLER||8!==a&&9!==a?r:X(e,a,r)}function j(e,a,t,r){var i;if(!e)return!1;const{input_type:o,input_key:s,controller_id:E}=e;if(!E&&o!==n.KeyboardKey)return!1;switch(o){case n.KeyboardKey:return Y(s.split(U),t);case n.JoystickAxis:const e=s.includes(x)?+s.substring(0,s.indexOf(x)):+s,o=Z(E,e,a),l=(null===(i=r[E])||void 0===i?void 0:i[e])||20;return s.includes(U)?o>l:!!s.includes("-")&&o<-1*l;case n.JoystickButton:return J(E,+s,a);default:return!1}}function q(e,a,t,r){var i,o;if(!e)return 0;const{input_type:s,input_key:E,controller_id:l}=e;if(!l&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return Y(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(x)>-1?+E.substring(0,E.indexOf(x)):+E,s=Z(l,e,a),R=null!==(o=null===(i=r[l])||void 0===i?void 0:i[e])&&void 0!==o?o:20;return E.includes(U)?s>=R?z(s,R):0:E.includes("-")?s<=-1*R?z(Math.abs(s),R):0:s;case n.JoystickButton:return J(l,+E,a)?100:0;default:return 0}}const z=(e,a)=>Math.floor((e-a)/(100-a)*100);function $(e){const a={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;a[t]=(a[t]||0)+1;const r=a[t]>1?`${t} (${a[t]})`:t;return new Proxy(e,{get:(e,a)=>"id"===a?r:Reflect.get(e,a)})}))}function Q(e){const a={up:!1,down:!1,left:!1,right:!1},t=(e,a)=>Math.abs(parseFloat(e.toFixed(2))-a)<.2;return t(e,-1)?a.up=!0:t(e,.14)?a.down=!0:t(e,.71)?a.left=!0:t(e,-.43)?a.right=!0:t(e,1)?(a.up=!0,a.left=!0):t(e,-.71)?(a.up=!0,a.right=!0):t(e,-.14)?(a.down=!0,a.right=!0):t(e,.43)&&(a.down=!0,a.left=!0),a}function ee(e){const a=Q(e.axes[9]);return Object.assign(Object.assign({},e),{id:i.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:a.up,touched:a.up,value:a.up?1:0},{pressed:a.down,touched:a.down,value:a.down?1:0},{pressed:a.left,touched:a.left,value:a.left?1:0},{pressed:a.right,touched:a.right,value:a.right?1:0},e.buttons[15]]})}const ae={},te=(e,a)=>ae[e]=a,re=()=>{Object.keys(ae).forEach((e=>{ae[e]=!1}))},ne=(e,a={},t={})=>{const r=$(navigator.getGamepads().map((e=>e?e.id===i.STEELSERIES_CONTROLLER_BLUETOOTH_ID?ee(e):e:null)));Object.entries(a).forEach((([a,o])=>{const s=a,E=H[s],l=B[s];let R=[];if(Object.keys(e).forEach((a=>{var c,L,T,A;const I=e[a];if(E){const{positiveCommand:e,negativeCommand:s}=E,_=(q(null!==(c=I[e])&&void 0!==c?c:{},r,ae,t)||0)-(q(null!==(L=I[s])&&void 0!==L?L:{},r,ae,t)||0),S=(null===(T=I[e])||void 0===T?void 0:T.input_type)===n.JoystickAxis||(null===(A=I[s])||void 0===A?void 0:A.input_type)===n.JoystickAxis;l&&a===i.CONSOLE_CONTROLLER&&S?null==o||o.forEach((e=>e(_,i.CONSOLE_CONTROLLER,n.JoystickAxis))):(0!==_||S)&&R.push({value:_,inputType:S?n.JoystickAxis:void 0})}else null==o||o.forEach((e=>{var n,i;e(j(null!==(n=I[s])&&void 0!==n?n:{},r,ae,t),a,null===(i=I[s])||void 0===i?void 0:i.input_type)}))})),E)if(R.length>0){const e=R.reduce(((e,a)=>e+a.value),0)/R.length,a=R[0].inputType;null==o||o.forEach((t=>t(e,void 0,a)))}else null==o||o.forEach((e=>e(0)))}))};export{H as COMBINED_COMMANDS,o as COMMON_DEFAULT_CONTROLLER_NAMES,B as CONSOLE_DIAL_COMMANDS,r as ControlType,a as CrawlerControl,w as DEFAULT_DEAD_ZONE,i as DefaultControllerId,K as INPUT_CATEGORIES_LABELS,y as INPUT_MAP_SECTIONS,n as InputType,F as NEGATIVE_COMMAND_INDICATOR,U as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,x as SPACE_BETWEEN_INDEX_AND_INDICATOR,t as VehicleControl,$ as assignUniqueIds,Y as checkKeyPress,re as clearKeys,ee as convertSteelSeriesBTToBaseSteelSeries,j as decodeBooleanMapping,q as decodeRateMapping,Z as getAxisValue,J as getButtonValue,X as getGCSToggleEdge,Q as getVirtualDPadStatesSteelSeriesBT,ne as poll,k as readableMappingROV,te as updateKeysPressed};
|
|
1
|
+
var e,a,t,r,n,i;!function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE"}(e||(e={})),function(e){e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CruiseControl="CRUISE_CONTROL",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DisableMotors="DISABLE_MOTORS",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.MainLight="MAIN_LIGHT",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Record="RECORD",e.ReelReset="REEL_RESET",e.Screenshot="SCREENSHOT",e.SwitchCamera="SWITCH_CAMERA",e.TiltDown="TILT_DOWN",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(a||(a={})),function(e){e.AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.CrawlerDrive="CRAWLER_DRIVE",e.CrawlerForward="CRAWLER_FORWARD",e.CrawlerLeft="CRAWLER_LEFT",e.CrawlerReverse="CRAWLER_REVERSE",e.CrawlerRight="CRAWLER_RIGHT",e.CrawlerSteer="CRAWLER_STEER",e.CruiseControl="CRUISE_CONTROL",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseExposure="DECREASE_EXPOSURE",e.DecreaseFocus="FOCUS_DECREASE",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.ElevatingArm="ELEVATING_ARM",e.ElevatingArmAscend="ELEVATING_ARM_ASCEND",e.ElevatingArmDescend="ELEVATING_ARM_DESCEND",e.Exposure="EXPOSURE",e.Focus="FOCUS",e.Fn="FN",e.Grabber="GRABBER",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseExposure="EXPOSURE_INCREASE",e.IncreaseFocus="FOCUS_INCREASE",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.Lateral="LATERAL",e.LateralLeft="LATERAL_LEFT",e.LateralGain="LATERAL_GAIN",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",e.Pan="PAN",e.PanLeft="PAN_LEFT",e.PanRight="PAN_RIGHT",e.Pitch="PITCH",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.PitchLock="PITCH_LOCK",e.PrecisionThrusters="PRECISION_THRUSTERS",e.Record="RECORD",e.ReelDisengage="REEL_DISENGAGE",e.ReelMotors="REEL_MOTORS",e.ReelReset="REEL_RESET",e.ResetPosture="RESET_POSTURE",e.ReelTetherIn="REEL_TETHER_IN",e.Roll="ROLL",e.RollLeft="ROLL_LEFT",e.RollPitchGain="ROLL_PITCH_GAIN",e.RollRight="ROLL_RIGHT",e.RotateGrabber="ROTATE_GRABBER",e.Screenshot="SCREENSHOT",e.SonarGain="SONAR_GAIN",e.SonarRange="SONAR_RANGE",e.SpeedGain="SPEED_GAIN",e.StationHolding="STATION_HOLDING",e.SteerGain="STEER_GAIN",e.SwitchCamera="SWITCH_CAMERA",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.Thrusters="THRUSTER",e.Tilt="TILT",e.TiltDown="TILT_DOWN",e.TiltPlatform="TILT_PLATFORM",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.Vertical="VERTICAL",e.VerticalDown="VERTICAL_DOWN",e.VerticalGain="VERTICAL_GAIN",e.VerticalUp="VERTICAL_UP",e.Yaw="YAW",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.Zoom="ZOOM",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT"}(t||(t={})),function(e){e.Vehicle="VEHICLE",e.Camera="CAMERA",e.Reel="REEL",e.Lights="LIGHTS",e.IntelligentModes="INTELLIGENT_MODES",e.IntelligentMode="INTELLIGENT_MODE",e.Tools="TOOLS",e.Grabber="GRABBER",e.Sonar="SONAR",e.Menu="MENU",e.Miscellaneous="MISCELLANEOUS"}(r||(r={})),function(e){e.JoystickAxis="AXIS",e.JoystickButton="BUTTON",e.KeyboardKey="KEY"}(n||(n={})),function(e){e.TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",e.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",e.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",e.KEYBOARD_ID="KEYBOARD",e.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",e.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",e.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",e.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",e.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",e.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)",e.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)"}(i||(i={}));const o={[i.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[i.KEYBOARD_ID]:"Keyboard",[i.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[i.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[i.STEELSERIES_CONTROLLER_ID]:"Gamepad",[i.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[i.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[i.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[i.CONSOLE_CONTROLLER]:"Deep Trekker Console",[i.FLIGHT_JOYSTICK]:"Flight joystick",[i.GCS_CONTROLLER]:"GCS Controller"},s={[t.CrawlerLeft]:!0,[t.CrawlerRight]:!0,[t.CrawlerForward]:!0,[t.CrawlerReverse]:!0,[t.TiltDown]:!0,[t.TiltUp]:!0,[t.PanLeft]:!0,[t.PanRight]:!0,[t.ReelDisengage]:!0,[t.ReelTetherIn]:!0},E={positiveCommand:t.ReelDisengage,negativeCommand:t.ReelTetherIn},l={positiveCommand:t.CrawlerForward,negativeCommand:t.CrawlerReverse},R={positiveCommand:t.CrawlerRight,negativeCommand:t.CrawlerLeft},c={positiveCommand:t.ElevatingArmAscend,negativeCommand:t.ElevatingArmDescend},L={positiveCommand:t.PanRight,negativeCommand:t.PanLeft},T={positiveCommand:t.TiltUp,negativeCommand:t.TiltDown},A={positiveCommand:t.IncreaseFocus,negativeCommand:t.DecreaseFocus},I={positiveCommand:t.IncreaseExposure,negativeCommand:t.DecreaseExposure},_={positiveCommand:t.ZoomIn,negativeCommand:t.ZoomOut},S={positiveCommand:t.ThrusterForward,negativeCommand:t.ThrusterReverse},C={positiveCommand:t.YawRight,negativeCommand:t.YawLeft},h={positiveCommand:t.LateralRight,negativeCommand:t.LateralLeft},G={positiveCommand:t.VerticalUp,negativeCommand:t.VerticalDown},u={positiveCommand:t.RollLeft,negativeCommand:t.RollRight},g={positiveCommand:t.PitchUp,negativeCommand:t.PitchDown},D={positiveCommand:t.GrabberOpen,negativeCommand:t.GrabberClose},d={positiveCommand:t.GrabberRotateRight,negativeCommand:t.GrabberRotateLeft},O={positiveCommand:t.TiltPlatformUp,negativeCommand:t.TiltPlatformDown},m={positiveCommand:t.IncreaseMainLightBrightness,negativeCommand:t.DecreaseMainLightBrightness},N={positiveCommand:t.IncreaseAuxLightBrightness,negativeCommand:t.DecreaseAuxLightBrightness},p={positiveCommand:t.IncreaseSpeedGain,negativeCommand:t.DecreaseSpeedGain},P={positiveCommand:t.IncreaseSteerGain,negativeCommand:t.DecreaseSteerGain},v={positiveCommand:t.IncreaseSonarRange,negativeCommand:t.DecreaseSonarRange},f={positiveCommand:t.IncreaseSonarGain,negativeCommand:t.DecreaseSonarGain},b={positiveCommand:t.IncreaseLateralGain,negativeCommand:t.DecreaseLateralGain},M={positiveCommand:t.IncreaseRollPitchGain,negativeCommand:t.DecreaseRollPitchGain},V={positiveCommand:t.IncreaseVerticalGain,negativeCommand:t.DecreaseVerticalGain},H={[t.ReelMotors]:E,[t.CrawlerDrive]:l,[t.CrawlerSteer]:R,[t.ElevatingArm]:c,[t.Pan]:L,[t.Tilt]:T,[t.Focus]:A,[t.Exposure]:I,[t.Zoom]:_,[t.Thrusters]:S,[t.Yaw]:C,[t.Lateral]:h,[t.Vertical]:G,[t.Roll]:u,[t.Pitch]:g,[t.Grabber]:D,[t.RotateGrabber]:d,[t.TiltPlatform]:O,[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.LateralGain]:b,[t.VerticalGain]:V,[t.RollPitchGain]:M,[t.SonarRange]:v,[t.SonarGain]:f},B={[t.MainLightBrightness]:m,[t.AuxLightBrightness]:N,[t.SpeedGain]:p,[t.SteerGain]:P,[t.SonarRange]:v,[t.SonarGain]:f},w=20,U="+",F="-",x=" ",k={[t.MainLight]:"Main light on/off",[t.AuxLight]:"Aux light on/off",[t.ToggleLasers]:"Lasers on/off",[t.IncreaseMainLightBrightness]:"Increase main LED",[t.DecreaseMainLightBrightness]:"Decrease main LED",[t.IncreaseAuxLightBrightness]:"Increase aux LED",[t.DecreaseAuxLightBrightness]:"Decrease aux LED",[t.CruiseControl]:"CC/Retrieval",[t.ResetPosture]:"Reset Posture",[t.ReelReset]:"Reel reset [hold]",[t.SwitchCamera]:"Camera switch",[t.ThrusterForward]:"Thruster forward",[t.ThrusterReverse]:"Thruster reverse",[t.YawLeft]:"Yaw left",[t.YawRight]:"Yaw right",[t.LateralLeft]:"Lateral left",[t.LateralRight]:"Lateral right",[t.VerticalUp]:"Vertical up",[t.VerticalDown]:"Vertical down",[t.PitchUp]:"Pitch up",[t.PitchDown]:"Pitch down",[t.RollLeft]:"Roll left",[t.RollRight]:"Roll right",[t.DisableMotors]:"Disable motors",[t.IncreaseSpeedGain]:"Increase speed gain",[t.DecreaseSpeedGain]:"Decrease speed gain",[t.IncreaseSteerGain]:"Increase steer gain",[t.DecreaseSteerGain]:"Decrease steer gain",[t.IncreaseLateralGain]:"Increase lateral gain",[t.DecreaseLateralGain]:"Decrease lateral gain",[t.IncreaseVerticalGain]:"Increase vertical gain",[t.DecreaseVerticalGain]:"Decrease vertical gain",[t.IncreaseRollPitchGain]:"Increase pitch/roll gain",[t.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[t.DepthLock]:"Depth lock",[t.AltitudeLock]:"Altitude lock",[t.HeadingLock]:"Heading lock",[t.PitchLock]:"Pitch lock",[t.AutoStabilization]:"Auto stabilization on/off",[t.StationHolding]:"Station holding on/off",[t.DistanceLock]:"Distance lock",[t.PrecisionThrusters]:"Precision thrusters on/off",[t.TiltUp]:"Camera tilt Up",[t.TiltDown]:"Camera tilt Down",[t.ZoomIn]:"Zoom in",[t.ZoomOut]:"Zoom out",[t.CameraHome]:"Camera home",[t.Record]:"Record",[t.Screenshot]:"Snapshot",[t.IncreaseSonarRange]:"Increase sonar range",[t.DecreaseSonarRange]:"Decrease sonar range",[t.IncreaseSonarGain]:"Increase sonar gain",[t.DecreaseSonarGain]:"Decrease sonar gain",[t.ChangeSonarFrequency]:"Change sonar frequency",[t.GrabberOpen]:"Grabber open",[t.GrabberClose]:"Grabber close",[t.GrabberRotateLeft]:"Grabber rotate left",[t.GrabberRotateRight]:"Grabber rotate right",[t.TiltPlatformUp]:"Tilt platform up",[t.TiltPlatformDown]:"Tilt platform down",[t.IncreaseFocus]:"Increase focus",[t.DecreaseFocus]:"Decrease focus",[t.IncreaseExposure]:"Increase exposure",[t.DecreaseExposure]:"Decrease exposure",[t.Fn]:"FN",[t.ReelTetherIn]:"Reel tether in"},y={[e.ThrusterForward]:r.Vehicle,[e.ThrusterReverse]:r.Vehicle,[e.YawLeft]:r.Vehicle,[e.YawRight]:r.Vehicle,[e.LateralLeft]:r.Vehicle,[e.LateralRight]:r.Vehicle,[e.VerticalUp]:r.Vehicle,[e.VerticalDown]:r.Vehicle,[e.DisableMotors]:r.Vehicle,[e.PitchUp]:r.Vehicle,[e.PitchDown]:r.Vehicle,[e.RollLeft]:r.Vehicle,[e.RollRight]:r.Vehicle,[e.IncreaseSpeedGain]:r.Vehicle,[e.DecreaseSpeedGain]:r.Vehicle,[e.IncreaseSteerGain]:r.Vehicle,[e.DecreaseSteerGain]:r.Vehicle,[e.IncreaseLateralGain]:r.Vehicle,[e.DecreaseLateralGain]:r.Vehicle,[e.IncreaseVerticalGain]:r.Vehicle,[e.DecreaseVerticalGain]:r.Vehicle,[e.IncreaseRollPitchGain]:r.Vehicle,[e.DecreaseRollPitchGain]:r.Vehicle,[e.CruiseControl]:r.Vehicle,[e.ResetPosture]:r.Vehicle,[e.DepthLock]:r.IntelligentModes,[e.AltitudeLock]:r.IntelligentModes,[e.HeadingLock]:r.IntelligentModes,[e.AutoStabilization]:r.IntelligentModes,[e.DistanceLock]:r.IntelligentModes,[e.MainLight]:r.Lights,[e.AuxLight]:r.Lights,[e.ToggleLasers]:r.Lights,[e.IncreaseMainLightBrightness]:r.Lights,[e.DecreaseMainLightBrightness]:r.Lights,[e.IncreaseAuxLightBrightness]:r.Lights,[e.DecreaseAuxLightBrightness]:r.Lights,[e.TiltUp]:r.Camera,[e.TiltDown]:r.Camera,[e.ZoomIn]:r.Camera,[e.ZoomOut]:r.Camera,[e.CameraHome]:r.Camera,[e.Screenshot]:r.Camera,[e.Record]:r.Camera,[e.IncreaseSonarRange]:r.Sonar,[e.DecreaseSonarRange]:r.Sonar,[e.IncreaseSonarGain]:r.Sonar,[e.DecreaseSonarGain]:r.Sonar,[e.ChangeSonarFrequency]:r.Sonar,[e.GrabberOpen]:r.Tools,[e.GrabberClose]:r.Tools,[e.GrabberRotateLeft]:r.Tools,[e.GrabberRotateRight]:r.Tools,[e.TiltPlatformUp]:r.Tools,[e.TiltPlatformDown]:r.Tools,[e.Fn]:r.Miscellaneous,[e.ReelTetherIn]:r.Miscellaneous},K={[r.Vehicle]:"Thruster controls",[r.Camera]:"Camera controls",[r.Tools]:"Grabber/tools",[r.Grabber]:"Grabber/tools",[r.IntelligentMode]:"Intelligent modes",[r.Reel]:"Miscellaneous",[r.IntelligentModes]:"Intelligent modes",[r.Lights]:"Lights/lasers",[r.Menu]:"Menu Navigation",[r.Miscellaneous]:"Miscellaneous",[r.Sonar]:"Sonar controls"},W={};function Y(e,a){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{a[e]||(n=!1)})),n}function Z(e,a,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[a])})),Math.round(100*r)}function X(e,a,t){const r=`${e}:${a}`,n=W[r];return(void 0===n||n!==t)&&(W[r]=t),W[r]}function J(e,a,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[a])||void 0===n?void 0:n.pressed))})),e!==i.GCS_CONTROLLER||8!==a&&9!==a?r:X(e,a,r)}function j(e,a,t,r){var i;if(!e)return!1;const{input_type:o,input_key:s,controller_id:E}=e;if(!E&&o!==n.KeyboardKey)return!1;switch(o){case n.KeyboardKey:return Y(s.split(U),t);case n.JoystickAxis:const e=s.includes(x)?+s.substring(0,s.indexOf(x)):+s,o=Z(E,e,a),l=(null===(i=r[E])||void 0===i?void 0:i[e])||20;return s.includes(U)?o>l:!!s.includes("-")&&o<-1*l;case n.JoystickButton:return J(E,+s,a);default:return!1}}function q(e,a,t,r){var i,o;if(!e)return 0;const{input_type:s,input_key:E,controller_id:l}=e;if(!l&&s!==n.KeyboardKey)return 0;switch(s){case n.KeyboardKey:return Y(E.split("+"),t)?100:0;case n.JoystickAxis:const e=E.indexOf(x)>-1?+E.substring(0,E.indexOf(x)):+E,s=Z(l,e,a),R=null!==(o=null===(i=r[l])||void 0===i?void 0:i[e])&&void 0!==o?o:20;return E.includes(U)?s>=R?z(s,R):0:E.includes("-")?s<=-1*R?z(Math.abs(s),R):0:s;case n.JoystickButton:return J(l,+E,a)?100:0;default:return 0}}const z=(e,a)=>Math.floor((e-a)/(100-a)*100);function $(e){const a={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;a[t]=(a[t]||0)+1;const r=a[t]>1?`${t} (${a[t]})`:t;return new Proxy(e,{get:(e,a)=>"id"===a?r:Reflect.get(e,a)})}))}function Q(e){const a={up:!1,down:!1,left:!1,right:!1},t=(e,a)=>Math.abs(parseFloat(e.toFixed(2))-a)<.2;return t(e,-1)?a.up=!0:t(e,.14)?a.down=!0:t(e,.71)?a.left=!0:t(e,-.43)?a.right=!0:t(e,1)?(a.up=!0,a.left=!0):t(e,-.71)?(a.up=!0,a.right=!0):t(e,-.14)?(a.down=!0,a.right=!0):t(e,.43)&&(a.down=!0,a.left=!0),a}function ee(e){const a=Q(e.axes[9]);return Object.assign(Object.assign({},e),{id:i.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:a.up,touched:a.up,value:a.up?1:0},{pressed:a.down,touched:a.down,value:a.down?1:0},{pressed:a.left,touched:a.left,value:a.left?1:0},{pressed:a.right,touched:a.right,value:a.right?1:0},e.buttons[15]]})}const ae={},te=(e,a)=>ae[e]=a,re=()=>{Object.keys(ae).forEach((e=>{ae[e]=!1}))},ne=(e,a={},t={})=>{const r=$(navigator.getGamepads().map((e=>e?e.id===i.STEELSERIES_CONTROLLER_BLUETOOTH_ID?ee(e):e:null)));Object.entries(a).forEach((([a,o])=>{const s=a,E=H[s],l=B[s];let R=[];if(Object.keys(e).forEach((a=>{var c,L,T,A;const I=e[a];if(E){const{positiveCommand:e,negativeCommand:s}=E,_=(q(null!==(c=I[e])&&void 0!==c?c:{},r,ae,t)||0)-(q(null!==(L=I[s])&&void 0!==L?L:{},r,ae,t)||0),S=(null===(T=I[e])||void 0===T?void 0:T.input_type)===n.JoystickAxis||(null===(A=I[s])||void 0===A?void 0:A.input_type)===n.JoystickAxis;l&&a===i.CONSOLE_CONTROLLER&&S?null==o||o.forEach((e=>e(_,i.CONSOLE_CONTROLLER,n.JoystickAxis))):(0!==_||S)&&R.push({value:_,inputType:S?n.JoystickAxis:void 0})}else null==o||o.forEach((e=>{var n,i;e(j(null!==(n=I[s])&&void 0!==n?n:{},r,ae,t),a,null===(i=I[s])||void 0===i?void 0:i.input_type)}))})),E)if(R.length>0){const e=R.reduce(((e,a)=>e+a.value),0)/R.length,a=R[0].inputType;null==o||o.forEach((t=>t(e,void 0,a)))}else null==o||o.forEach((e=>e(0)))}))};export{H as COMBINED_COMMANDS,o as COMMON_DEFAULT_CONTROLLER_NAMES,B as CONSOLE_DIAL_COMMANDS,r as ControlType,a as CrawlerControl,w as DEFAULT_DEAD_ZONE,i as DefaultControllerId,K as INPUT_CATEGORIES_LABELS,y as INPUT_MAP_SECTIONS,n as InputType,F as NEGATIVE_COMMAND_INDICATOR,U as POSITIVE_COMMAND_INDICATOR,s as RATE_COMMANDS,e as RovControl,x as SPACE_BETWEEN_INDEX_AND_INDICATOR,t as VehicleControl,$ as assignUniqueIds,Y as checkKeyPress,re as clearKeys,ee as convertSteelSeriesBTToBaseSteelSeries,j as decodeBooleanMapping,q as decodeRateMapping,Z as getAxisValue,J as getButtonValue,X as getGCSToggleEdge,Q as getVirtualDPadStatesSteelSeriesBT,ne as poll,k as readableMappingROV,te as updateKeysPressed};
|
package/dist/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e,o,t,r,n,l;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).AuxLight="AUX_LIGHT",o.CameraHome="CAMERA_HOME",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerReverse="CRAWLER_REVERSE",o.CrawlerRight="CRAWLER_RIGHT",o.CruiseControl="CRUISE_CONTROL",o.DecreaseExposure="DECREASE_EXPOSURE",o.DecreaseFocus="FOCUS_DECREASE",o.DisableMotors="DISABLE_MOTORS",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.IncreaseExposure="EXPOSURE_INCREASE",o.IncreaseFocus="FOCUS_INCREASE",o.MainLight="MAIN_LIGHT",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.Record="RECORD",o.ReelReset="REEL_RESET",o.Screenshot="SCREENSHOT",o.SwitchCamera="SWITCH_CAMERA",o.TiltDown="TILT_DOWN",o.TiltUp="TILT_UP",o.ToggleLasers="TOGGLE_LASERS",o.ZoomIn="ZOOM_IN",o.ZoomOut="ZOOM_OUT",exports.VehicleControl=void 0,(t=exports.VehicleControl||(exports.VehicleControl={})).AltitudeLock="ALTITUDE_LOCK",t.AutoStabilization="AUTO_STABILIZATION",t.AuxLight="AUX_LIGHT",t.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",t.CameraHome="CAMERA_HOME",t.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",t.CrawlerDrive="CRAWLER_DRIVE",t.CrawlerForward="CRAWLER_FORWARD",t.CrawlerLeft="CRAWLER_LEFT",t.CrawlerReverse="CRAWLER_REVERSE",t.CrawlerRight="CRAWLER_RIGHT",t.CrawlerSteer="CRAWLER_STEER",t.CruiseControl="CRUISE_CONTROL",t.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",t.DecreaseExposure="DECREASE_EXPOSURE",t.DecreaseFocus="FOCUS_DECREASE",t.DecreaseLateralGain="DECREASE_LATERAL_GAIN",t.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",t.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",t.DecreaseSonarGain="DECREASE_SONAR_GAIN",t.DecreaseSonarRange="DECREASE_SONAR_RANGE",t.DecreaseSpeedGain="DECREASE_SPEED_GAIN",t.DecreaseSteerGain="DECREASE_STEER_GAIN",t.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",t.DepthLock="DEPTH_LOCK",t.DisableMotors="DISABLE_MOTORS",t.DistanceLock="DISTANCE_LOCK",t.ElevatingArm="ELEVATING_ARM",t.ElevatingArmAscend="ELEVATING_ARM_ASCEND",t.ElevatingArmDescend="ELEVATING_ARM_DESCEND",t.Exposure="EXPOSURE",t.Focus="FOCUS",t.Fn="FN",t.Grabber="GRABBER",t.GrabberClose="GRABBER_CLOSE",t.GrabberOpen="GRABBER_OPEN",t.GrabberRotateLeft="GRABBER_ROTATE_LEFT",t.GrabberRotateRight="GRABBER_ROTATE_RIGHT",t.HeadingLock="HEADING_LOCK",t.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",t.IncreaseExposure="EXPOSURE_INCREASE",t.IncreaseFocus="FOCUS_INCREASE",t.IncreaseLateralGain="INCREASE_LATERAL_GAIN",t.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",t.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",t.IncreaseSonarGain="INCREASE_SONAR_GAIN",t.IncreaseSonarRange="INCREASE_SONAR_RANGE",t.IncreaseSpeedGain="INCREASE_SPEED_GAIN",t.IncreaseSteerGain="INCREASE_STEER_GAIN",t.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",t.Lateral="LATERAL",t.LateralLeft="LATERAL_LEFT",t.LateralGain="LATERAL_GAIN",t.LateralRight="LATERAL_RIGHT",t.MainLight="MAIN_LIGHT",t.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",t.Pan="PAN",t.PanLeft="PAN_LEFT",t.PanRight="PAN_RIGHT",t.Pitch="PITCH",t.PitchUp="PITCH_UP",t.PitchDown="PITCH_DOWN",t.PitchLock="PITCH_LOCK",t.PrecisionThrusters="PRECISION_THRUSTERS",t.Record="RECORD",t.ReelDisengage="REEL_DISENGAGE",t.ReelMotors="REEL_MOTORS",t.ReelReset="REEL_RESET",t.ResetPosture="RESET_POSTURE",t.ReelTetherIn="REEL_TETHER_IN",t.Roll="ROLL",t.RollLeft="ROLL_LEFT",t.RollPitchGain="ROLL_PITCH_GAIN",t.RollRight="ROLL_RIGHT",t.RotateGrabber="ROTATE_GRABBER",t.Screenshot="SCREENSHOT",t.SonarGain="SONAR_GAIN",t.SonarRange="SONAR_RANGE",t.SpeedGain="SPEED_GAIN",t.StationHolding="STATION_HOLDING",t.SteerGain="STEER_GAIN",t.SwitchCamera="SWITCH_CAMERA",t.ThrusterForward="THRUSTER_FORWARD",t.ThrusterReverse="THRUSTER_REVERSE",t.Thrusters="THRUSTER",t.Tilt="TILT",t.TiltDown="TILT_DOWN",t.TiltPlatform="TILT_PLATFORM",t.TiltPlatformDown="TILT_PLATFORM_DOWN",t.TiltPlatformUp="TILT_PLATFORM_UP",t.TiltUp="TILT_UP",t.ToggleLasers="TOGGLE_LASERS",t.Vertical="VERTICAL",t.VerticalDown="VERTICAL_DOWN",t.VerticalGain="VERTICAL_GAIN",t.VerticalUp="VERTICAL_UP",t.Yaw="YAW",t.YawLeft="YAW_LEFT",t.YawRight="YAW_RIGHT",t.Zoom="ZOOM",t.ZoomIn="ZOOM_IN",t.ZoomOut="ZOOM_OUT",exports.ControlType=void 0,(r=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",r.Camera="CAMERA",r.Reel="REEL",r.Lights="LIGHTS",r.IntelligentModes="INTELLIGENT_MODES",r.IntelligentMode="INTELLIGENT_MODE",r.Tools="TOOLS",r.Grabber="GRABBER",r.Sonar="SONAR",r.Menu="MENU",r.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(l=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",l.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",l.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",l.KEYBOARD_ID="KEYBOARD",l.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",l.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",l.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",l.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",l.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",l.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)",l.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)";const s={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick",[exports.DefaultControllerId.GCS_CONTROLLER]:"GCS Controller"},i={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0,[exports.VehicleControl.ReelDisengage]:!0,[exports.VehicleControl.ReelTetherIn]:!0},a={positiveCommand:exports.VehicleControl.ReelDisengage,negativeCommand:exports.VehicleControl.ReelTetherIn},C={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},p={positiveCommand:exports.VehicleControl.CrawlerRight,negativeCommand:exports.VehicleControl.CrawlerLeft},c={positiveCommand:exports.VehicleControl.ElevatingArmAscend,negativeCommand:exports.VehicleControl.ElevatingArmDescend},R={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},E={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},T={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},x={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},h={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},I={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},L={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},A={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},_={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},S={positiveCommand:exports.VehicleControl.RollLeft,negativeCommand:exports.VehicleControl.RollRight},u={positiveCommand:exports.VehicleControl.PitchUp,negativeCommand:exports.VehicleControl.PitchDown},V={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},D={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},d={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},g={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},G={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},O={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},m={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},N={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},v={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},P={positiveCommand:exports.VehicleControl.IncreaseLateralGain,negativeCommand:exports.VehicleControl.DecreaseLateralGain},y={positiveCommand:exports.VehicleControl.IncreaseRollPitchGain,negativeCommand:exports.VehicleControl.DecreaseRollPitchGain},f={positiveCommand:exports.VehicleControl.IncreaseVerticalGain,negativeCommand:exports.VehicleControl.DecreaseVerticalGain},M={[exports.VehicleControl.ReelMotors]:a,[exports.VehicleControl.CrawlerDrive]:C,[exports.VehicleControl.CrawlerSteer]:p,[exports.VehicleControl.ElevatingArm]:c,[exports.VehicleControl.Pan]:R,[exports.VehicleControl.Tilt]:E,[exports.VehicleControl.Focus]:T,[exports.VehicleControl.Exposure]:x,[exports.VehicleControl.Zoom]:h,[exports.VehicleControl.Thrusters]:I,[exports.VehicleControl.Yaw]:L,[exports.VehicleControl.Lateral]:A,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Roll]:S,[exports.VehicleControl.Pitch]:u,[exports.VehicleControl.Grabber]:V,[exports.VehicleControl.RotateGrabber]:D,[exports.VehicleControl.TiltPlatform]:d,[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.LateralGain]:P,[exports.VehicleControl.VerticalGain]:f,[exports.VehicleControl.RollPitchGain]:y,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},b={[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},B="+",H=" ",w={[exports.VehicleControl.MainLight]:"Main light on/off",[exports.VehicleControl.AuxLight]:"Aux light on/off",[exports.VehicleControl.ToggleLasers]:"Lasers on/off",[exports.VehicleControl.IncreaseMainLightBrightness]:"Increase main LED",[exports.VehicleControl.DecreaseMainLightBrightness]:"Decrease main LED",[exports.VehicleControl.IncreaseAuxLightBrightness]:"Increase aux LED",[exports.VehicleControl.DecreaseAuxLightBrightness]:"Decrease aux LED",[exports.VehicleControl.CruiseControl]:"CC/Retrieval",[exports.VehicleControl.ResetPosture]:"Reset Posture",[exports.VehicleControl.ReelReset]:"Reel reset [hold]",[exports.VehicleControl.SwitchCamera]:"Camera switch",[exports.VehicleControl.ThrusterForward]:"Thruster forward",[exports.VehicleControl.ThrusterReverse]:"Thruster reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.PitchUp]:"Pitch up",[exports.VehicleControl.PitchDown]:"Pitch down",[exports.VehicleControl.RollLeft]:"Roll left",[exports.VehicleControl.RollRight]:"Roll right",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.IncreaseLateralGain]:"Increase lateral gain",[exports.VehicleControl.DecreaseLateralGain]:"Decrease lateral gain",[exports.VehicleControl.IncreaseVerticalGain]:"Increase vertical gain",[exports.VehicleControl.DecreaseVerticalGain]:"Decrease vertical gain",[exports.VehicleControl.IncreaseRollPitchGain]:"Increase pitch/roll gain",[exports.VehicleControl.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.DistanceLock]:"Distance lock",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera tilt Up",[exports.VehicleControl.TiltDown]:"Camera tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom in",[exports.VehicleControl.ZoomOut]:"Zoom out",[exports.VehicleControl.CameraHome]:"Camera home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase focus",[exports.VehicleControl.DecreaseFocus]:"Decrease focus",[exports.VehicleControl.IncreaseExposure]:"Increase exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease exposure",[exports.VehicleControl.Fn]:"FN",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},U={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.PitchUp]:exports.ControlType.Vehicle,[exports.RovControl.PitchDown]:exports.ControlType.Vehicle,[exports.RovControl.RollLeft]:exports.ControlType.Vehicle,[exports.RovControl.RollRight]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.CruiseControl]:exports.ControlType.Vehicle,[exports.RovControl.ResetPosture]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.DistanceLock]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.Fn]:exports.ControlType.Miscellaneous,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},F={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"},k={};function K(e,o){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function W(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function Y(e,o,t){const r=`${e}:${o}`,n=k[r];return void 0===n?(k[r]=t,!1):n!==t&&(k[r]=t,!0)}function Z(e,o,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[o])||void 0===n?void 0:n.pressed))})),e!==exports.DefaultControllerId.GCS_CONTROLLER||8!==o&&9!==o?r:Y(e,o,r)}function X(e,o,t,r){var n;if(!e)return!1;const{input_type:l,input_key:s,controller_id:i}=e;if(!i&&l!==exports.InputType.KeyboardKey)return!1;switch(l){case exports.InputType.KeyboardKey:return K(s.split(B),t);case exports.InputType.JoystickAxis:const e=s.includes(H)?+s.substring(0,s.indexOf(H)):+s,l=W(i,e,o),a=(null===(n=r[i])||void 0===n?void 0:n[e])||20;return s.includes(B)?l>a:!!s.includes("-")&&l<-1*a;case exports.InputType.JoystickButton:return Z(i,+s,o);default:return!1}}function J(e,o,t,r){var n,l;if(!e)return 0;const{input_type:s,input_key:i,controller_id:a}=e;if(!a&&s!==exports.InputType.KeyboardKey)return 0;switch(s){case exports.InputType.KeyboardKey:return K(i.split("+"),t)?100:0;case exports.InputType.JoystickAxis:const e=i.indexOf(H)>-1?+i.substring(0,i.indexOf(H)):+i,s=W(a,e,o),C=null!==(l=null===(n=r[a])||void 0===n?void 0:n[e])&&void 0!==l?l:20;return i.includes(B)?s>=C?j(s,C):0:i.includes("-")?s<=-1*C?j(Math.abs(s),C):0:s;case exports.InputType.JoystickButton:return Z(a,+i,o)?100:0;default:return 0}}const j=(e,o)=>Math.floor((e-o)/(100-o)*100);function q(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;o[t]=(o[t]||0)+1;const r=o[t]>1?`${t} (${o[t]})`:t;return new Proxy(e,{get:(e,o)=>"id"===o?r:Reflect.get(e,o)})}))}function z(e){const o={up:!1,down:!1,left:!1,right:!1},t=(e,o)=>Math.abs(parseFloat(e.toFixed(2))-o)<.2;return t(e,-1)?o.up=!0:t(e,.14)?o.down=!0:t(e,.71)?o.left=!0:t(e,-.43)?o.right=!0:t(e,1)?(o.up=!0,o.left=!0):t(e,-.71)?(o.up=!0,o.right=!0):t(e,-.14)?(o.down=!0,o.right=!0):t(e,.43)&&(o.down=!0,o.left=!0),o}function $(e){const o=z(e.axes[9]);return Object.assign(Object.assign({},e),{id:exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:o.up,touched:o.up,value:o.up?1:0},{pressed:o.down,touched:o.down,value:o.down?1:0},{pressed:o.left,touched:o.left,value:o.left?1:0},{pressed:o.right,touched:o.right,value:o.right?1:0},e.buttons[15]]})}const Q={};exports.COMBINED_COMMANDS=M,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.CONSOLE_DIAL_COMMANDS=b,exports.DEFAULT_DEAD_ZONE=20,exports.INPUT_CATEGORIES_LABELS=F,exports.INPUT_MAP_SECTIONS=U,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=B,exports.RATE_COMMANDS=i,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=H,exports.assignUniqueIds=q,exports.checkKeyPress=K,exports.clearKeys=()=>{Object.keys(Q).forEach((e=>{Q[e]=!1}))},exports.convertSteelSeriesBTToBaseSteelSeries=$,exports.decodeBooleanMapping=X,exports.decodeRateMapping=J,exports.getAxisValue=W,exports.getButtonValue=Z,exports.getGCSToggleEdge=Y,exports.getVirtualDPadStatesSteelSeriesBT=z,exports.poll=(e,o={},t={})=>{const r=q(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?$(e):e:null)));Object.entries(o).forEach((([o,n])=>{const l=o,s=M[l],i=b[l];let a=[];if(Object.keys(e).forEach((o=>{var C,p,c,R;const E=e[o];if(s){const{positiveCommand:e,negativeCommand:l}=s,T=(J(null!==(C=E[e])&&void 0!==C?C:{},r,Q,t)||0)-(J(null!==(p=E[l])&&void 0!==p?p:{},r,Q,t)||0),x=(null===(c=E[e])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis||(null===(R=E[l])||void 0===R?void 0:R.input_type)===exports.InputType.JoystickAxis;i&&o===exports.DefaultControllerId.CONSOLE_CONTROLLER&&x?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||x)&&a.push({value:T,inputType:x?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(X(null!==(n=E[l])&&void 0!==n?n:{},r,Q,t),o,null===(s=E[l])||void 0===s?void 0:s.input_type)}))})),s)if(a.length>0){const e=a.reduce(((e,o)=>e+o.value),0)/a.length,o=a[0].inputType;null==n||n.forEach((t=>t(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=w,exports.updateKeysPressed=(e,o)=>Q[e]=o;
|
|
1
|
+
"use strict";var e,o,t,r,n,l;Object.defineProperty(exports,"__esModule",{value:!0}),exports.RovControl=void 0,(e=exports.RovControl||(exports.RovControl={})).AltitudeLock="ALTITUDE_LOCK",e.AutoStabilization="AUTO_STABILIZATION",e.AuxLight="AUX_LIGHT",e.CameraHome="CAMERA_HOME",e.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",e.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",e.DecreaseLateralGain="DECREASE_LATERAL_GAIN",e.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",e.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",e.DecreaseSonarGain="DECREASE_SONAR_GAIN",e.DecreaseSonarRange="DECREASE_SONAR_RANGE",e.DecreaseSpeedGain="DECREASE_SPEED_GAIN",e.DecreaseSteerGain="DECREASE_STEER_GAIN",e.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",e.DepthLock="DEPTH_LOCK",e.DisableMotors="DISABLE_MOTORS",e.DistanceLock="DISTANCE_LOCK",e.Fn="FN",e.GrabberClose="GRABBER_CLOSE",e.GrabberOpen="GRABBER_OPEN",e.GrabberRotateLeft="GRABBER_ROTATE_LEFT",e.GrabberRotateRight="GRABBER_ROTATE_RIGHT",e.HeadingLock="HEADING_LOCK",e.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",e.IncreaseLateralGain="INCREASE_LATERAL_GAIN",e.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",e.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",e.IncreaseSonarGain="INCREASE_SONAR_GAIN",e.IncreaseSonarRange="INCREASE_SONAR_RANGE",e.IncreaseSpeedGain="INCREASE_SPEED_GAIN",e.IncreaseSteerGain="INCREASE_STEER_GAIN",e.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",e.LateralLeft="LATERAL_LEFT",e.LateralRight="LATERAL_RIGHT",e.MainLight="MAIN_LIGHT",e.PitchUp="PITCH_UP",e.PitchDown="PITCH_DOWN",e.Record="RECORD",e.ReelTetherIn="REEL_TETHER_IN",e.RollLeft="ROLL_LEFT",e.RollRight="ROLL_RIGHT",e.Screenshot="SCREENSHOT",e.ThrusterForward="THRUSTER_FORWARD",e.ThrusterReverse="THRUSTER_REVERSE",e.TiltDown="TILT_DOWN",e.TiltPlatformDown="TILT_PLATFORM_DOWN",e.TiltPlatformUp="TILT_PLATFORM_UP",e.TiltUp="TILT_UP",e.ToggleLasers="TOGGLE_LASERS",e.VerticalDown="VERTICAL_DOWN",e.VerticalUp="VERTICAL_UP",e.YawLeft="YAW_LEFT",e.YawRight="YAW_RIGHT",e.ZoomIn="ZOOM_IN",e.ZoomOut="ZOOM_OUT",e.CruiseControl="CRUISE_CONTROL",e.ResetPosture="RESET_POSTURE",exports.CrawlerControl=void 0,(o=exports.CrawlerControl||(exports.CrawlerControl={})).AuxLight="AUX_LIGHT",o.CameraHome="CAMERA_HOME",o.CrawlerForward="CRAWLER_FORWARD",o.CrawlerLeft="CRAWLER_LEFT",o.CrawlerReverse="CRAWLER_REVERSE",o.CrawlerRight="CRAWLER_RIGHT",o.CruiseControl="CRUISE_CONTROL",o.DecreaseExposure="DECREASE_EXPOSURE",o.DecreaseFocus="FOCUS_DECREASE",o.DisableMotors="DISABLE_MOTORS",o.ElevatingArmAscend="ELEVATING_ARM_ASCEND",o.ElevatingArmDescend="ELEVATING_ARM_DESCEND",o.IncreaseExposure="EXPOSURE_INCREASE",o.IncreaseFocus="FOCUS_INCREASE",o.MainLight="MAIN_LIGHT",o.PanLeft="PAN_LEFT",o.PanRight="PAN_RIGHT",o.Record="RECORD",o.ReelReset="REEL_RESET",o.Screenshot="SCREENSHOT",o.SwitchCamera="SWITCH_CAMERA",o.TiltDown="TILT_DOWN",o.TiltUp="TILT_UP",o.ToggleLasers="TOGGLE_LASERS",o.ZoomIn="ZOOM_IN",o.ZoomOut="ZOOM_OUT",exports.VehicleControl=void 0,(t=exports.VehicleControl||(exports.VehicleControl={})).AltitudeLock="ALTITUDE_LOCK",t.AutoStabilization="AUTO_STABILIZATION",t.AuxLight="AUX_LIGHT",t.AuxLightBrightness="AUX_LIGHT_BRIGHTNESS",t.CameraHome="CAMERA_HOME",t.ChangeSonarFrequency="CHANGE_SONAR_FREQUENCY",t.CrawlerDrive="CRAWLER_DRIVE",t.CrawlerForward="CRAWLER_FORWARD",t.CrawlerLeft="CRAWLER_LEFT",t.CrawlerReverse="CRAWLER_REVERSE",t.CrawlerRight="CRAWLER_RIGHT",t.CrawlerSteer="CRAWLER_STEER",t.CruiseControl="CRUISE_CONTROL",t.DecreaseAuxLightBrightness="DECREASE_AUX_LIGHT_BRIGHTNESS",t.DecreaseExposure="DECREASE_EXPOSURE",t.DecreaseFocus="FOCUS_DECREASE",t.DecreaseLateralGain="DECREASE_LATERAL_GAIN",t.DecreaseMainLightBrightness="DECREASE_MAIN_LIGHT_BRIGHTNESS",t.DecreaseRollPitchGain="DECREASE_ROLL_PITCH_GAIN",t.DecreaseSonarGain="DECREASE_SONAR_GAIN",t.DecreaseSonarRange="DECREASE_SONAR_RANGE",t.DecreaseSpeedGain="DECREASE_SPEED_GAIN",t.DecreaseSteerGain="DECREASE_STEER_GAIN",t.DecreaseVerticalGain="DECREASE_VERTICAL_GAIN",t.DepthLock="DEPTH_LOCK",t.DisableMotors="DISABLE_MOTORS",t.DistanceLock="DISTANCE_LOCK",t.ElevatingArm="ELEVATING_ARM",t.ElevatingArmAscend="ELEVATING_ARM_ASCEND",t.ElevatingArmDescend="ELEVATING_ARM_DESCEND",t.Exposure="EXPOSURE",t.Focus="FOCUS",t.Fn="FN",t.Grabber="GRABBER",t.GrabberClose="GRABBER_CLOSE",t.GrabberOpen="GRABBER_OPEN",t.GrabberRotateLeft="GRABBER_ROTATE_LEFT",t.GrabberRotateRight="GRABBER_ROTATE_RIGHT",t.HeadingLock="HEADING_LOCK",t.IncreaseAuxLightBrightness="INCREASE_AUX_LIGHT_BRIGHTNESS",t.IncreaseExposure="EXPOSURE_INCREASE",t.IncreaseFocus="FOCUS_INCREASE",t.IncreaseLateralGain="INCREASE_LATERAL_GAIN",t.IncreaseMainLightBrightness="INCREASE_MAIN_LIGHT_BRIGHTNESS",t.IncreaseRollPitchGain="INCREASE_ROLL_PITCH_GAIN",t.IncreaseSonarGain="INCREASE_SONAR_GAIN",t.IncreaseSonarRange="INCREASE_SONAR_RANGE",t.IncreaseSpeedGain="INCREASE_SPEED_GAIN",t.IncreaseSteerGain="INCREASE_STEER_GAIN",t.IncreaseVerticalGain="INCREASE_VERTICAL_GAIN",t.Lateral="LATERAL",t.LateralLeft="LATERAL_LEFT",t.LateralGain="LATERAL_GAIN",t.LateralRight="LATERAL_RIGHT",t.MainLight="MAIN_LIGHT",t.MainLightBrightness="MAIN_LIGHT_BRIGHTNESS",t.Pan="PAN",t.PanLeft="PAN_LEFT",t.PanRight="PAN_RIGHT",t.Pitch="PITCH",t.PitchUp="PITCH_UP",t.PitchDown="PITCH_DOWN",t.PitchLock="PITCH_LOCK",t.PrecisionThrusters="PRECISION_THRUSTERS",t.Record="RECORD",t.ReelDisengage="REEL_DISENGAGE",t.ReelMotors="REEL_MOTORS",t.ReelReset="REEL_RESET",t.ResetPosture="RESET_POSTURE",t.ReelTetherIn="REEL_TETHER_IN",t.Roll="ROLL",t.RollLeft="ROLL_LEFT",t.RollPitchGain="ROLL_PITCH_GAIN",t.RollRight="ROLL_RIGHT",t.RotateGrabber="ROTATE_GRABBER",t.Screenshot="SCREENSHOT",t.SonarGain="SONAR_GAIN",t.SonarRange="SONAR_RANGE",t.SpeedGain="SPEED_GAIN",t.StationHolding="STATION_HOLDING",t.SteerGain="STEER_GAIN",t.SwitchCamera="SWITCH_CAMERA",t.ThrusterForward="THRUSTER_FORWARD",t.ThrusterReverse="THRUSTER_REVERSE",t.Thrusters="THRUSTER",t.Tilt="TILT",t.TiltDown="TILT_DOWN",t.TiltPlatform="TILT_PLATFORM",t.TiltPlatformDown="TILT_PLATFORM_DOWN",t.TiltPlatformUp="TILT_PLATFORM_UP",t.TiltUp="TILT_UP",t.ToggleLasers="TOGGLE_LASERS",t.Vertical="VERTICAL",t.VerticalDown="VERTICAL_DOWN",t.VerticalGain="VERTICAL_GAIN",t.VerticalUp="VERTICAL_UP",t.Yaw="YAW",t.YawLeft="YAW_LEFT",t.YawRight="YAW_RIGHT",t.Zoom="ZOOM",t.ZoomIn="ZOOM_IN",t.ZoomOut="ZOOM_OUT",exports.ControlType=void 0,(r=exports.ControlType||(exports.ControlType={})).Vehicle="VEHICLE",r.Camera="CAMERA",r.Reel="REEL",r.Lights="LIGHTS",r.IntelligentModes="INTELLIGENT_MODES",r.IntelligentMode="INTELLIGENT_MODE",r.Tools="TOOLS",r.Grabber="GRABBER",r.Sonar="SONAR",r.Menu="MENU",r.Miscellaneous="MISCELLANEOUS",exports.InputType=void 0,(n=exports.InputType||(exports.InputType={})).JoystickAxis="AXIS",n.JoystickButton="BUTTON",n.KeyboardKey="KEY",exports.DefaultControllerId=void 0,(l=exports.DefaultControllerId||(exports.DefaultControllerId={})).TABLET_CONTROLLER_ID="Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)",l.STEELSERIES_CONTROLLER_ID="Xbox 360 Controller (XInput STANDARD GAMEPAD)",l.STEELSERIES_CONTROLLER_BLUETOOTH_ID="SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)",l.KEYBOARD_ID="KEYBOARD",l.VKBSIM_GLADIATOR_L_ID=" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)",l.VKBSIM_GLADIATOR_R_ID=" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)",l.PLAYSTATION_CONTROLLER_ID="DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)",l.XBOX_ONE_GAMEPAD_ID="HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)",l.CONSOLE_CONTROLLER="Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)",l.FLIGHT_JOYSTICK="Extreme 3D pro (Vendor: 046d Product: c215)",l.GCS_CONTROLLER="GCS Joystick (Vendor: 2e3c Product: 5710)";const s={[exports.DefaultControllerId.TABLET_CONTROLLER_ID]:"Deep Trekker Tablet",[exports.DefaultControllerId.KEYBOARD_ID]:"Keyboard",[exports.DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:"VKBsim Gladiator EVO L (VKB Sim)",[exports.DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:"VKBsim Gladiator EVO R (VKB Sim)",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_ID]:"Gamepad",[exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:"Gamepad (Bluetooth)",[exports.DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:"DualSense Wireless Controller (Gamepad)",[exports.DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:"Xbox One Wireless Controller (Gamepad)",[exports.DefaultControllerId.CONSOLE_CONTROLLER]:"Deep Trekker Console",[exports.DefaultControllerId.FLIGHT_JOYSTICK]:"Flight joystick",[exports.DefaultControllerId.GCS_CONTROLLER]:"GCS Controller"},i={[exports.VehicleControl.CrawlerLeft]:!0,[exports.VehicleControl.CrawlerRight]:!0,[exports.VehicleControl.CrawlerForward]:!0,[exports.VehicleControl.CrawlerReverse]:!0,[exports.VehicleControl.TiltDown]:!0,[exports.VehicleControl.TiltUp]:!0,[exports.VehicleControl.PanLeft]:!0,[exports.VehicleControl.PanRight]:!0,[exports.VehicleControl.ReelDisengage]:!0,[exports.VehicleControl.ReelTetherIn]:!0},a={positiveCommand:exports.VehicleControl.ReelDisengage,negativeCommand:exports.VehicleControl.ReelTetherIn},C={positiveCommand:exports.VehicleControl.CrawlerForward,negativeCommand:exports.VehicleControl.CrawlerReverse},p={positiveCommand:exports.VehicleControl.CrawlerRight,negativeCommand:exports.VehicleControl.CrawlerLeft},c={positiveCommand:exports.VehicleControl.ElevatingArmAscend,negativeCommand:exports.VehicleControl.ElevatingArmDescend},R={positiveCommand:exports.VehicleControl.PanRight,negativeCommand:exports.VehicleControl.PanLeft},E={positiveCommand:exports.VehicleControl.TiltUp,negativeCommand:exports.VehicleControl.TiltDown},T={positiveCommand:exports.VehicleControl.IncreaseFocus,negativeCommand:exports.VehicleControl.DecreaseFocus},x={positiveCommand:exports.VehicleControl.IncreaseExposure,negativeCommand:exports.VehicleControl.DecreaseExposure},h={positiveCommand:exports.VehicleControl.ZoomIn,negativeCommand:exports.VehicleControl.ZoomOut},I={positiveCommand:exports.VehicleControl.ThrusterForward,negativeCommand:exports.VehicleControl.ThrusterReverse},L={positiveCommand:exports.VehicleControl.YawRight,negativeCommand:exports.VehicleControl.YawLeft},A={positiveCommand:exports.VehicleControl.LateralRight,negativeCommand:exports.VehicleControl.LateralLeft},_={positiveCommand:exports.VehicleControl.VerticalUp,negativeCommand:exports.VehicleControl.VerticalDown},S={positiveCommand:exports.VehicleControl.RollLeft,negativeCommand:exports.VehicleControl.RollRight},u={positiveCommand:exports.VehicleControl.PitchUp,negativeCommand:exports.VehicleControl.PitchDown},V={positiveCommand:exports.VehicleControl.GrabberOpen,negativeCommand:exports.VehicleControl.GrabberClose},D={positiveCommand:exports.VehicleControl.GrabberRotateRight,negativeCommand:exports.VehicleControl.GrabberRotateLeft},d={positiveCommand:exports.VehicleControl.TiltPlatformUp,negativeCommand:exports.VehicleControl.TiltPlatformDown},g={positiveCommand:exports.VehicleControl.IncreaseMainLightBrightness,negativeCommand:exports.VehicleControl.DecreaseMainLightBrightness},G={positiveCommand:exports.VehicleControl.IncreaseAuxLightBrightness,negativeCommand:exports.VehicleControl.DecreaseAuxLightBrightness},O={positiveCommand:exports.VehicleControl.IncreaseSpeedGain,negativeCommand:exports.VehicleControl.DecreaseSpeedGain},m={positiveCommand:exports.VehicleControl.IncreaseSteerGain,negativeCommand:exports.VehicleControl.DecreaseSteerGain},N={positiveCommand:exports.VehicleControl.IncreaseSonarRange,negativeCommand:exports.VehicleControl.DecreaseSonarRange},v={positiveCommand:exports.VehicleControl.IncreaseSonarGain,negativeCommand:exports.VehicleControl.DecreaseSonarGain},P={positiveCommand:exports.VehicleControl.IncreaseLateralGain,negativeCommand:exports.VehicleControl.DecreaseLateralGain},y={positiveCommand:exports.VehicleControl.IncreaseRollPitchGain,negativeCommand:exports.VehicleControl.DecreaseRollPitchGain},f={positiveCommand:exports.VehicleControl.IncreaseVerticalGain,negativeCommand:exports.VehicleControl.DecreaseVerticalGain},M={[exports.VehicleControl.ReelMotors]:a,[exports.VehicleControl.CrawlerDrive]:C,[exports.VehicleControl.CrawlerSteer]:p,[exports.VehicleControl.ElevatingArm]:c,[exports.VehicleControl.Pan]:R,[exports.VehicleControl.Tilt]:E,[exports.VehicleControl.Focus]:T,[exports.VehicleControl.Exposure]:x,[exports.VehicleControl.Zoom]:h,[exports.VehicleControl.Thrusters]:I,[exports.VehicleControl.Yaw]:L,[exports.VehicleControl.Lateral]:A,[exports.VehicleControl.Vertical]:_,[exports.VehicleControl.Roll]:S,[exports.VehicleControl.Pitch]:u,[exports.VehicleControl.Grabber]:V,[exports.VehicleControl.RotateGrabber]:D,[exports.VehicleControl.TiltPlatform]:d,[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.LateralGain]:P,[exports.VehicleControl.VerticalGain]:f,[exports.VehicleControl.RollPitchGain]:y,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},b={[exports.VehicleControl.MainLightBrightness]:g,[exports.VehicleControl.AuxLightBrightness]:G,[exports.VehicleControl.SpeedGain]:O,[exports.VehicleControl.SteerGain]:m,[exports.VehicleControl.SonarRange]:N,[exports.VehicleControl.SonarGain]:v},B="+",H=" ",w={[exports.VehicleControl.MainLight]:"Main light on/off",[exports.VehicleControl.AuxLight]:"Aux light on/off",[exports.VehicleControl.ToggleLasers]:"Lasers on/off",[exports.VehicleControl.IncreaseMainLightBrightness]:"Increase main LED",[exports.VehicleControl.DecreaseMainLightBrightness]:"Decrease main LED",[exports.VehicleControl.IncreaseAuxLightBrightness]:"Increase aux LED",[exports.VehicleControl.DecreaseAuxLightBrightness]:"Decrease aux LED",[exports.VehicleControl.CruiseControl]:"CC/Retrieval",[exports.VehicleControl.ResetPosture]:"Reset Posture",[exports.VehicleControl.ReelReset]:"Reel reset [hold]",[exports.VehicleControl.SwitchCamera]:"Camera switch",[exports.VehicleControl.ThrusterForward]:"Thruster forward",[exports.VehicleControl.ThrusterReverse]:"Thruster reverse",[exports.VehicleControl.YawLeft]:"Yaw left",[exports.VehicleControl.YawRight]:"Yaw right",[exports.VehicleControl.LateralLeft]:"Lateral left",[exports.VehicleControl.LateralRight]:"Lateral right",[exports.VehicleControl.VerticalUp]:"Vertical up",[exports.VehicleControl.VerticalDown]:"Vertical down",[exports.VehicleControl.PitchUp]:"Pitch up",[exports.VehicleControl.PitchDown]:"Pitch down",[exports.VehicleControl.RollLeft]:"Roll left",[exports.VehicleControl.RollRight]:"Roll right",[exports.VehicleControl.DisableMotors]:"Disable motors",[exports.VehicleControl.IncreaseSpeedGain]:"Increase speed gain",[exports.VehicleControl.DecreaseSpeedGain]:"Decrease speed gain",[exports.VehicleControl.IncreaseSteerGain]:"Increase steer gain",[exports.VehicleControl.DecreaseSteerGain]:"Decrease steer gain",[exports.VehicleControl.IncreaseLateralGain]:"Increase lateral gain",[exports.VehicleControl.DecreaseLateralGain]:"Decrease lateral gain",[exports.VehicleControl.IncreaseVerticalGain]:"Increase vertical gain",[exports.VehicleControl.DecreaseVerticalGain]:"Decrease vertical gain",[exports.VehicleControl.IncreaseRollPitchGain]:"Increase pitch/roll gain",[exports.VehicleControl.DecreaseRollPitchGain]:"Decrease pitch/roll gain",[exports.VehicleControl.DepthLock]:"Depth lock",[exports.VehicleControl.AltitudeLock]:"Altitude lock",[exports.VehicleControl.HeadingLock]:"Heading lock",[exports.VehicleControl.PitchLock]:"Pitch lock",[exports.VehicleControl.AutoStabilization]:"Auto stabilization on/off",[exports.VehicleControl.StationHolding]:"Station holding on/off",[exports.VehicleControl.DistanceLock]:"Distance lock",[exports.VehicleControl.PrecisionThrusters]:"Precision thrusters on/off",[exports.VehicleControl.TiltUp]:"Camera tilt Up",[exports.VehicleControl.TiltDown]:"Camera tilt Down",[exports.VehicleControl.ZoomIn]:"Zoom in",[exports.VehicleControl.ZoomOut]:"Zoom out",[exports.VehicleControl.CameraHome]:"Camera home",[exports.VehicleControl.Record]:"Record",[exports.VehicleControl.Screenshot]:"Snapshot",[exports.VehicleControl.IncreaseSonarRange]:"Increase sonar range",[exports.VehicleControl.DecreaseSonarRange]:"Decrease sonar range",[exports.VehicleControl.IncreaseSonarGain]:"Increase sonar gain",[exports.VehicleControl.DecreaseSonarGain]:"Decrease sonar gain",[exports.VehicleControl.ChangeSonarFrequency]:"Change sonar frequency",[exports.VehicleControl.GrabberOpen]:"Grabber open",[exports.VehicleControl.GrabberClose]:"Grabber close",[exports.VehicleControl.GrabberRotateLeft]:"Grabber rotate left",[exports.VehicleControl.GrabberRotateRight]:"Grabber rotate right",[exports.VehicleControl.TiltPlatformUp]:"Tilt platform up",[exports.VehicleControl.TiltPlatformDown]:"Tilt platform down",[exports.VehicleControl.IncreaseFocus]:"Increase focus",[exports.VehicleControl.DecreaseFocus]:"Decrease focus",[exports.VehicleControl.IncreaseExposure]:"Increase exposure",[exports.VehicleControl.DecreaseExposure]:"Decrease exposure",[exports.VehicleControl.Fn]:"FN",[exports.VehicleControl.ReelTetherIn]:"Reel tether in"},U={[exports.RovControl.ThrusterForward]:exports.ControlType.Vehicle,[exports.RovControl.ThrusterReverse]:exports.ControlType.Vehicle,[exports.RovControl.YawLeft]:exports.ControlType.Vehicle,[exports.RovControl.YawRight]:exports.ControlType.Vehicle,[exports.RovControl.LateralLeft]:exports.ControlType.Vehicle,[exports.RovControl.LateralRight]:exports.ControlType.Vehicle,[exports.RovControl.VerticalUp]:exports.ControlType.Vehicle,[exports.RovControl.VerticalDown]:exports.ControlType.Vehicle,[exports.RovControl.DisableMotors]:exports.ControlType.Vehicle,[exports.RovControl.PitchUp]:exports.ControlType.Vehicle,[exports.RovControl.PitchDown]:exports.ControlType.Vehicle,[exports.RovControl.RollLeft]:exports.ControlType.Vehicle,[exports.RovControl.RollRight]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSpeedGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseSteerGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseLateralGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseVerticalGain]:exports.ControlType.Vehicle,[exports.RovControl.IncreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.DecreaseRollPitchGain]:exports.ControlType.Vehicle,[exports.RovControl.CruiseControl]:exports.ControlType.Vehicle,[exports.RovControl.ResetPosture]:exports.ControlType.Vehicle,[exports.RovControl.DepthLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AltitudeLock]:exports.ControlType.IntelligentModes,[exports.RovControl.HeadingLock]:exports.ControlType.IntelligentModes,[exports.RovControl.AutoStabilization]:exports.ControlType.IntelligentModes,[exports.RovControl.DistanceLock]:exports.ControlType.IntelligentModes,[exports.RovControl.MainLight]:exports.ControlType.Lights,[exports.RovControl.AuxLight]:exports.ControlType.Lights,[exports.RovControl.ToggleLasers]:exports.ControlType.Lights,[exports.RovControl.IncreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseMainLightBrightness]:exports.ControlType.Lights,[exports.RovControl.IncreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.DecreaseAuxLightBrightness]:exports.ControlType.Lights,[exports.RovControl.TiltUp]:exports.ControlType.Camera,[exports.RovControl.TiltDown]:exports.ControlType.Camera,[exports.RovControl.ZoomIn]:exports.ControlType.Camera,[exports.RovControl.ZoomOut]:exports.ControlType.Camera,[exports.RovControl.CameraHome]:exports.ControlType.Camera,[exports.RovControl.Screenshot]:exports.ControlType.Camera,[exports.RovControl.Record]:exports.ControlType.Camera,[exports.RovControl.IncreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarRange]:exports.ControlType.Sonar,[exports.RovControl.IncreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.DecreaseSonarGain]:exports.ControlType.Sonar,[exports.RovControl.ChangeSonarFrequency]:exports.ControlType.Sonar,[exports.RovControl.GrabberOpen]:exports.ControlType.Tools,[exports.RovControl.GrabberClose]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateLeft]:exports.ControlType.Tools,[exports.RovControl.GrabberRotateRight]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformUp]:exports.ControlType.Tools,[exports.RovControl.TiltPlatformDown]:exports.ControlType.Tools,[exports.RovControl.Fn]:exports.ControlType.Miscellaneous,[exports.RovControl.ReelTetherIn]:exports.ControlType.Miscellaneous},F={[exports.ControlType.Vehicle]:"Thruster controls",[exports.ControlType.Camera]:"Camera controls",[exports.ControlType.Tools]:"Grabber/tools",[exports.ControlType.Grabber]:"Grabber/tools",[exports.ControlType.IntelligentMode]:"Intelligent modes",[exports.ControlType.Reel]:"Miscellaneous",[exports.ControlType.IntelligentModes]:"Intelligent modes",[exports.ControlType.Lights]:"Lights/lasers",[exports.ControlType.Menu]:"Menu Navigation",[exports.ControlType.Miscellaneous]:"Miscellaneous",[exports.ControlType.Sonar]:"Sonar controls"},k={};function K(e,o){var t;const r=(null===(t=document.activeElement)||void 0===t?void 0:t.tagName)||"";if("INPUT"===r||"TEXTAREA"===r)return!1;let n=!0;return e.forEach((e=>{o[e]||(n=!1)})),n}function W(e,o,t){let r=0;return t.forEach((t=>{t&&t.id===e&&(r=t.axes[o])})),Math.round(100*r)}function Y(e,o,t){const r=`${e}:${o}`,n=k[r];return(void 0===n||n!==t)&&(k[r]=t),k[r]}function Z(e,o,t){let r=!1;return t.forEach((t=>{var n;t&&t.id===e&&(r=!!(null===(n=t.buttons[o])||void 0===n?void 0:n.pressed))})),e!==exports.DefaultControllerId.GCS_CONTROLLER||8!==o&&9!==o?r:Y(e,o,r)}function X(e,o,t,r){var n;if(!e)return!1;const{input_type:l,input_key:s,controller_id:i}=e;if(!i&&l!==exports.InputType.KeyboardKey)return!1;switch(l){case exports.InputType.KeyboardKey:return K(s.split(B),t);case exports.InputType.JoystickAxis:const e=s.includes(H)?+s.substring(0,s.indexOf(H)):+s,l=W(i,e,o),a=(null===(n=r[i])||void 0===n?void 0:n[e])||20;return s.includes(B)?l>a:!!s.includes("-")&&l<-1*a;case exports.InputType.JoystickButton:return Z(i,+s,o);default:return!1}}function J(e,o,t,r){var n,l;if(!e)return 0;const{input_type:s,input_key:i,controller_id:a}=e;if(!a&&s!==exports.InputType.KeyboardKey)return 0;switch(s){case exports.InputType.KeyboardKey:return K(i.split("+"),t)?100:0;case exports.InputType.JoystickAxis:const e=i.indexOf(H)>-1?+i.substring(0,i.indexOf(H)):+i,s=W(a,e,o),C=null!==(l=null===(n=r[a])||void 0===n?void 0:n[e])&&void 0!==l?l:20;return i.includes(B)?s>=C?j(s,C):0:i.includes("-")?s<=-1*C?j(Math.abs(s),C):0:s;case exports.InputType.JoystickButton:return Z(a,+i,o)?100:0;default:return 0}}const j=(e,o)=>Math.floor((e-o)/(100-o)*100);function q(e){const o={};return Array.from(e).filter((e=>null!==e&&void 0!==e.id)).map((e=>{const t=e.id;o[t]=(o[t]||0)+1;const r=o[t]>1?`${t} (${o[t]})`:t;return new Proxy(e,{get:(e,o)=>"id"===o?r:Reflect.get(e,o)})}))}function z(e){const o={up:!1,down:!1,left:!1,right:!1},t=(e,o)=>Math.abs(parseFloat(e.toFixed(2))-o)<.2;return t(e,-1)?o.up=!0:t(e,.14)?o.down=!0:t(e,.71)?o.left=!0:t(e,-.43)?o.right=!0:t(e,1)?(o.up=!0,o.left=!0):t(e,-.71)?(o.up=!0,o.right=!0):t(e,-.14)?(o.down=!0,o.right=!0):t(e,.43)&&(o.down=!0,o.left=!0),o}function $(e){const o=z(e.axes[9]);return Object.assign(Object.assign({},e),{id:exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,axes:[e.axes[0],e.axes[1],e.axes[2],e.axes[5]],buttons:[e.buttons[0],e.buttons[1],e.buttons[3],e.buttons[4],e.buttons[6],e.buttons[7],e.buttons[8],e.buttons[9],e.buttons[10],e.buttons[11],e.buttons[13],e.buttons[14],{pressed:o.up,touched:o.up,value:o.up?1:0},{pressed:o.down,touched:o.down,value:o.down?1:0},{pressed:o.left,touched:o.left,value:o.left?1:0},{pressed:o.right,touched:o.right,value:o.right?1:0},e.buttons[15]]})}const Q={};exports.COMBINED_COMMANDS=M,exports.COMMON_DEFAULT_CONTROLLER_NAMES=s,exports.CONSOLE_DIAL_COMMANDS=b,exports.DEFAULT_DEAD_ZONE=20,exports.INPUT_CATEGORIES_LABELS=F,exports.INPUT_MAP_SECTIONS=U,exports.NEGATIVE_COMMAND_INDICATOR="-",exports.POSITIVE_COMMAND_INDICATOR=B,exports.RATE_COMMANDS=i,exports.SPACE_BETWEEN_INDEX_AND_INDICATOR=H,exports.assignUniqueIds=q,exports.checkKeyPress=K,exports.clearKeys=()=>{Object.keys(Q).forEach((e=>{Q[e]=!1}))},exports.convertSteelSeriesBTToBaseSteelSeries=$,exports.decodeBooleanMapping=X,exports.decodeRateMapping=J,exports.getAxisValue=W,exports.getButtonValue=Z,exports.getGCSToggleEdge=Y,exports.getVirtualDPadStatesSteelSeriesBT=z,exports.poll=(e,o={},t={})=>{const r=q(navigator.getGamepads().map((e=>e?e.id===exports.DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID?$(e):e:null)));Object.entries(o).forEach((([o,n])=>{const l=o,s=M[l],i=b[l];let a=[];if(Object.keys(e).forEach((o=>{var C,p,c,R;const E=e[o];if(s){const{positiveCommand:e,negativeCommand:l}=s,T=(J(null!==(C=E[e])&&void 0!==C?C:{},r,Q,t)||0)-(J(null!==(p=E[l])&&void 0!==p?p:{},r,Q,t)||0),x=(null===(c=E[e])||void 0===c?void 0:c.input_type)===exports.InputType.JoystickAxis||(null===(R=E[l])||void 0===R?void 0:R.input_type)===exports.InputType.JoystickAxis;i&&o===exports.DefaultControllerId.CONSOLE_CONTROLLER&&x?null==n||n.forEach((e=>e(T,exports.DefaultControllerId.CONSOLE_CONTROLLER,exports.InputType.JoystickAxis))):(0!==T||x)&&a.push({value:T,inputType:x?exports.InputType.JoystickAxis:void 0})}else null==n||n.forEach((e=>{var n,s;e(X(null!==(n=E[l])&&void 0!==n?n:{},r,Q,t),o,null===(s=E[l])||void 0===s?void 0:s.input_type)}))})),s)if(a.length>0){const e=a.reduce(((e,o)=>e+o.value),0)/a.length,o=a[0].inputType;null==n||n.forEach((t=>t(e,void 0,o)))}else null==n||n.forEach((e=>e(0)))}))},exports.readableMappingROV=w,exports.updateKeysPressed=(e,o)=>Q[e]=o;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n Fn = \"FN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n Record = \"RECORD\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n RollLeft = \"ROLL_LEFT\",\n RollRight = \"ROLL_RIGHT\",\n Screenshot = \"SCREENSHOT\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalUp = \"VERTICAL_UP\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CruiseControl = \"CRUISE_CONTROL\",\n ResetPosture = \"RESET_POSTURE\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DisableMotors = \"DISABLE_MOTORS\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n MainLight = \"MAIN_LIGHT\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Record = \"RECORD\",\n ReelReset = \"REEL_RESET\",\n Screenshot = \"SCREENSHOT\",\n SwitchCamera = \"SWITCH_CAMERA\",\n TiltDown = \"TILT_DOWN\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n Exposure = \"EXPOSURE\",\n Focus = \"FOCUS\",\n Fn = \"FN\",\n Grabber = \"GRABBER\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n Lateral = \"LATERAL\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralGain = \"LATERAL_GAIN\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Pitch = \"PITCH\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n PitchLock = \"PITCH_LOCK\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n Record = \"RECORD\",\n ReelDisengage = \"REEL_DISENGAGE\",\n ReelMotors = \"REEL_MOTORS\",\n ReelReset = \"REEL_RESET\",\n ResetPosture = \"RESET_POSTURE\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n Roll = \"ROLL\",\n RollLeft = \"ROLL_LEFT\",\n RollPitchGain = \"ROLL_PITCH_GAIN\",\n RollRight = \"ROLL_RIGHT\",\n RotateGrabber = \"ROTATE_GRABBER\",\n Screenshot = \"SCREENSHOT\",\n SonarGain = \"SONAR_GAIN\",\n SonarRange = \"SONAR_RANGE\",\n SpeedGain = \"SPEED_GAIN\",\n StationHolding = \"STATION_HOLDING\",\n SteerGain = \"STEER_GAIN\",\n SwitchCamera = \"SWITCH_CAMERA\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n Tilt = \"TILT\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n Vertical = \"VERTICAL\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalGain = \"VERTICAL_GAIN\",\n VerticalUp = \"VERTICAL_UP\",\n Yaw = \"YAW\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n fnProfile?: boolean;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n GCS_CONTROLLER = \"GCS Joystick (Vendor: 2e3c Product: 5710)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n [DefaultControllerId.GCS_CONTROLLER]: \"GCS Controller\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n RovControl,\n VehicleControl,\n} from \"@types\";\n\nexport const RATE_COMMANDS: Partial<Record<VehicleControl, boolean>> = {\n [VehicleControl.CrawlerLeft]: true,\n [VehicleControl.CrawlerRight]: true,\n [VehicleControl.CrawlerForward]: true,\n [VehicleControl.CrawlerReverse]: true,\n [VehicleControl.TiltDown]: true,\n [VehicleControl.TiltUp]: true,\n [VehicleControl.PanLeft]: true,\n [VehicleControl.PanRight]: true,\n [VehicleControl.ReelDisengage]: true,\n [VehicleControl.ReelTetherIn]: true,\n};\n\nconst REEL_MOTORS: CombinedCommand = {\n positiveCommand: VehicleControl.ReelDisengage,\n negativeCommand: VehicleControl.ReelTetherIn,\n};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst ROLL: CombinedCommand = {\n positiveCommand: VehicleControl.RollLeft,\n negativeCommand: VehicleControl.RollRight,\n};\n\nconst PITCH: CombinedCommand = {\n positiveCommand: VehicleControl.PitchUp,\n negativeCommand: VehicleControl.PitchDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\n\nconst LATERAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseLateralGain,\n negativeCommand: VehicleControl.DecreaseLateralGain,\n};\nconst PITCH_ROLL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseRollPitchGain,\n negativeCommand: VehicleControl.DecreaseRollPitchGain,\n};\nconst VERTICAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseVerticalGain,\n negativeCommand: VehicleControl.DecreaseVerticalGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.ReelMotors]: REEL_MOTORS,\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Roll]: ROLL,\n [VehicleControl.Pitch]: PITCH,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.LateralGain]: LATERAL_GAIN,\n [VehicleControl.VerticalGain]: VERTICAL_GAIN,\n [VehicleControl.RollPitchGain]: PITCH_ROLL_GAIN,\n\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const CONSOLE_DIAL_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 20;\n\nexport const POSITIVE_COMMAND_INDICATOR = \"+\";\nexport const NEGATIVE_COMMAND_INDICATOR = \"-\";\nexport const SPACE_BETWEEN_INDEX_AND_INDICATOR = \" \";\n\nexport const readableMappingROV: Record<string, string> = {\n [VehicleControl.MainLight]: \"Main light on/off\",\n [VehicleControl.AuxLight]: \"Aux light on/off\",\n [VehicleControl.ToggleLasers]: \"Lasers on/off\",\n [VehicleControl.IncreaseMainLightBrightness]: \"Increase main LED\",\n [VehicleControl.DecreaseMainLightBrightness]: \"Decrease main LED\",\n [VehicleControl.IncreaseAuxLightBrightness]: \"Increase aux LED\",\n [VehicleControl.DecreaseAuxLightBrightness]: \"Decrease aux LED\",\n\n [VehicleControl.CruiseControl]: \"CC/Retrieval\",\n [VehicleControl.ResetPosture]: \"Reset Posture\",\n [VehicleControl.ReelReset]: \"Reel reset [hold]\",\n [VehicleControl.SwitchCamera]: \"Camera switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.PitchUp]: \"Pitch up\",\n [VehicleControl.PitchDown]: \"Pitch down\",\n [VehicleControl.RollLeft]: \"Roll left\",\n [VehicleControl.RollRight]: \"Roll right\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n [VehicleControl.IncreaseLateralGain]: \"Increase lateral gain\",\n [VehicleControl.DecreaseLateralGain]: \"Decrease lateral gain\",\n [VehicleControl.IncreaseVerticalGain]: \"Increase vertical gain\",\n [VehicleControl.DecreaseVerticalGain]: \"Decrease vertical gain\",\n [VehicleControl.IncreaseRollPitchGain]: \"Increase pitch/roll gain\",\n [VehicleControl.DecreaseRollPitchGain]: \"Decrease pitch/roll gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.DistanceLock]: \"Distance lock\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera tilt Up\",\n [VehicleControl.TiltDown]: \"Camera tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom in\",\n [VehicleControl.ZoomOut]: \"Zoom out\",\n [VehicleControl.CameraHome]: \"Camera home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease focus\",\n [VehicleControl.IncreaseExposure]: \"Increase exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease exposure\",\n\n [VehicleControl.Fn]: \"FN\",\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.PitchUp]: ControlType.Vehicle,\n [RovControl.PitchDown]: ControlType.Vehicle,\n [RovControl.RollLeft]: ControlType.Vehicle,\n [RovControl.RollRight]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n [RovControl.IncreaseLateralGain]: ControlType.Vehicle,\n [RovControl.DecreaseLateralGain]: ControlType.Vehicle,\n [RovControl.IncreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.DecreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.IncreaseRollPitchGain]: ControlType.Vehicle,\n [RovControl.DecreaseRollPitchGain]: ControlType.Vehicle,\n\n [RovControl.CruiseControl]: ControlType.Vehicle,\n [RovControl.ResetPosture]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n [RovControl.DistanceLock]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.Fn]: ControlType.Miscellaneous,\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport {\n InputType,\n MappedInput,\n DeadZoneProfiles,\n DefaultControllerId,\n} from \"@types\";\n\nconst gcsToggleState: Record<string, boolean | undefined> = {};\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getGCSToggleEdge(\n controllerId: string,\n buttonIndex: number,\n pressed: boolean,\n) {\n const key = `${controllerId}:${buttonIndex}`;\n const previous = gcsToggleState[key];\n\n if (previous === undefined) {\n gcsToggleState[key] = pressed;\n return false;\n }\n\n if (previous !== pressed) {\n gcsToggleState[key] = pressed;\n return true;\n }\n\n return false;\n}\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let pressed = false;\n\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n pressed = !!gamepad.buttons[index]?.pressed;\n }\n });\n\n if (\n controllerID === DefaultControllerId.GCS_CONTROLLER &&\n (index === 8 || index === 9)\n ) {\n return getGCSToggleEdge(controllerID, index, pressed);\n }\n\n // All other buttons → normal behavior\n return pressed;\n}\n\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n\n/**\n * Interprets the single D-pad axis value (axis 9) from the SteelSeries Bluetooth controller\n * and converts it into a virtual set of D-pad button states (up, down, left, right).\n *\n * Unlike standard controllers that report D-pad directions as individual buttons,\n * the Bluetooth version of the SteelSeries controller encodes D-pad input into a\n * single axis value. This axis represents 8 possible directional combinations:\n * - Cardinal: up (-1), down (~0.14), left (~0.71), right (~-0.43)\n * - Diagonals: up+left (1), up+right (~-0.71), down+right (~-0.14), down+left (~0.43)\n *\n * This function uses approximate matching to account for slight variations in\n * axis values due to analog behavior, and returns an object mapping each D-pad\n * direction to a boolean indicating whether it is active.\n *\n * This enables consistent D-pad handling across SteelSeries controllers, regardless\n * of whether they report the D-pad as buttons (dongle) or a single axis (Bluetooth).\n */\nexport function getVirtualDPadStatesSteelSeriesBT(axisValue: number) {\n const matches = {\n up: false,\n down: false,\n left: false,\n right: false,\n };\n\n const approx = (a: number, b: number) =>\n Math.abs(parseFloat(a.toFixed(2)) - b) < 0.2;\n\n if (approx(axisValue, -1)) {\n matches.up = true;\n } else if (approx(axisValue, 0.14)) {\n matches.down = true;\n } else if (approx(axisValue, 0.71)) {\n matches.left = true;\n } else if (approx(axisValue, -0.43)) {\n matches.right = true;\n } else if (approx(axisValue, 1)) {\n matches.up = true;\n matches.left = true;\n } else if (approx(axisValue, -0.71)) {\n matches.up = true;\n matches.right = true;\n } else if (approx(axisValue, -0.14)) {\n matches.down = true;\n matches.right = true;\n } else if (approx(axisValue, 0.43)) {\n matches.down = true;\n matches.left = true;\n }\n\n return matches;\n}\n\n/**\n * Converts the SteelSeries Bluetooth controller format to a normalized layout\n * matching the dongle version of the same controller.\n *\n * The Bluetooth version of the SteelSeries controller differs from the dongle version\n * in two key ways:\n * 1. The D-pad is reported as a single axis (axis 9) instead of separate buttons (12–15).\n * We use `getVirtualDPadStatesSteelSeriesBT()` to interpret axis 9 and inject\n * virtual D-pad buttons at the correct positions (indices 12–15).\n * 2. The axes and button layout are slightly different from the dongle version, so we\n * remap and reorder them to ensure consistency across both input types.\n *\n * This allows the rest of the application to treat both Bluetooth and dongle-based\n * SteelSeries controllers the same way, avoiding special-case handling elsewhere in the code.\n */\nexport function convertSteelSeriesBTToBaseSteelSeries(gamepad: Gamepad) {\n const virtualDPadStates = getVirtualDPadStatesSteelSeriesBT(\n gamepad.axes[9],\n );\n return {\n ...gamepad,\n id: DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,\n axes: [\n gamepad.axes[0],\n gamepad.axes[1],\n gamepad.axes[2],\n gamepad.axes[5],\n ],\n buttons: [\n gamepad.buttons[0],\n gamepad.buttons[1],\n gamepad.buttons[3],\n gamepad.buttons[4],\n gamepad.buttons[6],\n gamepad.buttons[7],\n gamepad.buttons[8],\n gamepad.buttons[9],\n gamepad.buttons[10],\n gamepad.buttons[11],\n gamepad.buttons[13],\n gamepad.buttons[14],\n // Inject D-pad buttons at the right indices (12–15)\n {\n pressed: virtualDPadStates.up,\n touched: virtualDPadStates.up,\n value: virtualDPadStates.up ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.down,\n touched: virtualDPadStates.down,\n value: virtualDPadStates.down ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.left,\n touched: virtualDPadStates.left,\n value: virtualDPadStates.left ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.right,\n touched: virtualDPadStates.right,\n value: virtualDPadStates.right ? 1 : 0,\n },\n gamepad.buttons[15],\n ],\n } as Gamepad;\n}\n","import { COMBINED_COMMANDS, CONSOLE_DIAL_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n DefaultControllerId,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n convertSteelSeriesBTToBaseSteelSeries,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const clearKeys = () => {\n Object.keys(keysPressed).forEach((key) => {\n keysPressed[key] = false;\n });\n};\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads().map((gamepad) => {\n if (!gamepad) {\n return null;\n } else if (\n gamepad.id ===\n DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID\n ) {\n return convertSteelSeriesBTToBaseSteelSeries(gamepad);\n } else {\n return gamepad;\n }\n });\n const uniqueGamepads = assignUniqueIds(gamepads);\n Object.entries(subscribers).forEach(([control, callbacks]) => {\n const vehicleControl = control as VehicleControl;\n const combinedCommand = COMBINED_COMMANDS[vehicleControl];\n const consoleDialCommand = CONSOLE_DIAL_COMMANDS[vehicleControl];\n let values: { value: number; inputType?: InputType }[] = [];\n Object.keys(activeMapping).forEach((controller) => {\n const mapping = activeMapping[controller];\n if (combinedCommand) {\n const { positiveCommand, negativeCommand } = combinedCommand;\n const positiveValue =\n decodeRateMapping(\n mapping[positiveCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const negativeValue =\n decodeRateMapping(\n mapping[negativeCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const value = positiveValue - negativeValue;\n const containsAxis =\n mapping[positiveCommand]?.input_type ===\n InputType.JoystickAxis ||\n mapping[negativeCommand]?.input_type ===\n InputType.JoystickAxis;\n\n // Here we are checking if the command one of the consoles dials, that are set to the sonar gains, light brightness, speeds.\n // If it is we want to return early and fire the command so it doesn't get rounded with the others. This way it can be handled on the web app\n // to ignore the message if need be.\n if (\n consoleDialCommand &&\n controller === DefaultControllerId.CONSOLE_CONTROLLER &&\n containsAxis\n ) {\n callbacks?.forEach((callback) =>\n callback(\n value,\n DefaultControllerId.CONSOLE_CONTROLLER,\n InputType.JoystickAxis,\n ),\n );\n } else if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","GCS_CONTROLLER","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","ReelDisengage","ReelTetherIn","REEL_MOTORS","positiveCommand","negativeCommand","CRAWLER_DRIVE","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","ROLL","RollLeft","RollRight","PITCH","PitchUp","PitchDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","LATERAL_GAIN","IncreaseLateralGain","DecreaseLateralGain","PITCH_ROLL_GAIN","IncreaseRollPitchGain","DecreaseRollPitchGain","VERTICAL_GAIN","IncreaseVerticalGain","DecreaseVerticalGain","COMBINED_COMMANDS","ReelMotors","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Roll","Pitch","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","LateralGain","VerticalGain","RollPitchGain","SonarRange","SonarGain","CONSOLE_DIAL_COMMANDS","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ResetPosture","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","DistanceLock","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","Fn","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","gcsToggleState","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getGCSToggleEdge","controllerId","buttonIndex","pressed","previous","undefined","getButtonValue","buttons","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","getVirtualDPadStatesSteelSeriesBT","matches","up","down","left","right","approx","a","b","parseFloat","toFixed","convertSteelSeriesBTToBaseSteelSeries","virtualDPadStates","Object","assign","touched","value","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","entries","control","callbacks","vehicleControl","combinedCommand","consoleDialCommand","values","controller","containsAxis","_c","callback","push","inputType","length","averageValue","reduce","acc","val"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/types/inputMapping/index.ts","../src/types/index.ts","../src/constants/index.ts","../src/utils/gamepadHelper/index.ts","../src/lib/index.ts"],"sourcesContent":["/**\n * ROV Controls\n */\nexport enum RovControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n Fn = \"FN\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n Record = \"RECORD\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n RollLeft = \"ROLL_LEFT\",\n RollRight = \"ROLL_RIGHT\",\n Screenshot = \"SCREENSHOT\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalUp = \"VERTICAL_UP\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n CruiseControl = \"CRUISE_CONTROL\",\n ResetPosture = \"RESET_POSTURE\",\n}\n\n/**\n * Crawler Controls\n */\nexport enum CrawlerControl {\n AuxLight = \"AUX_LIGHT\",\n CameraHome = \"CAMERA_HOME\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DisableMotors = \"DISABLE_MOTORS\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n MainLight = \"MAIN_LIGHT\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Record = \"RECORD\",\n ReelReset = \"REEL_RESET\",\n Screenshot = \"SCREENSHOT\",\n SwitchCamera = \"SWITCH_CAMERA\",\n TiltDown = \"TILT_DOWN\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * All Vehicle Controls\n */\nexport enum VehicleControl {\n AltitudeLock = \"ALTITUDE_LOCK\",\n AutoStabilization = \"AUTO_STABILIZATION\",\n AuxLight = \"AUX_LIGHT\",\n AuxLightBrightness = \"AUX_LIGHT_BRIGHTNESS\",\n CameraHome = \"CAMERA_HOME\",\n ChangeSonarFrequency = \"CHANGE_SONAR_FREQUENCY\",\n CrawlerDrive = \"CRAWLER_DRIVE\",\n CrawlerForward = \"CRAWLER_FORWARD\",\n CrawlerLeft = \"CRAWLER_LEFT\",\n CrawlerReverse = \"CRAWLER_REVERSE\",\n CrawlerRight = \"CRAWLER_RIGHT\",\n CrawlerSteer = \"CRAWLER_STEER\",\n CruiseControl = \"CRUISE_CONTROL\",\n DecreaseAuxLightBrightness = \"DECREASE_AUX_LIGHT_BRIGHTNESS\",\n DecreaseExposure = \"DECREASE_EXPOSURE\",\n DecreaseFocus = \"FOCUS_DECREASE\",\n DecreaseLateralGain = \"DECREASE_LATERAL_GAIN\",\n DecreaseMainLightBrightness = \"DECREASE_MAIN_LIGHT_BRIGHTNESS\",\n DecreaseRollPitchGain = \"DECREASE_ROLL_PITCH_GAIN\",\n DecreaseSonarGain = \"DECREASE_SONAR_GAIN\",\n DecreaseSonarRange = \"DECREASE_SONAR_RANGE\",\n DecreaseSpeedGain = \"DECREASE_SPEED_GAIN\",\n DecreaseSteerGain = \"DECREASE_STEER_GAIN\",\n DecreaseVerticalGain = \"DECREASE_VERTICAL_GAIN\",\n DepthLock = \"DEPTH_LOCK\",\n DisableMotors = \"DISABLE_MOTORS\",\n DistanceLock = \"DISTANCE_LOCK\",\n ElevatingArm = \"ELEVATING_ARM\",\n ElevatingArmAscend = \"ELEVATING_ARM_ASCEND\",\n ElevatingArmDescend = \"ELEVATING_ARM_DESCEND\",\n Exposure = \"EXPOSURE\",\n Focus = \"FOCUS\",\n Fn = \"FN\",\n Grabber = \"GRABBER\",\n GrabberClose = \"GRABBER_CLOSE\",\n GrabberOpen = \"GRABBER_OPEN\",\n GrabberRotateLeft = \"GRABBER_ROTATE_LEFT\",\n GrabberRotateRight = \"GRABBER_ROTATE_RIGHT\",\n HeadingLock = \"HEADING_LOCK\",\n IncreaseAuxLightBrightness = \"INCREASE_AUX_LIGHT_BRIGHTNESS\",\n IncreaseExposure = \"EXPOSURE_INCREASE\",\n IncreaseFocus = \"FOCUS_INCREASE\",\n IncreaseLateralGain = \"INCREASE_LATERAL_GAIN\",\n IncreaseMainLightBrightness = \"INCREASE_MAIN_LIGHT_BRIGHTNESS\",\n IncreaseRollPitchGain = \"INCREASE_ROLL_PITCH_GAIN\",\n IncreaseSonarGain = \"INCREASE_SONAR_GAIN\",\n IncreaseSonarRange = \"INCREASE_SONAR_RANGE\",\n IncreaseSpeedGain = \"INCREASE_SPEED_GAIN\",\n IncreaseSteerGain = \"INCREASE_STEER_GAIN\",\n IncreaseVerticalGain = \"INCREASE_VERTICAL_GAIN\",\n Lateral = \"LATERAL\",\n LateralLeft = \"LATERAL_LEFT\",\n LateralGain = \"LATERAL_GAIN\",\n LateralRight = \"LATERAL_RIGHT\",\n MainLight = \"MAIN_LIGHT\",\n MainLightBrightness = \"MAIN_LIGHT_BRIGHTNESS\",\n Pan = \"PAN\",\n PanLeft = \"PAN_LEFT\",\n PanRight = \"PAN_RIGHT\",\n Pitch = \"PITCH\",\n PitchUp = \"PITCH_UP\",\n PitchDown = \"PITCH_DOWN\",\n PitchLock = \"PITCH_LOCK\",\n PrecisionThrusters = \"PRECISION_THRUSTERS\",\n Record = \"RECORD\",\n ReelDisengage = \"REEL_DISENGAGE\",\n ReelMotors = \"REEL_MOTORS\",\n ReelReset = \"REEL_RESET\",\n ResetPosture = \"RESET_POSTURE\",\n ReelTetherIn = \"REEL_TETHER_IN\",\n Roll = \"ROLL\",\n RollLeft = \"ROLL_LEFT\",\n RollPitchGain = \"ROLL_PITCH_GAIN\",\n RollRight = \"ROLL_RIGHT\",\n RotateGrabber = \"ROTATE_GRABBER\",\n Screenshot = \"SCREENSHOT\",\n SonarGain = \"SONAR_GAIN\",\n SonarRange = \"SONAR_RANGE\",\n SpeedGain = \"SPEED_GAIN\",\n StationHolding = \"STATION_HOLDING\",\n SteerGain = \"STEER_GAIN\",\n SwitchCamera = \"SWITCH_CAMERA\",\n ThrusterForward = \"THRUSTER_FORWARD\",\n ThrusterReverse = \"THRUSTER_REVERSE\",\n Thrusters = \"THRUSTER\",\n Tilt = \"TILT\",\n TiltDown = \"TILT_DOWN\",\n TiltPlatform = \"TILT_PLATFORM\",\n TiltPlatformDown = \"TILT_PLATFORM_DOWN\",\n TiltPlatformUp = \"TILT_PLATFORM_UP\",\n TiltUp = \"TILT_UP\",\n ToggleLasers = \"TOGGLE_LASERS\",\n Vertical = \"VERTICAL\",\n VerticalDown = \"VERTICAL_DOWN\",\n VerticalGain = \"VERTICAL_GAIN\",\n VerticalUp = \"VERTICAL_UP\",\n Yaw = \"YAW\",\n YawLeft = \"YAW_LEFT\",\n YawRight = \"YAW_RIGHT\",\n Zoom = \"ZOOM\",\n ZoomIn = \"ZOOM_IN\",\n ZoomOut = \"ZOOM_OUT\",\n}\n\n/**\n * Input Mapping Profile\n */\nexport interface InputMappingProfileStore {\n input_mapping_profile_id: number;\n controller_group_id: number;\n name: string;\n created_at: Date;\n modified_at: Date;\n default: number;\n selected: number;\n inverted: number;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface ControllerGroupStore {\n controller_group_id: number;\n controller_id: string;\n controller_group: string;\n}\n\nexport interface VehicleControlsStore {\n vehicle_control_id: number;\n name: string;\n created_at: Date;\n}\nexport interface MappedInput {\n input_key: string;\n input_type: InputType;\n control_type: ControlType;\n controller_id: string;\n fnProfile?: boolean;\n}\nexport enum ControlType {\n Vehicle = \"VEHICLE\",\n Camera = \"CAMERA\",\n /** @deprecated use `Miscellaneous` */\n Reel = \"REEL\",\n Lights = \"LIGHTS\",\n IntelligentModes = \"INTELLIGENT_MODES\",\n /** @deprecated use `IntelligentModes` */\n IntelligentMode = \"INTELLIGENT_MODE\",\n Tools = \"TOOLS\",\n /** @deprecated use `Tools` */\n Grabber = \"GRABBER\",\n Sonar = \"SONAR\",\n Menu = \"MENU\",\n Miscellaneous = \"MISCELLANEOUS\",\n}\nexport interface RawInput {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n control_type: ControlType;\n name: string;\n control_name: VehicleControl;\n created_at: string;\n fn_profile_id?: number;\n fnProfile?: boolean;\n}\nexport interface InputMapStore {\n input_mapping_profile_id: number;\n vehicle_control_id: number;\n input_key: string;\n input_type: InputType;\n controller_id: string;\n name: string;\n control_name: string;\n created_at: string;\n}\nexport enum InputType {\n JoystickAxis = \"AXIS\",\n JoystickButton = \"BUTTON\",\n KeyboardKey = \"KEY\",\n}\n\nexport interface CombinedCommand {\n positiveCommand: VehicleControl;\n negativeCommand: VehicleControl;\n}\n","export enum DefaultControllerId {\n TABLET_CONTROLLER_ID = \"Deep Trekker Controller v1.0 (Vendor: 0483 Product: 572b)\",\n STEELSERIES_CONTROLLER_ID = \"Xbox 360 Controller (XInput STANDARD GAMEPAD)\",\n STEELSERIES_CONTROLLER_BLUETOOTH_ID = \"SteelSeries Stratus Duo (Vendor: 0111 Product: 1431)\",\n KEYBOARD_ID = \"KEYBOARD\",\n VKBSIM_GLADIATOR_L_ID = \" VKBsim Gladiator EVO L (Vendor: 231d Product: 0201)\",\n VKBSIM_GLADIATOR_R_ID = \" VKBsim Gladiator EVO R (Vendor: 231d Product: 0200)\",\n PLAYSTATION_CONTROLLER_ID = \"DualSense Wireless Controller (STANDARD GAMEPAD Vendor: 054c Product: 0ce6)\",\n XBOX_ONE_GAMEPAD_ID = \"HID-compliant game controller (STANDARD GAMEPAD Vendor: 045e Product: 0b13)\",\n CONSOLE_CONTROLLER = \"Deep Trekker Console Controller v1.0 (Vendor: 0483 Product: 572c)\",\n FLIGHT_JOYSTICK = \"Extreme 3D pro (Vendor: 046d Product: c215)\",\n GCS_CONTROLLER = \"GCS Joystick (Vendor: 2e3c Product: 5710)\",\n}\n\nexport const COMMON_DEFAULT_CONTROLLER_NAMES: Record<\n DefaultControllerId,\n string\n> = {\n [DefaultControllerId.TABLET_CONTROLLER_ID]: \"Deep Trekker Tablet\",\n [DefaultControllerId.KEYBOARD_ID]: \"Keyboard\",\n [DefaultControllerId.VKBSIM_GLADIATOR_L_ID]:\n \"VKBsim Gladiator EVO L (VKB Sim)\",\n [DefaultControllerId.VKBSIM_GLADIATOR_R_ID]:\n \"VKBsim Gladiator EVO R (VKB Sim)\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_ID]: \"Gamepad\",\n [DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID]:\n \"Gamepad (Bluetooth)\",\n [DefaultControllerId.PLAYSTATION_CONTROLLER_ID]:\n \"DualSense Wireless Controller (Gamepad)\",\n [DefaultControllerId.XBOX_ONE_GAMEPAD_ID]:\n \"Xbox One Wireless Controller (Gamepad)\",\n [DefaultControllerId.CONSOLE_CONTROLLER]: \"Deep Trekker Console\",\n [DefaultControllerId.FLIGHT_JOYSTICK]: \"Flight joystick\",\n [DefaultControllerId.GCS_CONTROLLER]: \"GCS Controller\",\n};\n\nexport * from \"./inputMapping\";\nexport * from \"./deadZoning\";\n","import {\n CombinedCommand,\n ControlType,\n RovControl,\n VehicleControl,\n} from \"@types\";\n\nexport const RATE_COMMANDS: Partial<Record<VehicleControl, boolean>> = {\n [VehicleControl.CrawlerLeft]: true,\n [VehicleControl.CrawlerRight]: true,\n [VehicleControl.CrawlerForward]: true,\n [VehicleControl.CrawlerReverse]: true,\n [VehicleControl.TiltDown]: true,\n [VehicleControl.TiltUp]: true,\n [VehicleControl.PanLeft]: true,\n [VehicleControl.PanRight]: true,\n [VehicleControl.ReelDisengage]: true,\n [VehicleControl.ReelTetherIn]: true,\n};\n\nconst REEL_MOTORS: CombinedCommand = {\n positiveCommand: VehicleControl.ReelDisengage,\n negativeCommand: VehicleControl.ReelTetherIn,\n};\n\nconst CRAWLER_DRIVE: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerForward,\n negativeCommand: VehicleControl.CrawlerReverse,\n};\n\nconst CRAWLER_STEER: CombinedCommand = {\n positiveCommand: VehicleControl.CrawlerRight,\n negativeCommand: VehicleControl.CrawlerLeft,\n};\n\nconst ELEVATING_ARM: CombinedCommand = {\n positiveCommand: VehicleControl.ElevatingArmAscend,\n negativeCommand: VehicleControl.ElevatingArmDescend,\n};\nconst PAN: CombinedCommand = {\n positiveCommand: VehicleControl.PanRight,\n negativeCommand: VehicleControl.PanLeft,\n};\nconst TILT: CombinedCommand = {\n positiveCommand: VehicleControl.TiltUp,\n negativeCommand: VehicleControl.TiltDown,\n};\nconst FOCUS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseFocus,\n negativeCommand: VehicleControl.DecreaseFocus,\n};\nconst EXPOSURE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseExposure,\n negativeCommand: VehicleControl.DecreaseExposure,\n};\nconst ZOOM: CombinedCommand = {\n positiveCommand: VehicleControl.ZoomIn,\n negativeCommand: VehicleControl.ZoomOut,\n};\n\nconst THRUSTERS: CombinedCommand = {\n positiveCommand: VehicleControl.ThrusterForward,\n negativeCommand: VehicleControl.ThrusterReverse,\n};\n\nconst YAW: CombinedCommand = {\n positiveCommand: VehicleControl.YawRight,\n negativeCommand: VehicleControl.YawLeft,\n};\n\nconst LATERAL: CombinedCommand = {\n positiveCommand: VehicleControl.LateralRight,\n negativeCommand: VehicleControl.LateralLeft,\n};\n\nconst VERTICAL: CombinedCommand = {\n positiveCommand: VehicleControl.VerticalUp,\n negativeCommand: VehicleControl.VerticalDown,\n};\n\nconst ROLL: CombinedCommand = {\n positiveCommand: VehicleControl.RollLeft,\n negativeCommand: VehicleControl.RollRight,\n};\n\nconst PITCH: CombinedCommand = {\n positiveCommand: VehicleControl.PitchUp,\n negativeCommand: VehicleControl.PitchDown,\n};\n\nconst GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberOpen,\n negativeCommand: VehicleControl.GrabberClose,\n};\n\nconst ROTATE_GRABBER: CombinedCommand = {\n positiveCommand: VehicleControl.GrabberRotateRight,\n negativeCommand: VehicleControl.GrabberRotateLeft,\n};\nconst TILT_PLATFORM: CombinedCommand = {\n positiveCommand: VehicleControl.TiltPlatformUp,\n negativeCommand: VehicleControl.TiltPlatformDown,\n};\nconst MAIN_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseMainLightBrightness,\n negativeCommand: VehicleControl.DecreaseMainLightBrightness,\n};\nconst AUX_LIGHT_BRIGHTNESS: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseAuxLightBrightness,\n negativeCommand: VehicleControl.DecreaseAuxLightBrightness,\n};\nconst SPEED_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSpeedGain,\n negativeCommand: VehicleControl.DecreaseSpeedGain,\n};\nconst STEER_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSteerGain,\n negativeCommand: VehicleControl.DecreaseSteerGain,\n};\nconst SONAR_RANGE: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarRange,\n negativeCommand: VehicleControl.DecreaseSonarRange,\n};\nconst SONAR_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseSonarGain,\n negativeCommand: VehicleControl.DecreaseSonarGain,\n};\n\nconst LATERAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseLateralGain,\n negativeCommand: VehicleControl.DecreaseLateralGain,\n};\nconst PITCH_ROLL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseRollPitchGain,\n negativeCommand: VehicleControl.DecreaseRollPitchGain,\n};\nconst VERTICAL_GAIN: CombinedCommand = {\n positiveCommand: VehicleControl.IncreaseVerticalGain,\n negativeCommand: VehicleControl.DecreaseVerticalGain,\n};\nexport const COMBINED_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.ReelMotors]: REEL_MOTORS,\n [VehicleControl.CrawlerDrive]: CRAWLER_DRIVE,\n [VehicleControl.CrawlerSteer]: CRAWLER_STEER,\n [VehicleControl.ElevatingArm]: ELEVATING_ARM,\n [VehicleControl.Pan]: PAN,\n [VehicleControl.Tilt]: TILT,\n [VehicleControl.Focus]: FOCUS,\n [VehicleControl.Exposure]: EXPOSURE,\n [VehicleControl.Zoom]: ZOOM,\n [VehicleControl.Thrusters]: THRUSTERS,\n [VehicleControl.Yaw]: YAW,\n [VehicleControl.Lateral]: LATERAL,\n [VehicleControl.Vertical]: VERTICAL,\n [VehicleControl.Roll]: ROLL,\n [VehicleControl.Pitch]: PITCH,\n [VehicleControl.Grabber]: GRABBER,\n [VehicleControl.RotateGrabber]: ROTATE_GRABBER,\n [VehicleControl.TiltPlatform]: TILT_PLATFORM,\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.LateralGain]: LATERAL_GAIN,\n [VehicleControl.VerticalGain]: VERTICAL_GAIN,\n [VehicleControl.RollPitchGain]: PITCH_ROLL_GAIN,\n\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const CONSOLE_DIAL_COMMANDS: Partial<\n Record<VehicleControl, CombinedCommand>\n> = {\n [VehicleControl.MainLightBrightness]: MAIN_LIGHT_BRIGHTNESS,\n [VehicleControl.AuxLightBrightness]: AUX_LIGHT_BRIGHTNESS,\n [VehicleControl.SpeedGain]: SPEED_GAIN,\n [VehicleControl.SteerGain]: STEER_GAIN,\n [VehicleControl.SonarRange]: SONAR_RANGE,\n [VehicleControl.SonarGain]: SONAR_GAIN,\n};\n\nexport const DEFAULT_DEAD_ZONE = 20;\n\nexport const POSITIVE_COMMAND_INDICATOR = \"+\";\nexport const NEGATIVE_COMMAND_INDICATOR = \"-\";\nexport const SPACE_BETWEEN_INDEX_AND_INDICATOR = \" \";\n\nexport const readableMappingROV: Record<string, string> = {\n [VehicleControl.MainLight]: \"Main light on/off\",\n [VehicleControl.AuxLight]: \"Aux light on/off\",\n [VehicleControl.ToggleLasers]: \"Lasers on/off\",\n [VehicleControl.IncreaseMainLightBrightness]: \"Increase main LED\",\n [VehicleControl.DecreaseMainLightBrightness]: \"Decrease main LED\",\n [VehicleControl.IncreaseAuxLightBrightness]: \"Increase aux LED\",\n [VehicleControl.DecreaseAuxLightBrightness]: \"Decrease aux LED\",\n\n [VehicleControl.CruiseControl]: \"CC/Retrieval\",\n [VehicleControl.ResetPosture]: \"Reset Posture\",\n [VehicleControl.ReelReset]: \"Reel reset [hold]\",\n [VehicleControl.SwitchCamera]: \"Camera switch\",\n\n [VehicleControl.ThrusterForward]: \"Thruster forward\",\n [VehicleControl.ThrusterReverse]: \"Thruster reverse\",\n [VehicleControl.YawLeft]: \"Yaw left\",\n [VehicleControl.YawRight]: \"Yaw right\",\n [VehicleControl.LateralLeft]: \"Lateral left\",\n [VehicleControl.LateralRight]: \"Lateral right\",\n [VehicleControl.VerticalUp]: \"Vertical up\",\n [VehicleControl.VerticalDown]: \"Vertical down\",\n [VehicleControl.PitchUp]: \"Pitch up\",\n [VehicleControl.PitchDown]: \"Pitch down\",\n [VehicleControl.RollLeft]: \"Roll left\",\n [VehicleControl.RollRight]: \"Roll right\",\n [VehicleControl.DisableMotors]: \"Disable motors\",\n [VehicleControl.IncreaseSpeedGain]: \"Increase speed gain\",\n [VehicleControl.DecreaseSpeedGain]: \"Decrease speed gain\",\n [VehicleControl.IncreaseSteerGain]: \"Increase steer gain\",\n [VehicleControl.DecreaseSteerGain]: \"Decrease steer gain\",\n [VehicleControl.IncreaseLateralGain]: \"Increase lateral gain\",\n [VehicleControl.DecreaseLateralGain]: \"Decrease lateral gain\",\n [VehicleControl.IncreaseVerticalGain]: \"Increase vertical gain\",\n [VehicleControl.DecreaseVerticalGain]: \"Decrease vertical gain\",\n [VehicleControl.IncreaseRollPitchGain]: \"Increase pitch/roll gain\",\n [VehicleControl.DecreaseRollPitchGain]: \"Decrease pitch/roll gain\",\n\n [VehicleControl.DepthLock]: \"Depth lock\",\n [VehicleControl.AltitudeLock]: \"Altitude lock\",\n [VehicleControl.HeadingLock]: \"Heading lock\",\n [VehicleControl.PitchLock]: \"Pitch lock\",\n [VehicleControl.AutoStabilization]: \"Auto stabilization on/off\",\n [VehicleControl.StationHolding]: \"Station holding on/off\",\n [VehicleControl.DistanceLock]: \"Distance lock\",\n [VehicleControl.PrecisionThrusters]: \"Precision thrusters on/off\",\n\n [VehicleControl.TiltUp]: \"Camera tilt Up\",\n [VehicleControl.TiltDown]: \"Camera tilt Down\",\n [VehicleControl.ZoomIn]: \"Zoom in\",\n [VehicleControl.ZoomOut]: \"Zoom out\",\n [VehicleControl.CameraHome]: \"Camera home\",\n [VehicleControl.Record]: \"Record\",\n [VehicleControl.Screenshot]: \"Snapshot\",\n\n [VehicleControl.IncreaseSonarRange]: \"Increase sonar range\",\n [VehicleControl.DecreaseSonarRange]: \"Decrease sonar range\",\n [VehicleControl.IncreaseSonarGain]: \"Increase sonar gain\",\n [VehicleControl.DecreaseSonarGain]: \"Decrease sonar gain\",\n [VehicleControl.ChangeSonarFrequency]: \"Change sonar frequency\",\n\n [VehicleControl.GrabberOpen]: \"Grabber open\",\n [VehicleControl.GrabberClose]: \"Grabber close\",\n [VehicleControl.GrabberRotateLeft]: \"Grabber rotate left\",\n [VehicleControl.GrabberRotateRight]: \"Grabber rotate right\",\n [VehicleControl.TiltPlatformUp]: \"Tilt platform up\",\n [VehicleControl.TiltPlatformDown]: \"Tilt platform down\",\n\n [VehicleControl.IncreaseFocus]: \"Increase focus\",\n [VehicleControl.DecreaseFocus]: \"Decrease focus\",\n [VehicleControl.IncreaseExposure]: \"Increase exposure\",\n [VehicleControl.DecreaseExposure]: \"Decrease exposure\",\n\n [VehicleControl.Fn]: \"FN\",\n [VehicleControl.ReelTetherIn]: \"Reel tether in\",\n};\n\nexport const INPUT_MAP_SECTIONS: Record<RovControl, ControlType> = {\n [RovControl.ThrusterForward]: ControlType.Vehicle,\n [RovControl.ThrusterReverse]: ControlType.Vehicle,\n [RovControl.YawLeft]: ControlType.Vehicle,\n [RovControl.YawRight]: ControlType.Vehicle,\n [RovControl.LateralLeft]: ControlType.Vehicle,\n [RovControl.LateralRight]: ControlType.Vehicle,\n [RovControl.VerticalUp]: ControlType.Vehicle,\n [RovControl.VerticalDown]: ControlType.Vehicle,\n [RovControl.DisableMotors]: ControlType.Vehicle,\n [RovControl.PitchUp]: ControlType.Vehicle,\n [RovControl.PitchDown]: ControlType.Vehicle,\n [RovControl.RollLeft]: ControlType.Vehicle,\n [RovControl.RollRight]: ControlType.Vehicle,\n [RovControl.IncreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.DecreaseSpeedGain]: ControlType.Vehicle,\n [RovControl.IncreaseSteerGain]: ControlType.Vehicle,\n [RovControl.DecreaseSteerGain]: ControlType.Vehicle,\n [RovControl.IncreaseLateralGain]: ControlType.Vehicle,\n [RovControl.DecreaseLateralGain]: ControlType.Vehicle,\n [RovControl.IncreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.DecreaseVerticalGain]: ControlType.Vehicle,\n [RovControl.IncreaseRollPitchGain]: ControlType.Vehicle,\n [RovControl.DecreaseRollPitchGain]: ControlType.Vehicle,\n\n [RovControl.CruiseControl]: ControlType.Vehicle,\n [RovControl.ResetPosture]: ControlType.Vehicle,\n\n [RovControl.DepthLock]: ControlType.IntelligentModes,\n [RovControl.AltitudeLock]: ControlType.IntelligentModes,\n [RovControl.HeadingLock]: ControlType.IntelligentModes,\n [RovControl.AutoStabilization]: ControlType.IntelligentModes,\n [RovControl.DistanceLock]: ControlType.IntelligentModes,\n\n [RovControl.MainLight]: ControlType.Lights,\n [RovControl.AuxLight]: ControlType.Lights,\n [RovControl.ToggleLasers]: ControlType.Lights,\n [RovControl.IncreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseMainLightBrightness]: ControlType.Lights,\n [RovControl.IncreaseAuxLightBrightness]: ControlType.Lights,\n [RovControl.DecreaseAuxLightBrightness]: ControlType.Lights,\n\n [RovControl.TiltUp]: ControlType.Camera,\n [RovControl.TiltDown]: ControlType.Camera,\n [RovControl.ZoomIn]: ControlType.Camera,\n [RovControl.ZoomOut]: ControlType.Camera,\n [RovControl.CameraHome]: ControlType.Camera,\n [RovControl.Screenshot]: ControlType.Camera,\n [RovControl.Record]: ControlType.Camera,\n\n [RovControl.IncreaseSonarRange]: ControlType.Sonar,\n [RovControl.DecreaseSonarRange]: ControlType.Sonar,\n [RovControl.IncreaseSonarGain]: ControlType.Sonar,\n [RovControl.DecreaseSonarGain]: ControlType.Sonar,\n [RovControl.ChangeSonarFrequency]: ControlType.Sonar,\n\n [RovControl.GrabberOpen]: ControlType.Tools,\n [RovControl.GrabberClose]: ControlType.Tools,\n [RovControl.GrabberRotateLeft]: ControlType.Tools,\n [RovControl.GrabberRotateRight]: ControlType.Tools,\n [RovControl.TiltPlatformUp]: ControlType.Tools,\n [RovControl.TiltPlatformDown]: ControlType.Tools,\n\n [RovControl.Fn]: ControlType.Miscellaneous,\n [RovControl.ReelTetherIn]: ControlType.Miscellaneous,\n};\n\nexport const INPUT_CATEGORIES_LABELS: Record<ControlType, string> = {\n [ControlType.Vehicle]: \"Thruster controls\",\n [ControlType.Camera]: \"Camera controls\",\n [ControlType.Tools]: \"Grabber/tools\",\n [ControlType.Grabber]: \"Grabber/tools\",\n [ControlType.IntelligentMode]: \"Intelligent modes\",\n [ControlType.Reel]: \"Miscellaneous\",\n [ControlType.IntelligentModes]: \"Intelligent modes\",\n [ControlType.Lights]: \"Lights/lasers\",\n [ControlType.Menu]: \"Menu Navigation\",\n [ControlType.Miscellaneous]: \"Miscellaneous\",\n [ControlType.Sonar]: \"Sonar controls\",\n};\n","import {\n DEFAULT_DEAD_ZONE,\n NEGATIVE_COMMAND_INDICATOR,\n POSITIVE_COMMAND_INDICATOR,\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n} from \"@constants\";\nimport {\n InputType,\n MappedInput,\n DeadZoneProfiles,\n DefaultControllerId,\n} from \"@types\";\n\nconst gcsToggleState: Record<string, boolean | undefined> = {};\n\nexport function checkKeyPress(\n keys: string[],\n keysPressed: Record<string, boolean>,\n) {\n const activeElem = document.activeElement?.tagName || \"\";\n if (activeElem === \"INPUT\" || activeElem === \"TEXTAREA\") {\n return false;\n }\n let keysFound = true;\n keys.forEach((key) => {\n if (!keysPressed[key]) {\n keysFound = false;\n }\n });\n return keysFound;\n}\nexport function getAxisValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let axisValue = 0;\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n axisValue = gamepad.axes[index];\n }\n });\n return Math.round(axisValue * 100);\n}\nexport function getGCSToggleEdge(\n controllerId: string,\n buttonIndex: number,\n pressed: boolean,\n) {\n const key = `${controllerId}:${buttonIndex}`;\n const previous = gcsToggleState[key];\n\n if (previous === undefined) {\n gcsToggleState[key] = pressed;\n } else if (previous !== pressed) {\n gcsToggleState[key] = pressed;\n }\n return gcsToggleState[key];\n}\n\nexport function getButtonValue(\n controllerID: string,\n index: number,\n gamepads: (Gamepad | null)[],\n) {\n let pressed = false;\n\n gamepads.forEach((gamepad) => {\n if (gamepad && gamepad.id === controllerID) {\n pressed = !!gamepad.buttons[index]?.pressed;\n }\n });\n\n if (\n controllerID === DefaultControllerId.GCS_CONTROLLER &&\n (index === 8 || index === 9)\n ) {\n return getGCSToggleEdge(controllerID, index, pressed);\n }\n\n // All other buttons → normal behavior\n return pressed;\n}\n\nexport function decodeBooleanMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return false;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return false;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n return checkKeyPress(\n input_key.split(POSITIVE_COMMAND_INDICATOR),\n keysPressed,\n );\n case InputType.JoystickAxis:\n const mappingIndex = input_key.includes(\n SPACE_BETWEEN_INDEX_AND_INDICATOR,\n )\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] || DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n return axisValue > deadZoneValue;\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n return axisValue < -1 * deadZoneValue;\n } else {\n return false;\n }\n case InputType.JoystickButton:\n return getButtonValue(controller_id, +input_key, gamepads);\n default:\n return false;\n }\n}\nexport function decodeRateMapping(\n mapping: MappedInput | undefined,\n gamepads: (Gamepad | null)[],\n keysPressed: Record<string, boolean>,\n deadZones: DeadZoneProfiles,\n) {\n if (!mapping) {\n return 0;\n }\n const { input_type, input_key, controller_id } = mapping;\n if (!controller_id && input_type !== InputType.KeyboardKey) {\n return 0;\n }\n switch (input_type) {\n case InputType.KeyboardKey:\n if (checkKeyPress(input_key.split(\"+\"), keysPressed)) {\n return 100;\n } else {\n return 0;\n }\n case InputType.JoystickAxis:\n const mappingIndex =\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR) > -1\n ? +input_key.substring(\n 0,\n input_key.indexOf(SPACE_BETWEEN_INDEX_AND_INDICATOR),\n )\n : +input_key;\n const axisValue = getAxisValue(\n controller_id,\n mappingIndex,\n gamepads,\n );\n const deadZoneValue =\n deadZones[controller_id]?.[mappingIndex] ?? DEFAULT_DEAD_ZONE;\n if (input_key.includes(POSITIVE_COMMAND_INDICATOR)) {\n if (axisValue >= deadZoneValue) {\n return scaleRateAroundDeadZone(axisValue, deadZoneValue);\n } else {\n return 0;\n }\n } else if (input_key.includes(NEGATIVE_COMMAND_INDICATOR)) {\n if (axisValue <= -1 * deadZoneValue) {\n return scaleRateAroundDeadZone(\n Math.abs(axisValue),\n deadZoneValue,\n );\n } else {\n return 0;\n }\n } else {\n return axisValue;\n }\n case InputType.JoystickButton:\n const buttonPressed = getButtonValue(\n controller_id,\n +input_key,\n gamepads,\n );\n if (buttonPressed) {\n return 100;\n } else {\n return 0;\n }\n default:\n return 0;\n }\n}\n\nconst scaleRateAroundDeadZone = (rate: number, deadZone: number) =>\n Math.floor(((rate - deadZone) / (100 - deadZone)) * 100);\n\n// Assigns unique Ids to controller ids. Adds a (2), (3), etc... depending on the amount of occurrences of the same Id.\nexport function assignUniqueIds(gamepads: (Gamepad | null)[]) {\n const idCounts: Record<string, number> = {};\n return Array.from(gamepads)\n .filter(\n (gamepad): gamepad is Gamepad =>\n gamepad !== null && gamepad.id !== undefined,\n )\n .map((gamepad) => {\n const baseId = gamepad.id;\n idCounts[baseId] = (idCounts[baseId] || 0) + 1;\n const uniqueId =\n idCounts[baseId] > 1\n ? `${baseId} (${idCounts[baseId]})`\n : baseId;\n return new Proxy(gamepad, {\n get(target, prop) {\n // Override `id` property\n if (prop === \"id\") {\n return uniqueId;\n }\n return Reflect.get(target, prop);\n },\n });\n });\n}\n\n/**\n * Interprets the single D-pad axis value (axis 9) from the SteelSeries Bluetooth controller\n * and converts it into a virtual set of D-pad button states (up, down, left, right).\n *\n * Unlike standard controllers that report D-pad directions as individual buttons,\n * the Bluetooth version of the SteelSeries controller encodes D-pad input into a\n * single axis value. This axis represents 8 possible directional combinations:\n * - Cardinal: up (-1), down (~0.14), left (~0.71), right (~-0.43)\n * - Diagonals: up+left (1), up+right (~-0.71), down+right (~-0.14), down+left (~0.43)\n *\n * This function uses approximate matching to account for slight variations in\n * axis values due to analog behavior, and returns an object mapping each D-pad\n * direction to a boolean indicating whether it is active.\n *\n * This enables consistent D-pad handling across SteelSeries controllers, regardless\n * of whether they report the D-pad as buttons (dongle) or a single axis (Bluetooth).\n */\nexport function getVirtualDPadStatesSteelSeriesBT(axisValue: number) {\n const matches = {\n up: false,\n down: false,\n left: false,\n right: false,\n };\n\n const approx = (a: number, b: number) =>\n Math.abs(parseFloat(a.toFixed(2)) - b) < 0.2;\n\n if (approx(axisValue, -1)) {\n matches.up = true;\n } else if (approx(axisValue, 0.14)) {\n matches.down = true;\n } else if (approx(axisValue, 0.71)) {\n matches.left = true;\n } else if (approx(axisValue, -0.43)) {\n matches.right = true;\n } else if (approx(axisValue, 1)) {\n matches.up = true;\n matches.left = true;\n } else if (approx(axisValue, -0.71)) {\n matches.up = true;\n matches.right = true;\n } else if (approx(axisValue, -0.14)) {\n matches.down = true;\n matches.right = true;\n } else if (approx(axisValue, 0.43)) {\n matches.down = true;\n matches.left = true;\n }\n\n return matches;\n}\n\n/**\n * Converts the SteelSeries Bluetooth controller format to a normalized layout\n * matching the dongle version of the same controller.\n *\n * The Bluetooth version of the SteelSeries controller differs from the dongle version\n * in two key ways:\n * 1. The D-pad is reported as a single axis (axis 9) instead of separate buttons (12–15).\n * We use `getVirtualDPadStatesSteelSeriesBT()` to interpret axis 9 and inject\n * virtual D-pad buttons at the correct positions (indices 12–15).\n * 2. The axes and button layout are slightly different from the dongle version, so we\n * remap and reorder them to ensure consistency across both input types.\n *\n * This allows the rest of the application to treat both Bluetooth and dongle-based\n * SteelSeries controllers the same way, avoiding special-case handling elsewhere in the code.\n */\nexport function convertSteelSeriesBTToBaseSteelSeries(gamepad: Gamepad) {\n const virtualDPadStates = getVirtualDPadStatesSteelSeriesBT(\n gamepad.axes[9],\n );\n return {\n ...gamepad,\n id: DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID,\n axes: [\n gamepad.axes[0],\n gamepad.axes[1],\n gamepad.axes[2],\n gamepad.axes[5],\n ],\n buttons: [\n gamepad.buttons[0],\n gamepad.buttons[1],\n gamepad.buttons[3],\n gamepad.buttons[4],\n gamepad.buttons[6],\n gamepad.buttons[7],\n gamepad.buttons[8],\n gamepad.buttons[9],\n gamepad.buttons[10],\n gamepad.buttons[11],\n gamepad.buttons[13],\n gamepad.buttons[14],\n // Inject D-pad buttons at the right indices (12–15)\n {\n pressed: virtualDPadStates.up,\n touched: virtualDPadStates.up,\n value: virtualDPadStates.up ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.down,\n touched: virtualDPadStates.down,\n value: virtualDPadStates.down ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.left,\n touched: virtualDPadStates.left,\n value: virtualDPadStates.left ? 1 : 0,\n },\n {\n pressed: virtualDPadStates.right,\n touched: virtualDPadStates.right,\n value: virtualDPadStates.right ? 1 : 0,\n },\n gamepad.buttons[15],\n ],\n } as Gamepad;\n}\n","import { COMBINED_COMMANDS, CONSOLE_DIAL_COMMANDS } from \"@constants\";\nimport {\n VehicleControl,\n MappedInput,\n DeadZoneProfiles,\n InputType,\n DefaultControllerId,\n} from \"@types\";\nimport {\n decodeRateMapping,\n decodeBooleanMapping,\n assignUniqueIds,\n convertSteelSeriesBTToBaseSteelSeries,\n} from \"@utils\";\n\n/**\n * Used to determine which keys are currently being pressed\n */\nconst keysPressed: Record<string, boolean> = {};\n\nexport const updateKeysPressed = (key: string, pressed: boolean) =>\n (keysPressed[key] = pressed);\n\nexport const clearKeys = () => {\n Object.keys(keysPressed).forEach((key) => {\n keysPressed[key] = false;\n });\n};\n\nexport const poll = (\n activeMapping: Record<string, Record<string, MappedInput>>,\n subscribers: Partial<\n Record<\n VehicleControl,\n Array<\n (\n value: number | boolean,\n controller?: string,\n inputType?: InputType,\n ) => void\n >\n >\n > = {},\n deadZones: DeadZoneProfiles = {},\n) => {\n const gamepads = navigator.getGamepads().map((gamepad) => {\n if (!gamepad) {\n return null;\n } else if (\n gamepad.id ===\n DefaultControllerId.STEELSERIES_CONTROLLER_BLUETOOTH_ID\n ) {\n return convertSteelSeriesBTToBaseSteelSeries(gamepad);\n } else {\n return gamepad;\n }\n });\n const uniqueGamepads = assignUniqueIds(gamepads);\n Object.entries(subscribers).forEach(([control, callbacks]) => {\n const vehicleControl = control as VehicleControl;\n const combinedCommand = COMBINED_COMMANDS[vehicleControl];\n const consoleDialCommand = CONSOLE_DIAL_COMMANDS[vehicleControl];\n let values: { value: number; inputType?: InputType }[] = [];\n Object.keys(activeMapping).forEach((controller) => {\n const mapping = activeMapping[controller];\n if (combinedCommand) {\n const { positiveCommand, negativeCommand } = combinedCommand;\n const positiveValue =\n decodeRateMapping(\n mapping[positiveCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const negativeValue =\n decodeRateMapping(\n mapping[negativeCommand] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ) || 0;\n const value = positiveValue - negativeValue;\n const containsAxis =\n mapping[positiveCommand]?.input_type ===\n InputType.JoystickAxis ||\n mapping[negativeCommand]?.input_type ===\n InputType.JoystickAxis;\n\n // Here we are checking if the command one of the consoles dials, that are set to the sonar gains, light brightness, speeds.\n // If it is we want to return early and fire the command so it doesn't get rounded with the others. This way it can be handled on the web app\n // to ignore the message if need be.\n if (\n consoleDialCommand &&\n controller === DefaultControllerId.CONSOLE_CONTROLLER &&\n containsAxis\n ) {\n callbacks?.forEach((callback) =>\n callback(\n value,\n DefaultControllerId.CONSOLE_CONTROLLER,\n InputType.JoystickAxis,\n ),\n );\n } else if (value !== 0 || containsAxis) {\n values.push({\n value,\n inputType: containsAxis\n ? InputType.JoystickAxis\n : undefined,\n });\n }\n } else {\n callbacks?.forEach((callback) => {\n callback(\n decodeBooleanMapping(\n mapping[vehicleControl] ?? {},\n uniqueGamepads,\n keysPressed,\n deadZones,\n ),\n controller,\n mapping[vehicleControl]?.input_type,\n );\n });\n }\n });\n if (combinedCommand) {\n if (values.length > 0) {\n const averageValue =\n values.reduce((acc, val) => acc + val.value, 0) /\n values.length;\n const inputType = values[0].inputType; // assuming all values have the same input type\n callbacks?.forEach((callback) =>\n callback(averageValue, undefined, inputType),\n );\n } else {\n callbacks?.forEach((callback) => callback(0));\n }\n }\n });\n};\n"],"names":["RovControl","CrawlerControl","VehicleControl","ControlType","InputType","DefaultControllerId","COMMON_DEFAULT_CONTROLLER_NAMES","TABLET_CONTROLLER_ID","KEYBOARD_ID","VKBSIM_GLADIATOR_L_ID","VKBSIM_GLADIATOR_R_ID","STEELSERIES_CONTROLLER_ID","STEELSERIES_CONTROLLER_BLUETOOTH_ID","PLAYSTATION_CONTROLLER_ID","XBOX_ONE_GAMEPAD_ID","CONSOLE_CONTROLLER","FLIGHT_JOYSTICK","GCS_CONTROLLER","RATE_COMMANDS","CrawlerLeft","CrawlerRight","CrawlerForward","CrawlerReverse","TiltDown","TiltUp","PanLeft","PanRight","ReelDisengage","ReelTetherIn","REEL_MOTORS","positiveCommand","negativeCommand","CRAWLER_DRIVE","CRAWLER_STEER","ELEVATING_ARM","ElevatingArmAscend","ElevatingArmDescend","PAN","TILT","FOCUS","IncreaseFocus","DecreaseFocus","EXPOSURE","IncreaseExposure","DecreaseExposure","ZOOM","ZoomIn","ZoomOut","THRUSTERS","ThrusterForward","ThrusterReverse","YAW","YawRight","YawLeft","LATERAL","LateralRight","LateralLeft","VERTICAL","VerticalUp","VerticalDown","ROLL","RollLeft","RollRight","PITCH","PitchUp","PitchDown","GRABBER","GrabberOpen","GrabberClose","ROTATE_GRABBER","GrabberRotateRight","GrabberRotateLeft","TILT_PLATFORM","TiltPlatformUp","TiltPlatformDown","MAIN_LIGHT_BRIGHTNESS","IncreaseMainLightBrightness","DecreaseMainLightBrightness","AUX_LIGHT_BRIGHTNESS","IncreaseAuxLightBrightness","DecreaseAuxLightBrightness","SPEED_GAIN","IncreaseSpeedGain","DecreaseSpeedGain","STEER_GAIN","IncreaseSteerGain","DecreaseSteerGain","SONAR_RANGE","IncreaseSonarRange","DecreaseSonarRange","SONAR_GAIN","IncreaseSonarGain","DecreaseSonarGain","LATERAL_GAIN","IncreaseLateralGain","DecreaseLateralGain","PITCH_ROLL_GAIN","IncreaseRollPitchGain","DecreaseRollPitchGain","VERTICAL_GAIN","IncreaseVerticalGain","DecreaseVerticalGain","COMBINED_COMMANDS","ReelMotors","CrawlerDrive","CrawlerSteer","ElevatingArm","Pan","Tilt","Focus","Exposure","Zoom","Thrusters","Yaw","Lateral","Vertical","Roll","Pitch","Grabber","RotateGrabber","TiltPlatform","MainLightBrightness","AuxLightBrightness","SpeedGain","SteerGain","LateralGain","VerticalGain","RollPitchGain","SonarRange","SonarGain","CONSOLE_DIAL_COMMANDS","POSITIVE_COMMAND_INDICATOR","SPACE_BETWEEN_INDEX_AND_INDICATOR","readableMappingROV","MainLight","AuxLight","ToggleLasers","CruiseControl","ResetPosture","ReelReset","SwitchCamera","DisableMotors","DepthLock","AltitudeLock","HeadingLock","PitchLock","AutoStabilization","StationHolding","DistanceLock","PrecisionThrusters","CameraHome","Record","Screenshot","ChangeSonarFrequency","Fn","INPUT_MAP_SECTIONS","Vehicle","IntelligentModes","Lights","Camera","Sonar","Tools","Miscellaneous","INPUT_CATEGORIES_LABELS","IntelligentMode","Reel","Menu","gcsToggleState","checkKeyPress","keys","keysPressed","activeElem","_a","document","activeElement","tagName","keysFound","forEach","key","getAxisValue","controllerID","index","gamepads","axisValue","gamepad","id","axes","Math","round","getGCSToggleEdge","controllerId","buttonIndex","pressed","previous","undefined","getButtonValue","buttons","decodeBooleanMapping","mapping","deadZones","input_type","input_key","controller_id","KeyboardKey","split","JoystickAxis","mappingIndex","includes","substring","indexOf","deadZoneValue","JoystickButton","decodeRateMapping","_b","scaleRateAroundDeadZone","abs","rate","deadZone","floor","assignUniqueIds","idCounts","Array","from","filter","map","baseId","uniqueId","Proxy","get","target","prop","Reflect","getVirtualDPadStatesSteelSeriesBT","matches","up","down","left","right","approx","a","b","parseFloat","toFixed","convertSteelSeriesBTToBaseSteelSeries","virtualDPadStates","Object","assign","touched","value","activeMapping","subscribers","uniqueGamepads","navigator","getGamepads","entries","control","callbacks","vehicleControl","combinedCommand","consoleDialCommand","values","controller","containsAxis","_c","callback","push","inputType","length","averageValue","reduce","acc","val"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MappedInput, DeadZoneProfiles } from "@types";
|
|
2
2
|
export declare function checkKeyPress(keys: string[], keysPressed: Record<string, boolean>): boolean;
|
|
3
3
|
export declare function getAxisValue(controllerID: string, index: number, gamepads: (Gamepad | null)[]): number;
|
|
4
|
-
export declare function getGCSToggleEdge(controllerId: string, buttonIndex: number, pressed: boolean): boolean;
|
|
5
|
-
export declare function getButtonValue(controllerID: string, index: number, gamepads: (Gamepad | null)[]): boolean;
|
|
6
|
-
export declare function decodeBooleanMapping(mapping: MappedInput | undefined, gamepads: (Gamepad | null)[], keysPressed: Record<string, boolean>, deadZones: DeadZoneProfiles): boolean;
|
|
4
|
+
export declare function getGCSToggleEdge(controllerId: string, buttonIndex: number, pressed: boolean): boolean | undefined;
|
|
5
|
+
export declare function getButtonValue(controllerID: string, index: number, gamepads: (Gamepad | null)[]): boolean | undefined;
|
|
6
|
+
export declare function decodeBooleanMapping(mapping: MappedInput | undefined, gamepads: (Gamepad | null)[], keysPressed: Record<string, boolean>, deadZones: DeadZoneProfiles): boolean | undefined;
|
|
7
7
|
export declare function decodeRateMapping(mapping: MappedInput | undefined, gamepads: (Gamepad | null)[], keysPressed: Record<string, boolean>, deadZones: DeadZoneProfiles): number;
|
|
8
8
|
export declare function assignUniqueIds(gamepads: (Gamepad | null)[]): Gamepad[];
|
|
9
9
|
/**
|