From eec12903cc19b1a70831d16a6326b327e39da60e Mon Sep 17 00:00:00 2001 From: Defent Date: Mon, 31 Aug 2015 22:43:55 +0200 Subject: [PATCH] Fixed things FSM now loops mission status check every 15 seconds. Cleanup every 5 mins and mission start every 1 min. Also added PBO prefixes. --- .../a3_dms/{$PBOPREFIX$.txt => $PBOPREFIX$} | 0 @ExileServer/addons/a3_dms/$PREFIX$ | 1 + @ExileServer/addons/a3_dms/FSM/missions.fsm | 370 +++++++++--------- Pre-Packed PBO/a3_dms.pbo | Bin 93864 -> 98548 bytes 4 files changed, 193 insertions(+), 178 deletions(-) rename @ExileServer/addons/a3_dms/{$PBOPREFIX$.txt => $PBOPREFIX$} (100%) create mode 100644 @ExileServer/addons/a3_dms/$PREFIX$ diff --git a/@ExileServer/addons/a3_dms/$PBOPREFIX$.txt b/@ExileServer/addons/a3_dms/$PBOPREFIX$ similarity index 100% rename from @ExileServer/addons/a3_dms/$PBOPREFIX$.txt rename to @ExileServer/addons/a3_dms/$PBOPREFIX$ diff --git a/@ExileServer/addons/a3_dms/$PREFIX$ b/@ExileServer/addons/a3_dms/$PREFIX$ new file mode 100644 index 0000000..493cf09 --- /dev/null +++ b/@ExileServer/addons/a3_dms/$PREFIX$ @@ -0,0 +1 @@ +x\addons\DMS \ No newline at end of file diff --git a/@ExileServer/addons/a3_dms/FSM/missions.fsm b/@ExileServer/addons/a3_dms/FSM/missions.fsm index 6872fca..f933b9f 100644 --- a/@ExileServer/addons/a3_dms/FSM/missions.fsm +++ b/@ExileServer/addons/a3_dms/FSM/missions.fsm @@ -1,4 +1,4 @@ -/*%FSM*/ +/*%FSM*/ /*%FSM*/ /* item0[] = {"",7,210,821.012817,321.000000,829.012817,329.000000,0.000000,""}; @@ -6,17 +6,17 @@ item1[] = {"INIT",0,250,516.749146,-106.908607,606.749146,-56.908607,0.000000,"I item2[] = {"true",8,218,775.000000,25.000000,875.000000,75.000000,0.000000,"true"}; item3[] = {"Waiting",2,250,775.000000,100.000000,875.000000,150.000000,0.000000,"Waiting"}; item4[] = {"",7,210,596.000000,321.000000,604.000000,329.000000,0.000000,""}; -item5[] = {"___min_loop_1",4,218,625.012756,175.000000,725.012756,225.000000,1.000000,"1 min loop"}; +item5[] = {"__5_sec_loop_",4,218,625.012756,175.000000,725.012756,225.000000,1.000000,"15 sec loop" \n ""}; item6[] = {"Check_Mission_Running",2,250,624.311890,250.000000,724.311890,300.000000,0.000000,"Check Mission" \n "Running" \n "Status"}; item7[] = {"",7,210,521.000000,321.000000,529.000000,329.000000,0.000000,""}; -item8[] = {"___min_loop",4,218,777.816040,173.598328,867.816040,223.598328,2.000000,"1 min loop"}; +item8[] = {"___min_loop_1",4,218,777.816040,173.598328,867.816040,223.598328,2.000000,"5 min loop"}; item9[] = {"",7,210,521.000000,46.000000,529.000000,54.000000,0.000000,""}; item10[] = {"",7,210,670.311951,321.000000,678.311951,329.000000,0.000000,""}; item11[] = {"Mission_Cleanup",2,250,774.311890,250.000000,874.311890,300.000000,0.000000,"Mission Cleanup"}; item12[] = {"INITIALIZE",4,218,655.694763,-107.164581,745.694763,-57.164581,0.000000,"INITIALIZE"}; item13[] = {"PREPARE",2,250,780.348511,-108.565193,870.348511,-58.565193,0.000000,"PREPARE"}; -item14[] = {"___Min_loop",4,218,914.967773,173.130890,1004.967773,223.130890,3.000000,"1 Min loop"}; -item15[] = {"Select_Mission",2,4346,915.668457,249.519714,1005.668518,299.519714,0.000000,"Select Mission"}; +item14[] = {"___min_loop",4,4314,914.967773,173.130890,1004.967773,223.130890,3.000000,"1 min loop"}; +item15[] = {"Select_Mission",2,250,915.668457,249.519714,1005.668518,299.519714,0.000000,"Select Mission"}; item16[] = {"",7,210,956.270142,321.086121,964.270142,329.086121,0.000000,""}; link0[] = {0,10}; link1[] = {1,12}; @@ -37,185 +37,199 @@ link15[] = {13,2}; link16[] = {14,15}; link17[] = {15,16}; link18[] = {16,0}; -globals[] = {0.000000,0,0,0,0,640,480,2,451,6316128,1,326.983643,1179.875732,440.842163,-196.198654,1217,1041,1}; -window[] = {2,-1,-1,-1,-1,784,50,1344,50,3,1235}; +globals[] = {0.000000,0,0,0,0,640,480,2,451,6316128,1,326.983643,1179.875732,440.842163,-196.198654,1217,909,1}; +window[] = {2,-1,-1,-32000,-32000,873,-170,1124,139,3,1235}; *//*%FSM*/ class FSM { - fsmName = "dms_main"; - class States - { - /*%FSM*/ - class INIT - { - name = "INIT"; - init = /*%FSM*/""/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class INITIALIZE + fsmName = "missions"; + class States { - priority = 0.000000; - to="PREPARE"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"!isnil ""bis_fnc_init"""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; + /*%FSM*/ + class INIT + { + name = "INIT"; + itemno = 1; + init = /*%FSM*/""/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class INITIALIZE + { + itemno = 12; + priority = 0.000000; + to="PREPARE"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"!isnil ""bis_fnc_init"""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Waiting + { + name = "Waiting"; + itemno = 3; + init = /*%FSM*/"// Waiting for next task to proceed with."/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class ___min_loop + { + itemno = 14; + priority = 3.000000; + to="Select_Mission"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _selectMission) > 60)" \n + ""/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class ___min_loop_1 + { + itemno = 8; + priority = 2.000000; + to="Mission_Cleanup"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _cleanupTime) > 300)"/*%FSM*/; + action=/*%FSM*/"_missionsMonitor = time;"/*%FSM*/; + }; + /*%FSM*/ + /*%FSM*/ + class __5_sec_loop_ + { + itemno = 5; + priority = 1.000000; + to="Check_Mission_Running"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"((diag_tickTime - _missionsMonitor) > 15)"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Check_Mission_Running + { + name = "Check_Mission_Running"; + itemno = 6; + init = /*%FSM*/"if(DMS_DEBUG) then {" \n + " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_MissionsMonitor""];" \n + "};" \n + "" \n + "_missionsMonitor = diag_tickTime;" \n + "call DMS_MissionsMonitor;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class true + { + itemno = 2; + priority = 0.000000; + to="Waiting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Mission_Cleanup + { + name = "Mission_Cleanup"; + itemno = 11; + init = /*%FSM*/"if(DMS_DEBUG) then {" \n + " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_CleanUpManager""];" \n + "};" \n + "" \n + "_cleanupTime = diag_tickTime;" \n + "call DMS_CleanUpManager;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class true + { + itemno = 2; + priority = 0.000000; + to="Waiting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class PREPARE + { + name = "PREPARE"; + itemno = 13; + init = /*%FSM*/"private [""_missionsMonitor"",""_cleanupTime"",""_selectMission""];" \n + "diag_log (""DMS :: Initializing FSM mission script"");" \n + "" \n + "_missionsMonitor = diag_tickTime;" \n + "_cleanupTime = diag_tickTime;" \n + "_selectMission = diag_tickTime;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class true + { + itemno = 2; + priority = 0.000000; + to="Waiting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ + /*%FSM*/ + class Select_Mission + { + name = "Select_Mission"; + itemno = 15; + init = /*%FSM*/"if(DMS_DEBUG) then {" \n + " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_selectMission""];" \n + "};" \n + "" \n + "_selectMission = diag_tickTime;" \n + "call DMS_selectMission;"/*%FSM*/; + precondition = /*%FSM*/""/*%FSM*/; + class Links + { + /*%FSM*/ + class true + { + itemno = 2; + priority = 0.000000; + to="Waiting"; + precondition = /*%FSM*/""/*%FSM*/; + condition=/*%FSM*/"true"/*%FSM*/; + action=/*%FSM*/""/*%FSM*/; + }; + /*%FSM*/ + }; + }; + /*%FSM*/ }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Waiting - { - name = "Waiting"; - init = /*%FSM*/"// Waiting for next task to proceed with."/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class ___Min_loop + initState="INIT"; + finalStates[] = { - priority = 3.000000; - to="Select_Mission"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _selectMission) > 60)" \n - ""/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; }; - /*%FSM*/ - /*%FSM*/ - class ___min_loop - { - priority = 2.000000; - to="Mission_Cleanup"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _cleanupTime) > 60)"/*%FSM*/; - action=/*%FSM*/"_cleanupTime = time;"/*%FSM*/; - }; - /*%FSM*/ - /*%FSM*/ - class ___min_loop_1 - { - priority = 1.000000; - to="Check_Mission_Running"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"((diag_tickTime - _missionsMonitor) > 60)"/*%FSM*/; - action=/*%FSM*/"_missionsMonitor = time;"/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Check_Mission_Running - { - name = "Check_Mission_Running"; - init = /*%FSM*/"if(DMS_DEBUG) then {" \n - " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_MissionsMonitor""];" \n - "};" \n - "" \n - "_missionsMonitor = diag_tickTime;" \n - "call DMS_MissionsMonitor;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class true - { - priority = 0.000000; - to="Waiting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Mission_Cleanup - { - name = "Mission_Cleanup"; - init = /*%FSM*/"if(DMS_DEBUG) then {" \n - " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_CleanUpManager""];" \n - "};" \n - "" \n - "_cleanupTime = diag_tickTime;" \n - "call DMS_CleanUpManager;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class true - { - priority = 0.000000; - to="Waiting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class PREPARE - { - name = "PREPARE"; - init = /*%FSM*/"private [""_missionsMonitor"",""_cleanupTime"",""_selectMission""];" \n - "diag_log (""DMS :: Initializing FSM mission script"");" \n - "" \n - "_missionsMonitor = diag_tickTime;" \n - "_cleanupTime = diag_tickTime;" \n - "_selectMission = diag_tickTime;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class true - { - priority = 0.000000; - to="Waiting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - /*%FSM*/ - class Select_Mission - { - name = "Select_Mission"; - init = /*%FSM*/"if(DMS_DEBUG) then {" \n - " diag_log format [""DMS_DEBUG FSM CHECK :: calling DMS_selectMission""];" \n - "};" \n - "" \n - "_selectMission = diag_tickTime;" \n - "call DMS_selectMission;"/*%FSM*/; - precondition = /*%FSM*/""/*%FSM*/; - class Links - { - /*%FSM*/ - class true - { - priority = 0.000000; - to="Waiting"; - precondition = /*%FSM*/""/*%FSM*/; - condition=/*%FSM*/"true"/*%FSM*/; - action=/*%FSM*/""/*%FSM*/; - }; - /*%FSM*/ - }; - }; - /*%FSM*/ - }; - initState="INIT"; - finalStates[] = - { - }; }; /*%FSM*/ \ No newline at end of file diff --git a/Pre-Packed PBO/a3_dms.pbo b/Pre-Packed PBO/a3_dms.pbo index fab20d6d13aa8297f5cb5dc9e2a5ab387c2ab473..4252d0c1cdaabd1c1e8ce3522c566edfd848b39b 100644 GIT binary patch delta 4749 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

t$UMKFi9Z z_4o?V`%OwZCx#ImK9B@w4rKic294tzjzlHwQzkIe8oARPK3qy0nM=!EBhp z=CYy#&6O*|2RZcc$dQ!L;Bt)dTb5UvNQeGa6{FE`JwQXrr^Rsj@l2)_4 z?5Kf@zvzQ0%LyZx?q=675cnQ8Aa@Nk-HIduiBbSBEEWrGc1o)`u>*G*jhvoFS>o=8 zEs!E(qU@%_ zUu-aBAoBlgkfB>7S3Y4g{5L@|=Ec~|n9;VRVF{{tyOF1x$4`p