Added vehicle sensor handler to get sensor input and throw it on ATAK

This commit is contained in:
Valmo Trindade
2025-11-22 12:15:15 -03:00
parent 7e4379ada4
commit 524e7a0b3e
7 changed files with 43 additions and 3 deletions

View File

@@ -10,6 +10,9 @@ class CfgFunctions {
class send_group_cots { class send_group_cots {
file = "\armatak\armatak\addons\main\functions\api\fn_send_group_cots.sqf"; file = "\armatak\armatak\addons\main\functions\api\fn_send_group_cots.sqf";
}; };
class send_enemy_cot {
file = "\armatak\armatak\addons\main\functions\api\fn_send_enemy_cot.sqf";
};
class send_eud_cot { class send_eud_cot {
file = "\armatak\armatak\addons\main\functions\api\fn_send_eud_cot.sqf"; file = "\armatak\armatak\addons\main\functions\api\fn_send_eud_cot.sqf";
}; };
@@ -31,6 +34,9 @@ class CfgFunctions {
class extract_role { class extract_role {
file = "\armatak\armatak\addons\main\functions\extract_data\fn_extract_role.sqf"; file = "\armatak\armatak\addons\main\functions\extract_data\fn_extract_role.sqf";
}; };
class extract_sensor_data {
file = "\armatak\armatak\addons\main\functions\extract_data\fn_extract_sensor_data.sqf";
};
class extract_unit_callsign { class extract_unit_callsign {
file = "\armatak\armatak\addons\main\functions\extract_data\fn_extract_unit_callsign.sqf"; file = "\armatak\armatak\addons\main\functions\extract_data\fn_extract_unit_callsign.sqf";
}; };

View File

@@ -9,7 +9,7 @@ _unit_position = _unit call armatak_client_fnc_extractClientPosition;
_uuid = _unit call armatak_fnc_extract_uuid; _uuid = _unit call armatak_fnc_extract_uuid;
_type = _unit call armatak_fnc_extract_role; _type = _unit call armatak_fnc_extract_role;
_callsign = _unit call armatak_fnc_extract_marker_callsign; _callsign = _unit call armatak_fnc_extract_marker_callsign;
_marker_cot = [_uuid, _type, _unit_position select 1, _unit_position select 2, _unit_position select 3, _callsign, _unit_position select 5, _unit_position select 6]; _marker_cot = [_uuid, _type, _unit_position select 1, _unit_position select 2, _unit_position select 3, _callsign, _unit_position select 5, _unit_position select 6];
"armatak" callExtension ["tcp_socket:send_marker_cot", [_marker_cot]]; "armatak" callExtension ["tcp_socket:send_marker_cot", [_marker_cot]];

View File

@@ -7,8 +7,13 @@ params["_unit"];
private _affiliation = "f"; private _affiliation = "f";
private _type = "G"; private _type = "G";
private _role = "a-f-G-U-C-I"; private _role = "a-f-G-U-C-I";
private _side = side _unit;
switch (str side _unit) do {
if (isNil {_unit getVariable "armatak_current_side"}) then {
_side = _unit getVariable "armatak_current_side";
};
switch (str _side) do {
case "WEST": { case "WEST": {
_affiliation = "f"; _affiliation = "f";
}; };

View File

@@ -0,0 +1,17 @@
params["_unit"];
_target = getSensorTargets (_unit);
{
_unit = _x select 0;
_position = _x select 1;
_status = _x select 2;
if (isNil {_unit getVariable "armatak_current_side"}) then {
_unit setVariable ["armatak_current_side", side _unit];
};
if (_status != "destroyed") then {
_unit call armatak_fnc_send_enemy_cot;
};
} forEach _target;

View File

@@ -16,6 +16,10 @@ if (roleDescription _unit != "") then {
}; };
}; };
if (side _unit == east) then {
_callsign = getText (configOf _unit >> "displayName");
};
armatak_attribute_unit_callsign = _unit getVariable "armatak_attribute_unit_callsign"; armatak_attribute_unit_callsign = _unit getVariable "armatak_attribute_unit_callsign";
if (!isNil "armatak_attribute_unit_callsign" or armatak_attribute_unit_callsign != '') then { if (!isNil "armatak_attribute_unit_callsign" or armatak_attribute_unit_callsign != '') then {

View File

@@ -44,6 +44,8 @@ if (isServer) exitWith {
_callsign = [_x] call armatak_fnc_extract_marker_callsign; _callsign = [_x] call armatak_fnc_extract_marker_callsign;
[_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot;
_x call armatak_fnc_extract_sensor_data;
}; };
case ((_objectType select 0) == "VehicleAutonomous"): { case ((_objectType select 0) == "VehicleAutonomous"): {
_atak_type = [_x] call armatak_fnc_extract_role; _atak_type = [_x] call armatak_fnc_extract_role;
@@ -51,6 +53,8 @@ if (isServer) exitWith {
[_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot;
[_x] call armatak_fnc_send_digital_pointer_cot; [_x] call armatak_fnc_send_digital_pointer_cot;
_x call armatak_fnc_extract_sensor_data;
}; };
}; };
} forEach GVAR(syncedUnits); } forEach GVAR(syncedUnits);

View File

@@ -48,6 +48,8 @@ missionNamespace setVariable ["armatak_server_syncedUnits", _syncUnits];
_callsign = [_x] call armatak_fnc_extract_marker_callsign; _callsign = [_x] call armatak_fnc_extract_marker_callsign;
[_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot; [_x, _atak_type, _callsign] call armatak_fnc_send_marker_cot;
_x call armatak_fnc_extract_sensor_data;
}; };
case ((_objectType select 0) == "VehicleAutonomous"): { case ((_objectType select 0) == "VehicleAutonomous"): {
_atak_type = [_x] call armatak_fnc_extract_role; _atak_type = [_x] call armatak_fnc_extract_role;
@@ -55,6 +57,8 @@ missionNamespace setVariable ["armatak_server_syncedUnits", _syncUnits];
[_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot; [_x, _atak_type, _callsign] call armatak_fnc_send_drone_cot;
[_x] call armatak_fnc_send_digital_pointer_cot; [_x] call armatak_fnc_send_digital_pointer_cot;
_x call armatak_fnc_extract_sensor_data;
}; };
}; };
} forEach GVAR(syncedUnits); } forEach GVAR(syncedUnits);