This shows you the differences between two versions of the page.
| gps_target_system:home [2026/10/05 12:29] – created rock | gps_target_system:home [2026/10/05 12:29] (current) – rock | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== RKSL CVWP GPS HUD Integration | + | ====== RKSL CVWP GPS System - Player |
| - | **Audience:** Arma 3 addon authors integrating the RKSL CVWP GPS/release system into a third-party aircraft display. | + | **System:** RKSL Combined Vehicle Weapons Pack (CVWP) GPS Targeting System\\ |
| - | ===== 1. What you are integrating | + | ===== 1. What the GPS system does ===== |
| - | The GPS/ | + | The RKSL CVWP GPS system allows supported weapons to be programmed against a fixed point on the terrain and then provides aircraft-specific steering and release information. |
| + | |||
| + | The same underlying | ||
| + | |||
| + | * a **fixed HUD** such as the Gripen C; | ||
| + | * a **helmet-mounted display (HMD)** such as the StavJet; | ||
| + | * a **UAV/ | ||
| + | * a pilot release display or overlay where the aircraft provides one. | ||
| + | |||
| + | The display may look different, but the target, release-envelope and weapon-guidance logic is shared. | ||
| + | |||
| + | **Important: | ||
| + | |||
| + | ===== 2. Quick start ===== | ||
| + | |||
| + | For a normal single GPS-guided attack: | ||
| + | |||
| + | - Select the GPS-capable weapon you intend to use. | ||
| + | - Open the **RKSL GPS** panel. | ||
| + | | ||
| + | - Select **MAP TARGET**. | ||
| + | - Click the required target point on the map. | ||
| + | - Return to the normal flight view. | ||
| + | - Fly towards the target and use the GPS target cue, LAR/DLZ and XTRK cue to establish | ||
| + | - Wait for **RDY** before releasing. | ||
| + | - Release the weapon. | ||
| + | |||
| + | The weapon is programmed for the point selected on the map. For weapons using RKSL scripted GPS guidance, the weapon will steer towards that point after release. | ||
| + | |||
| + | ===== 3. Opening the RKSL GPS panel ===== | ||
| + | |||
| + | ==== 3.1 Manned aircraft ==== | ||
| + | |||
| + | On normally crewed aircraft, use the Arma action menu and select: | ||
| <code -> | <code -> | ||
| - | CVWP | + | RKSL GPS |
| - | | + | |
| - | selected weapon binding | + | |
| - | release constraints | + | |
| - | dynamic RMIN / RMAX | + | |
| - | release-ready state | + | |
| - | scripted guidance | + | |
| - | | | + | |
| - | +--> Static HUD adapter (aircraft/ | + | |
| - | +--> HMD adapter (head/ | + | |
| - | +--> UAV turret optics (CVWP-owned RscInGameUI resource) | + | |
| </ | </ | ||
| - | Do **not** copy the CVWP GPS solver, queue code, release predictor or guidance loop into your aircraft addon. If you find yourself reimplementing weapon physics in the display addon, the integration has gone wrong. | + | This opens the GPS programming panel. |
| - | The aircraft/display addon owns only: | + | The option is shown when the active |
| - | * dependency on '' | + | ==== 3.2 UAVs - important control limitation ==== |
| - | * display geometry and styling; | + | |
| - | * local MFD/HMD user-channel allocation; | + | |
| - | * projection appropriate to that display type; | + | |
| - | * platform-specific FOV/gimbal tuning where required. | + | |
| - | ===== 2. Requirements ===== | + | When remotely controlling a UAV, the normal Arma action menu is not reliable for accessing vehicle-specific GPS actions. |
| - | Your addon must load after CVWP: | + | This is an Arma remote-control limitation: the action menu can remain associated with the player' |
| - | <code cpp> | + | For UAVs, use the vanilla **Communication menu** instead. |
| - | class CfgPatches | + | |
| - | { | + | With the default Arma command-menu keys: |
| - | class MyAircraft_CVWP_GPS_Patch | + | |
| - | { | + | <code -> |
| - | | + | 0 |
| - | { | + | -> 8 Communications |
| - | " | + | -> RKSL GPS Panel |
| - | " | + | |
| - | }; | + | |
| - | units[] = {}; | + | |
| - | weapons[] = {}; | + | |
| - | }; | + | |
| - | }; | + | |
| </ | </ | ||
| - | For aircraft '' | + | In short: |
| - | < | + | < |
| - | mfdMaxUserValues = 207; | + | 0 > 8 > RKSL GPS Panel |
| </ | </ | ||
| - | If the aircraft already has a larger value, **do not reduce | + | Once the panel is open, it works in the same way as it does in a manned aircraft. |
| - | The selected ammunition must participate in the CVWP GPS system. For CVWP weapons this is generated by the Config Factory. The basic capability marker is: | + | **Do not assume that the absence of '' |
| - | < | + | ===== 4. The GPS panel ===== |
| - | RKSLGPS = 1; | + | |
| + | When the panel opens, it first displays the GPS-capable weapons currently loaded on the active aircraft. | ||
| + | |||
| + | Only supported, loaded GPS weapons are listed. | ||
| + | |||
| + | You can select a weapon using: | ||
| + | |||
| + | * the side soft keys; | ||
| + | * the up/down controls followed by **SEL**; | ||
| + | * the corresponding clickable row where available. | ||
| + | |||
| + | After selecting a weapon, the targeting menu offers: | ||
| + | |||
| + | ^ Option ^ Purpose ^ | ||
| + | | MAP TARGET | Program one target by clicking the map. | | ||
| + | | MANUAL GRID | Enter one target using a grid reference. | | ||
| + | | QUEUE MAP | Program a sequence of targets by clicking the map. | | ||
| + | | QUEUE GRID | Program a sequence of grid targets manually. | | ||
| + | | CLEAR TARGETS | Remove the stored GPS target/ | ||
| + | | BACK | Return to the weapon list. | | ||
| + | |||
| + | ===== 5. Programming a single map target ===== | ||
| + | |||
| + | To program one target: | ||
| + | |||
| + | - Open **RKSL GPS**. | ||
| + | - Select the weapon you intend to release. | ||
| + | - Select **MAP TARGET**. | ||
| + | - The GPS panel closes and the Arma map opens. | ||
| + | - Click once on the required target position. | ||
| + | - The map closes and the target is stored for that weapon type. | ||
| + | |||
| + | The target cue should then appear on the aircraft' | ||
| + | |||
| + | ==== Important: targets are weapon-bound ==== | ||
| + | |||
| + | GPS targets are bound to the ammunition type selected when the target is programmed. | ||
| + | |||
| + | For example: | ||
| + | |||
| + | - program a target while GBU-32 is selected; | ||
| + | - change to another weapon; | ||
| + | - the GBU-32 target remains stored, but the other weapon does not automatically inherit it; | ||
| + | - reselect the GBU-32 and its target becomes active again. | ||
| + | |||
| + | This prevents one weapon type from accidentally consuming another weapon' | ||
| + | |||
| + | On displays that show weapon-selection diagnostics, | ||
| + | |||
| + | ===== 6. Programming a target by grid ===== | ||
| + | |||
| + | Select: | ||
| + | |||
| + | < | ||
| + | MANUAL GRID | ||
| </ | </ | ||
| - | Guided-ballistic and glide weapons require the appropriate additional CVWP guidance profile; do not invent those values in the aircraft HUD patch. | + | The GPS panel accepts: |
| - | ===== 3. Public display API ===== | + | * 4-digit grids; |
| + | * 6-digit grids; | ||
| + | * 8-digit grids; | ||
| + | * 10-digit grids. | ||
| - | For bespoke HUD/HMD integrations, | + | Enter the grid using the panel keypad and press: |
| - | < | + | < |
| - | private _solution = [_vehicle] call RKSLA3_CVWP_fnc_targetCueGetSolution; | + | ENT |
| </ | </ | ||
| - | '' | + | to store the target. |
| - | ^ Index ^ Field ^ Type ^ Notes ^ | + | In single-grid entry mode: |
| - | | 0 | active | BOOL | Valid selected weapon + active target | | + | |
| - | | 1 | source | STRING | Currently '' | + | |
| - | | 2 | targetASL | ARRAY | World target position ASL | | + | |
| - | | 3 | range | NUMBER | Slant range in metres | | + | |
| - | | 4 | offBore | NUMBER | Release/off-boresight angle in degrees | | + | |
| - | | 5 | releaseReady | BOOL | CVWP release decision | | + | |
| - | | 6 | constraint | STRING | '' | + | |
| - | | 7 | queueIndex | NUMBER | Current queue item | | + | |
| - | | 8 | queueCount | NUMBER | Original queue count | | + | |
| - | | 9 | queueText | STRING | e.g. '' | + | |
| - | | 10 | weapon | STRING | Selected weapon class | | + | |
| - | | 11 | magazine | STRING | Selected magazine class | | + | |
| - | | 12 | ammo | STRING | Resolved ammunition class | | + | |
| - | | 13 | tof | NUMBER | Predicted time of flight, when available | | + | |
| - | | 14 | predictedMiss | NUMBER | Predictor output | | + | |
| - | | 15 | allowedMiss | NUMBER | Allowed predictor miss | | + | |
| - | | 16 | predictedCorrectionDemand | NUMBER | Normalised pre-release correction demand | | + | |
| - | | 17 | requiredAlongCorrection | NUMBER | Metres | | + | |
| - | | 18 | requiredCrossCorrection | NUMBER | Metres | | + | |
| - | | 19 | naturalImpactASL | ARRAY | Predicted unguided impact point | | + | |
| - | | 20 | dynamicRMin | NUMBER | Current shared near release boundary | | + | |
| - | | 21 | dynamicRMax | NUMBER | Current shared far release boundary | | + | |
| - | | 22 | usableAuthority | NUMBER | Usable guidance authority fraction | | + | |
| - | | 23 | longitudinalDemandSigned | NUMBER | Signed normalised demand | | + | |
| - | | 24 | lateralDemandSigned | NUMBER | Signed normalised demand | | + | |
| - | For normal production presentation, | + | |
| + | * **CLR** clears the current grid-entry box; | ||
| + | * **SEL** returns to the previous menu. | ||
| - | ===== 4. Common release symbology | + | ===== 7. Target queues |
| - | The validated aircraft displays use the same basic information even though they project it differently: | + | A queue allows several GPS weapons of the same ammunition type to be programmed against a sequence of target points before the attack. |
| - | * **GPS target gate** — world target cue. | + | Targets are used in the order in which they were entered. |
| - | * **LAR/DLZ rail** — short upper/far tick, vertical rail, short lower/near tick, moving current-range marker. | + | |
| - | * **XTRK rail/ | + | |
| - | * **RDY / INH** — use CVWP's '' | + | |
| - | * **RNG** — current target range. | + | |
| - | The display rail does not make the release decision. '' | + | After a weapon consumes |
| - | For ballistic/ | + | Where the aircraft |
| - | < | + | < |
| - | private _release = [_weapon,"","", | + | Q 1/4 |
| + | Q 2/4 | ||
| + | Q 3/4 | ||
| + | Q 4/4 | ||
| </ | </ | ||
| - | Do not use the fallback to override a CVWP release inhibit. | + | ==== 7.1 Queue Map ==== |
| - | ===== 5. Static HUD integration ===== | + | Select: |
| - | A static HUD is physically attached to the aircraft. The GPS cue must move when the **aircraft** moves, not when the pilot free-looks. | + | < |
| + | QUEUE MAP | ||
| + | </ | ||
| - | The tested reference is the Gripen C implementation. | + | The map opens and asks you to click target points. |
| - | ==== 5.1 Confirm the HUD is static ==== | + | **Important quirk:** Map queue mode is based on the number of remaining rounds of the selected GPS ammunition. |
| - | The active HUD class should use the model' | + | If you have six suitable weapons loaded, |
| - | <code cpp> | + | The map queue is committed when the requested number of points has been entered. |
| - | topLeft = " | + | |
| - | topRight = " | + | |
| - | bottomLeft = " | + | |
| - | enableParallax = 0; | + | |
| - | helmetMountedDisplay = 0; | + | |
| - | </ | + | |
| - | Use the actual memory-point names from your model. | + | If you only want a shorter queue, **QUEUE GRID** is usually |
| - | ==== 5.2 Register a local adapter | + | ==== 7.2 Queue Grid ==== |
| - | The example package contains: | + | Select: |
| <code -> | <code -> | ||
| - | cvwp_gps_static_hud_example/ | + | QUEUE GRID |
| - | config.cpp.example | + | |
| - | functions/ | + | |
| - | functions/ | + | |
| - | includes/ | + | |
| - | includes/ | + | |
| </ | </ | ||
| - | The adapter reads '' | + | Enter each grid and press **ENT**. |
| - | ==== 5.3 Merge the MFD bones and draw group ==== | + | The panel advances to the next queue position after each valid entry. |
| - | Inside | + | When you have entered |
| - | Do not replace the aircraft' | + | <code -> |
| + | SEL | ||
| + | </ | ||
| - | ==== 5.4 Use airframe-relative projection ==== | + | to commit the queue. |
| - | The critical rule is: **do not use '' | + | You do not have to fill every available weapon slot before committing |
| - | The example converts | + | **CLR** clears |
| - | <code sqf> | + | ===== 8. Clearing targets ===== |
| - | private _los = vectorNormalized (_targetASL vectorDiff (getPosASL _veh)); | + | |
| - | private _forward | + | |
| - | private _up = vectorNormalized (vectorUp _veh); | + | |
| - | private _right | + | |
| - | private _f = _los vectorDotProduct _forward; | + | From the targeting menu select: |
| - | private _r = _los vectorDotProduct _right; | + | |
| - | private _u = _los vectorDotProduct _up; | + | <code -> |
| + | CLEAR TARGETS | ||
| </ | </ | ||
| - | It then converts horizontal/ | + | or use **CLR** when you are not inside a grid-entry field. |
| - | ==== 5.5 Calibrate | + | This removes |
| - | If your existing HUD has a known angular bone such as a '' | + | The **PWR** button only closes |
| - | Example vehicle hooks supplied by the plugin: | + | This distinction matters with dual-mode weapons: clearing the GPS target may allow the weapon to return to its normal non-GPS seeker mode. |
| - | <code cpp> | + | ===== 9. Dual-mode weapons ===== |
| - | CVWPGPS_StaticHUD_XPerDegree | + | |
| - | CVWPGPS_StaticHUD_YPerDegree | + | |
| - | CVWPGPS_StaticHUD_EdgeMargin | + | |
| - | </ | + | |
| - | These are **display calibration values**, not weapon physics. | + | Some weapons can use more than one guidance mode. |
| - | ==== 5.6 Static HUD acceptance test ==== | + | The GBU-54/B is an example of a weapon that can retain native laser capability while also supporting the RKSL GPS system. |
| - | - Hold the aircraft steady and free-look left/ | + | When a valid GPS target |
| - | - Turn the aircraft: the gate must move across the HUD. | + | |
| - | - Roll/pitch the aircraft: the cue must remain registered to the target | + | |
| - | - Fly through the LAR: range marker should cross FAR, move through the valid zone, then cross NEAR. | + | |
| - | - Release a GPS weapon: guidance behaviour must be unchanged. | + | |
| - | If the cue follows the pilot' | + | If you want to use the weapon' |
| - | ===== 6. Helmet-Mounted Display (HMD) integration ===== | + | |
| + | - establish the required native/ | ||
| + | - release using the normal weapon procedure. | ||
| - | An HMD is different: | + | Changing weapon selection |
| - | The clean separation is: | + | ===== 10. Reading the GPS release symbology ===== |
| - | * **world-locked: | + | Exact layout depends on the aircraft, |
| - | * **helmet-fixed: | + | |
| - | * **aircraft-derived:** XTRK/ | + | |
| - | ==== 6.1 Confirm the target | + | ==== 10.1 GPS target |
| - | Use the aircraft' | + | The target gate marks the programmed |
| - | ==== 6.2 Register the HMD adapter ==== | + | It is a **point-designation cue**, not a moving-target tracker. |
| - | The example package contains: | + | Its presentation depends on the display type: |
| - | < | + | * **Static HUD:** the gate is projected relative to the aircraft and physical HUD. Free-look does not steer it around the HUD. |
| - | cvwp_gps_hmd_example/ | + | |
| - | config.cpp.example | + | |
| - | | + | |
| - | functions/ | + | |
| - | | + | |
| - | includes/ | + | |
| - | </ | + | |
| - | ==== 6.3 Project the world target every rendered frame ==== | + | ==== 10.2 LAR / DLZ ==== |
| - | For an HMD, '' | + | The LAR/ |
| - | <code sqf> | + | In the current aircraft implementations it is shown as a vertical release-range rail. |
| - | private _screen = worldToScreen (ASLToAGL _targetASL); | + | |
| - | </ | + | |
| - | The example updates target X/Y every frame but throttles | + | The upper and lower boundaries represent |
| - | ==== 6.4 Keep release symbology helmet-fixed ==== | + | A moving marker represents the aircraft' |
| - | Do not parent the LAR and status block to the moving target gate. LAR/ | + | The LAR can change |
| - | ==== 6.5 HMD acceptance test ==== | + | * speed changes; |
| + | * altitude changes; | ||
| + | * heading/ | ||
| + | * the selected weapon changes. | ||
| - | - Keep aircraft attitude constant | + | For guided ballistic |
| - | - LAR/ | + | |
| - | - Look away far enough: the target gate should clip/hide cleanly at the useful HMD boundary. | + | |
| - | - Re-centre the view: the gate should return to the correct target position. | + | |
| - | - Aircraft manoeuvre must still change XTRK and release state because those values are aircraft-relative. | + | |
| - | ===== 7. UAV / turret optics integration ===== | + | **Being visually inside the LAR does not override another active constraint. Always confirm '' |
| - | For a UAV sensor turret, do **not** build another copy of the MQ-9 HUD scripts. CVWP owns a reusable sensor-operator optics resource. | + | ==== 10.3 XTRK ==== |
| - | CVWP provides: | + | XTRK is the cross-track steering cue. |
| - | <code cpp> | + | It shows whether the target lies left or right of the current attack/release path. |
| - | RKSLA3_CVWP_UAVHUD_GunnerOptics | + | |
| - | RKSLA3_CVWP_UAVHUD_PilotReleaseOverlay | + | |
| - | </code> | + | |
| - | and the function/runtime namespace: | + | For the best release: |
| + | |||
| + | * fly the XTRK cursor towards the centre of its rail; | ||
| + | * avoid making large last-second heading changes; | ||
| + | * then confirm the release state. | ||
| + | |||
| + | The production displays deliberately omit an '' | ||
| + | |||
| + | ==== 10.4 RNG ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | Depending on the aircraft it may be shown in metres or kilometres. | ||
| + | |||
| + | ==== 10.5 TOF ==== | ||
| + | |||
| + | Where fitted, '' | ||
| + | |||
| + | Not every aircraft display shows TOF. | ||
| + | |||
| + | ==== 10.6 RDY and INH / INHIBIT ==== | ||
| + | |||
| + | '' | ||
| + | |||
| + | '' | ||
| + | |||
| + | **Important: | ||
| + | |||
| + | ===== 11. Common inhibit reasons ===== | ||
| + | |||
| + | Some aircraft show a short constraint code beside the release state. | ||
| + | |||
| + | ^ Code ^ Meaning ^ What to do ^ | ||
| + | | OK | Current GPS release solution is acceptable. | Release when required. | | ||
| + | | NO TGT | No valid target is available for the selected weapon. | Program a target or select the weapon for which a target is already stored. | | ||
| + | | RNG | Target is outside the current usable release range. | Continue the approach or reposition until the LAR/release state becomes valid. | | ||
| + | | ANG | Target is outside the permitted off-boresight geometry. | Turn/ | ||
| + | | ALT | Release altitude/ | ||
| + | | SPD | Aircraft speed is too low for the current release solution. | Increase speed or change the attack profile. | | ||
| + | | TOF | Predicted flight time is outside the allowed solution. | Reposition and establish a more suitable release. | | ||
| + | | MISS | Predicted weapon correction/ | ||
| + | | SAFE | Weapon/ | ||
| + | | LOCK | A weapon requiring lock/seeker confirmation has not reached a valid lock state. | Maintain the designation/ | ||
| + | | GMBL | UAV/sensor gimbal geometry is at or beyond a usable limit. | Re-slew or reposition the aircraft. | | ||
| + | | STALE | Stored targeting information is no longer considered current where this state is used. | Re-program or refresh the target. | | ||
| + | | QUEUE | A queue exists but there is no usable current queued target. | Check the queue/ | ||
| + | |||
| + | Not every weapon or aircraft uses every code. | ||
| + | |||
| + | ===== 12. Recommended attack technique ===== | ||
| + | |||
| + | For GPS bombs and glide weapons: | ||
| + | |||
| + | - Program the target before the final attack run. | ||
| + | - Select the same weapon type used when the target was programmed. | ||
| + | - Approach with the target generally ahead of the aircraft. | ||
| + | - Use XTRK to reduce lateral error. | ||
| + | - Watch the LAR as you approach. | ||
| + | - Wait for **RDY**. | ||
| + | - Release without a large abrupt manoeuvre at the moment of release. | ||
| + | - Allow the weapon to fly; do not expect the GPS point to follow a moving target. | ||
| + | |||
| + | For powered GPS weapons, the exact appearance of the release cue may differ, but the same rule applies: use **RDY** and the displayed constraint rather than range alone. | ||
| + | |||
| + | ===== 13. Static HUD operation ===== | ||
| + | |||
| + | On a conventional fixed HUD, such as the Gripen C: | ||
| + | |||
| + | * the GPS target gate is calculated relative to the aircraft; | ||
| + | * the gate stays attached to the physical HUD presentation during free-look; | ||
| + | * aircraft manoeuvre moves the target cue; | ||
| + | * the LAR, XTRK, release state and range are fixed HUD symbology. | ||
| + | |||
| + | If you free-look and the GPS symbology follows your head like a helmet display, that is an aircraft-integration fault rather than normal GPS behaviour. | ||
| + | |||
| + | ===== 14. HMD operation ===== | ||
| + | |||
| + | On an HMD-equipped aircraft, such as the StavJet: | ||
| + | |||
| + | * the GPS target gate is world-locked; | ||
| + | * turning your head moves the target through the HMD field of view; | ||
| + | * the gate may disappear when the target is outside the useful HMD field; | ||
| + | * the LAR, XTRK and status information remain helmet-fixed rather than being attached to the target. | ||
| + | |||
| + | This is intentional. | ||
| + | |||
| + | The target cue tells you **where the programmed point is**. The fixed release cues tell you **whether the aircraft/ | ||
| + | |||
| + | ===== 15. UAV / sensor-turret operation ===== | ||
| + | |||
| + | A UAV may present more information than a fighter HUD, including target data, sensor state, gimbal state, FOV and release information. | ||
| + | |||
| + | The full turret/ | ||
| + | |||
| + | A separate pilot/ | ||
| + | |||
| + | ==== 15.1 Opening GPS while remotely controlling a UAV ==== | ||
| + | |||
| + | The most important UAV-specific quirk is the GPS-panel access method. | ||
| + | |||
| + | Do not rely on the normal action/scroll menu while remotely controlling a UAV. | ||
| + | |||
| + | Use: | ||
| <code -> | <code -> | ||
| - | RKSLA3_CVWP_fnc_uavHud* | + | 0 > 8 > RKSL GPS Panel |
| - | RKSLA3_CVWP_UAVHUD_* | + | |
| </ | </ | ||
| - | ==== 7.1 Create a thin optics wrapper ==== | + | This opens the same GPS panel against the active UAV platform. |
| - | <code cpp> | + | ==== 15.2 Gimbal limits ==== |
| - | class RscInGameUI | + | |
| - | { | + | |
| - | class RKSLA3_CVWP_UAVHUD_GunnerOptics; | + | |
| - | class MyUAV_GunnerOptics: | + | In a UAV turret, a target can be valid as a GPS coordinate while the sensor itself is reaching a gimbal limit. |
| - | { | + | |
| - | // Vehicle-specific visual overrides only. | + | |
| - | }; | + | |
| - | }; | + | |
| - | </ | + | |
| - | ==== 7.2 Assign the wrapper to the actual sensor turret ==== | + | Typical states include: |
| - | Merge into the target addon' | + | ^ State ^ Meaning ^ |
| + | | GMBL OK | Sensor geometry is normal. | | ||
| + | | GMBL WARN | Sensor is approaching a gimbal limit. | | ||
| + | | GMBL LIM | Sensor is at/near a hard limit and aircraft repositioning may be required. | | ||
| - | <code cpp> | + | Reposition the UAV rather than forcing the turret against its limits. |
| - | turretInfoType = " | + | |
| - | </ | + | |
| - | Do not blindly replace the entire '' | + | ===== 16. Map-input conflicts ===== |
| - | ==== 7.3 Opt in to the CVWP UAV HUD API ==== | + | The GPS system shares Arma's map with other RKSL systems. |
| - | <code cpp> | + | Only one RKSL system can own map-click input at a time. |
| - | RKSLA3_CVWP_UAVHUD_APIRequired = 1; | + | |
| - | </ | + | |
| - | Optional pilot overlay: | + | For example, on the StavJet, the NAV system and GPS targeting can both request a map click. |
| - | < | + | If the GPS panel reports: |
| - | RKSLA3_CVWP_UAVHUD_EnablePilotOverlay = 1; | + | |
| - | RKSLA3_CVWP_UAVHUD_PilotOverlayClass = " | + | < |
| + | Map input busy. | ||
| </ | </ | ||
| - | If you only need the turret/ | + | finish or cancel |
| - | ==== 7.4 Platform tuning ==== | + | Closing the map without selecting a point cancels the current GPS map-capture operation and releases the map for later use. |
| - | The UAV framework supports platform-local projected-gate tuning. Start with the reference values only if needed: | + | ===== 17. Map-marker fallback ===== |
| - | <code cpp> | + | The GPS system also supports map-marker targeting as a fallback. |
| - | RKSLHudProjectedGateTransformMode = 4; | + | |
| - | RKSLHudProjectedGateSmoothing = 0.18; | + | This is particularly useful when the normal panel/ |
| - | RKSLHudProjectedGateDeadzone = 0.003; | + | |
| - | RKSLHudProjectedGateMaxStep | + | ==== 17.1 Single target marker |
| - | RKSLHudProjectedGateResetDistance | + | |
| + | Create or move a map marker named: | ||
| + | |||
| + | <code -> | ||
| + | rkslgps | ||
| </ | </ | ||
| - | Keep platform tuning in the UAV addon. Do not fork '' | + | or: |
| - | ==== 7.5 UAV acceptance test ==== | + | <code -> |
| + | rksl_gps | ||
| + | </ | ||
| - | - Enter the sensor turret and verify the CVWP optics load without RPT errors. | + | The marker position becomes |
| - | - Select a CVWP GPS weapon and create a GPS target. | + | |
| - | - Verify target/ | + | |
| - | - Cycle FOV and vision modes. | + | |
| - | - Exit/ | + | |
| - | - If pilot overlay is enabled, confirm it appears only for the locally controlled pilot/driver. | + | |
| - | ===== 8. Debugging ===== | + | Select the intended GPS weapon before using this method. |
| - | Production CVWP ships with heavy GPS diagnostics disabled: | + | ==== 17.2 Queue markers ==== |
| - | < | + | Numbered markers can be used to build a queue, for example: |
| - | class RKSLA3_CVWP_GPS | + | |
| - | { | + | < |
| - | debug = 0; | + | rkslgps1 |
| - | }; | + | rkslgps2 |
| + | rkslgps3 | ||
| </ | </ | ||
| - | When deliberately diagnosing release/ | + | The underscore forms are also accepted, for example: |
| - | < | + | < |
| - | class RKSLA3_CVWP_GPS | + | rksl_gps_1 |
| - | { | + | rksl_gps_2 |
| - | debug = 1; | + | rksl_gps_3 |
| - | }; | + | |
| </ | </ | ||
| - | This restores the V19D/V19E release correlation, | + | Numbering should start at **1** and remain sequential. The system stops looking for additional queue markers when it reaches the first missing number. |
| - | ===== 9. Common mistakes ===== | + | The queue is limited by the number of suitable GPS weapons currently available. |
| - | ^ Symptom ^ Cause ^ Fix ^ | + | ===== 18. Useful quirks to remember ===== |
| - | | Fixed HUD follows free-look | Camera / '' | + | |
| - | | HMD target gate stays glued to helmet centre | Aircraft-relative projection used for world cue | Use per-frame '' | + | |
| - | | LAR disappears intermittently despite valid solution | Display cache being treated as authority | Use shared dynamic RMIN/RMAX as authoritative display fallback | | + | |
| - | | RDY differs from CVWP | Aircraft addon re-derived release logic | Display '' | + | |
| - | | Existing HUD symbology disappears | Whole '' | + | |
| - | | Existing UAV turret breaks | Whole '' | + | |
| - | | '' | + | |
| - | | Cue judders | Projection updated only at slow solver rate | Split solver refresh from render-frame projection | | + | |
| - | | User channels collide | Existing avionics already uses selected values | Allocate unused user/ | + | |
| - | ===== 10. Example package contents ===== | + | * GPS targets are **weapon/ |
| + | * A stored target can remain in memory when you select another weapon. | ||
| + | * Reselecting the matching weapon restores its active cue. | ||
| + | * A GPS point is fixed; it does not chase a moving object. | ||
| + | * **PWR** closes the panel but does not clear the target. | ||
| + | * **CLR** behaves differently while entering grids: it clears the current edit box instead of the whole target set. | ||
| + | * **QUEUE MAP** normally expects as many clicks as there are remaining rounds of that selected GPS ammo. | ||
| + | * **QUEUE GRID** can be committed early with **SEL** and is therefore better for a short queue. | ||
| + | * The LAR is dynamic. Do not memorise one fixed release distance for a GPS bomb. | ||
| + | * Being inside the displayed range window is not enough if another constraint is active. | ||
| + | * '' | ||
| + | * Dual-mode weapons can remain bound to a GPS target until you explicitly clear it. | ||
| + | * UAV remote control may hide the scroll/ | ||
| + | * If another RKSL system is using map-click input, finish/ | ||
| - | The companion ZIP contains three source templates: | + | ===== 19. Troubleshooting ===== |
| + | |||
| + | ^ Symptom ^ Likely cause ^ Action ^ | ||
| + | | RKSL GPS is missing from the UAV action menu | Remote UAV control is using the player' | ||
| + | | GPS panel says NO GPS WEAPONS | No supported GPS-enabled weapon is currently loaded/ | ||
| + | | No GPS cue after programming a target | A different weapon/ammo type is selected. | Reselect the weapon used when the target was programmed. | | ||
| + | | Target is stored but weapon does not use it | Target is bound to another ammo type. | Program a target for the currently selected weapon. | | ||
| + | | INH RNG | Outside current release range. | Continue/ | ||
| + | | INH ANG | Poor off-boresight geometry. | Turn towards the target/ | ||
| + | | INH ALT | Altitude/ | ||
| + | | INH SPD | Speed is too low. | Increase speed. | | ||
| + | | INH MISS | Required correction is outside the usable guidance envelope. | Improve range/ | ||
| + | | XTRK is displaced | Target is laterally off the current release path. | Steer to centre the XTRK cue. | | ||
| + | | MAP TARGET reports Map input busy | Another RKSL system owns the map click. | Finish/ | ||
| + | | GBU-54/B continues using GPS when you want laser | A valid GPS target remains stored for that ammo. | Clear GPS targets, then establish the laser/ | ||
| + | | Queue does not advance to a different weapon type | Queue is bound to the programmed ammo type. | Use the same ammo type or create a separate target/ | ||
| + | |||
| + | ===== 20. Quick-reference attack card ===== | ||
| <code -> | <code -> | ||
| - | examples/ | + | 1. SELECT GPS WEAPON |
| - | | + | 2. OPEN RKSL GPS |
| - | | + | - MANNED: Action menu > RKSL GPS |
| - | | + | - UAV: 0 > 8 > RKSL GPS Panel |
| + | 3. SELECT WEAPON IN PANEL | ||
| + | 4. PROGRAM: | ||
| + | - MAP TARGET | ||
| + | - MANUAL GRID | ||
| + | - QUEUE MAP | ||
| + | - QUEUE GRID | ||
| + | 5. RETURN TO FLIGHT | ||
| + | 6. FIND GPS TARGET GATE | ||
| + | 7. CENTRE | ||
| + | 8. ENTER LAR | ||
| + | 9. CHECK RNG + CONSTRAINT | ||
| + | 10. WAIT FOR RDY | ||
| + | 11. RELEASE | ||
| </ | </ | ||
| - | They are intentionally source templates rather than universal pre-packed PBOs, because third-party addons have different base class names, nested '' | + | ===== 21. Display quick reference ===== |
| - | For each template: | + | ^ Display type ^ Target gate ^ Release cues ^ |
| + | | Static HUD | Aircraft/ | ||
| + | | HMD | World-locked; | ||
| + | | UAV turret | Presented in the sensor/ | ||
| - | - read '' | + | ===== 22. Final rule ===== |
| - | - replace the clearly marked '' | + | |
| - | - inspect the target addon' | + | |
| - | - pack as a small compatibility/ | + | |
| - | ===== 11. Production checklist ===== | + | For normal employment, the player does not need to understand the underlying guidance model. |
| + | |||
| + | Use the system in this order: | ||
| + | |||
| + | <code -> | ||
| + | PROGRAM TARGET | ||
| + | -> ALIGN | ||
| + | -> ENTER LAR | ||
| + | -> CHECK CONSTRAINT | ||
| + | -> RDY | ||
| + | -> RELEASE | ||
| + | </ | ||
| - | - CVWP dependency declared. | + | If the display says **INHIBIT**, correct the reason shown rather than treating the range marker alone as permission to release. |
| - | - No copied CVWP GPS, release, queue or guidance SQF. | + | |
| - | - Correct display projection model selected: static HUD / HMD / UAV turret. | + | |
| - | - No user/ | + | |
| - | - Existing MFD and turret children preserved. | + | |
| - | - '' | + | |
| - | - Dynamic RMIN/RMAX used where available. | + | |
| - | - Free-look test passed for static HUD. | + | |
| - | - Head-tracking test passed for HMD. | + | |
| - | - FOV/ | + | |
| - | - RPT clean with '' | + | |
| - | - CVWP master debug disabled for production. | + | |