From 61ec6e22432fe021346833599bc8fc4505d0eb9d Mon Sep 17 00:00:00 2001
From: Lorenzo Pivetta <lorenzo.pivetta@elettra.eu>
Date: Mon, 29 May 2023 16:16:58 +0200
Subject: [PATCH] First import

---
 seq_fb_weights_slu_3.txt | 65 ++++++++++++++++++++++++++++++++++++
 seq_fb_weights_slu_4.txt | 71 ++++++++++++++++++++++++++++++++++++++++
 2 files changed, 136 insertions(+)
 create mode 100644 seq_fb_weights_slu_3.txt
 create mode 100644 seq_fb_weights_slu_4.txt

diff --git a/seq_fb_weights_slu_3.txt b/seq_fb_weights_slu_3.txt
new file mode 100644
index 0000000..a76a978
--- /dev/null
+++ b/seq_fb_weights_slu_3.txt
@@ -0,0 +1,65 @@
+#
+# Description: Enable/disable automatically $devfb$ sensors and actuators according to ccd states
+# Author: Giulio Gaio
+# Date: 2019/11/25
+#
+# Stop all the fb weight sequencers
+#
+step1;(write(this/CCD2StateOld) = ON) && (write(this/CCD3StateOld) = ON) && (write(this/CCD4StateOld) = ON) && goto(2);Init variables;Error init variables;-1
+#
+step2;read($devfb1$/State) == ON ? command($devfb1$/Off) && goto(3) : goto(3);Stopping $devfb1$;Error stopping $devfb1$;-1;tangoerror=goto(3)
+step3;read($devfb2$/State) == ON ? command($devfb2$/Off) && goto(4) : goto(4);Stopping $devfb2$;Error stopping $devfb2$;-1;tangoerror=goto(4)
+step4;read($devfb3$/State) == ON ? command($devfb3$/Off) && goto(5) : goto(5);Stopping $devfb3$;Error stopping $devfb3$;-1;tangoerror=goto(5)
+step5;read($devfb4$/State) == ON ? command($devfb4$/Off) && goto(6) : goto(6);Stopping $devfb4$;Error stopping $devfb4$;-1;tangoerror=goto(6)
+#
+# Getting CCD states
+#
+step6;(write(this/CCD2State) = read($devccd2/State)) && goto(8);Reading $devccd2 State;Error reading $devccd2 State;-1;tangoerror=goto(7)
+step7;(write(this/CCD2State) = FAULT) && goto(8);Setting $devccd2 in FAULT state;Error setting  $devccd2 in FAULT state;-1
+step8;(write(this/CCD3State) = read($devccd3/State)) && goto(10);Reading $devccd3 State;Error reading $devccd3 State;-1;tangoerror=goto(9)
+step9;(write(this/CCD3State) = FAULT) && goto(10);Setting $devccd3 in FAULT state;Error setting  $devccd3 in FAULT state;-1
+step10;(write(this/CCD4State) = read($devccd4/State)) && goto(12);Reading $devccd4 State;Error reading $devccd4 State;-1;tangoerror=goto(11)
+step11;(write(this/CCD4State) = FAULT) && goto(12);Setting $devccd4 in FAULT state;Error setting  $devccd4 in FAULT state;-1
+#
+# Disabling sensors and actuators
+#
+step12;((read(this/CCD4State) != ON) && (read(this/CCD4StateOld) == ON)) ? (write($devfb$/SensorWeights[6]) = 0)  && (write($devfb$/SensorWeights[7]) = 0) &&  (write($devfb$/ActuatorWeights[6]) = 0)  && (write($devfb$/ActuatorWeights[7]) = 0) && goto(13) : goto(13);Checking $devccd4 changing state;Error checking $devccd4 changing state;-1;tangoerror=goto(13)
+step13;((read(this/CCD3State) != ON) && (read(this/CCD3StateOld) == ON)) ? (write($devfb$/SensorWeights[4]) = 0)  && (write($devfb$/SensorWeights[5]) = 0) &&  (write($devfb$/ActuatorWeights[4]) = 0)  && (write($devfb$/ActuatorWeights[5]) = 0) && goto(14) :  goto(14);Checking $devccd3 changing state;Error checking $devccd3 changing state;-1;tangoerror=goto(14)
+step14;((read(this/CCD2State) != ON) && (read(this/CCD2StateOld) == ON)) ? (write($devfb$/SensorWeights[2]) = 0)  && (write($devfb$/SensorWeights[3]) = 0) &&  (write($devfb$/ActuatorWeights[2]) = 0)  && (write($devfb$/ActuatorWeights[3]) = 0) && goto(15) :  goto(15);Checking $devccd2 changing state;Error checking $devccd2 changing state;-1;tangoerror=goto(15)
+#
+# Enabling sensors and actuators
+#
+step15;((read(this/CCD2State) == ON) && (read(this/CCD2StateOld) != ON)) ? (write($devfb$/SensorWeights[2]) = 1)  && (write($devfb$/SensorWeights[3]) = 1) &&  (write($devfb$/ActuatorWeights[2]) = 1)  && (write($devfb$/ActuatorWeights[3]) = 1) && goto(16) :  goto(16);Checking $devccd2 changing state;Error checking $devccd2 changing state;-1;tangoerror=goto(16)
+step16;((read(this/CCD3State) == ON) && (read(this/CCD3StateOld) != ON)) ? (write($devfb$/SensorWeights[4]) = 1)  && (write($devfb$/SensorWeights[5]) = 1) &&  (write($devfb$/ActuatorWeights[4]) = 1)  && (write($devfb$/ActuatorWeights[5]) = 1) && goto(17) :  goto(17);Checking $devccd3 changing state;Error checking $devccd3 changing state;-1;tangoerror=goto(17)
+step17;((read(this/CCD4State) == ON) && (read(this/CCD4StateOld) != ON)) ? (write($devfb$/SensorWeights[6]) = 1)  && (write($devfb$/SensorWeights[7]) = 1) &&  (write($devfb$/ActuatorWeights[6]) = 1)  && (write($devfb$/ActuatorWeights[7]) = 1) && goto(18) : goto(18);Checking $devccd4 changing state;Error checking $devccd4 changing state;-1;tangoerror=goto(18)
+#
+# Storing old states
+#
+step18;(write(this/CCD2StateOld) = read(this/CCD2State)) && (write(this/CCD3StateOld) = read(this/CCD3State)) && (write(this/CCD4StateOld) = read(this/CCD4State)) && goto(19);Updating states;Error updating states;-1
+#
+# Stopping unuseful cameras to avoid crashes
+#
+step19;((read($devccdstop1/State) == ON) || (read($devccdstop1/State) == ALARM)) ? command($devccdstop1/Stop) && goto(20) : goto(20);Stopping $devccdstop1;Error stopping $devccdstop1;-1;tangoerror=goto(20)
+step20;((read($devccdstop2/State) == ON) || (read($devccdstop2/State) == ALARM)) ? command($devccdstop2/Stop) && goto(21) : goto(21);Stopping $devccdstop2;Error stopping $devccdstop2;-1;tangoerror=goto(21)
+step21;((read($devccdstop3/State) == ON) || (read($devccdstop3/State) == ALARM)) ? command($devccdstop3/Stop) && goto(22) : goto(22);Stopping $devccdstop3;Error stopping $devccdstop3;-1;tangoerror=goto(22)
+step22;((read($devccdstop4/State) == ON) || (read($devccdstop4/State) == ALARM)) ? command($devccdstop4/Stop) && goto(23) : goto(23);Stopping $devccdstop4;Error stopping $devccdstop4;-1;tangoerror=goto(23)
+#
+# Start mandatory ccds
+#
+step23;read(this/CCD2State) == OFF ? (command($devccd2/Start) = 0) && goto(24) : goto(24);Checking $devccd2 OFF state;Error checking $devccd2 OFF state;-1;tangoerror=goto(24)
+step24;read(this/CCD3State) == OFF ? (command($devccd3/Start) = 0) && goto(25) : goto(25);Checking $devccd3 OFF state;Error checking $devccd3 OFF state;-1;tangoerror=goto(25)
+step25;read(this/CCD4State) == OFF ? (command($devccd4/Start) = 0) && goto(26) : goto(26);Checking $devccd4 OFF state;Error checking $devccd4 OFF state;-1;tangoerror=goto(26)
+#
+step26;sleep($sleep_time) && goto(2);Sleeping;Error sleeping;-1
+step27;goto(28);Exit;Exit;-1;exit
+#
+# Dynamic w/r attributes
+#
+attr;CCD2State;long;0
+attr;CCD3State;long;0
+attr;CCD4State;long;0
+attr;CCD2StateOld;long;0
+attr;CCD3StateOld;long;0
+attr;CCD4StateOld;long;0
+
+
diff --git a/seq_fb_weights_slu_4.txt b/seq_fb_weights_slu_4.txt
new file mode 100644
index 0000000..567dcb7
--- /dev/null
+++ b/seq_fb_weights_slu_4.txt
@@ -0,0 +1,71 @@
+#
+# Description: Enable/disable automatically $devfb$ sensors and actuators according to ccd states
+# Author: Giulio Gaio
+# Date: 2019/11/25
+#
+# Stop all the fb weight sequencers
+#
+step1;(write(this/CCD2StateOld) = ON) && (write(this/CCD3StateOld) = ON) && (write(this/CCD4StateOld) = ON) && (write(this/CCD5StateOld) = ON) && goto(2);Init variables;Error init variables;-1
+#
+step2;read($devfb1$/State) == ON ? command($devfb1$/Off) && goto(3) : goto(3);Stopping $devfb1$;Error stopping $devfb1$;-1;tangoerror=goto(3)
+step3;read($devfb2$/State) == ON ? command($devfb2$/Off) && goto(4) : goto(4);Stopping $devfb2$;Error stopping $devfb2$;-1;tangoerror=goto(4)
+step4;read($devfb3$/State) == ON ? command($devfb3$/Off) && goto(5) : goto(5);Stopping $devfb3$;Error stopping $devfb3$;-1;tangoerror=goto(5)
+step5;read($devfb4$/State) == ON ? command($devfb4$/Off) && goto(6) : goto(6);Stopping $devfb4$;Error stopping $devfb4$;-1;tangoerror=goto(6)
+#
+# Getting CCD states
+#
+step6;(write(this/CCD2State) = read($devccd2/State)) && goto(8);Reading $devccd2 State;Error reading $devccd2 State;-1;tangoerror=goto(7)
+step7;(write(this/CCD2State) = FAULT) && goto(8);Setting $devccd2 in FAULT state;Error setting  $devccd2 in FAULT state;-1
+step8;(write(this/CCD3State) = read($devccd3/State)) && goto(10);Reading $devccd3 State;Error reading $devccd3 State;-1;tangoerror=goto(9)
+step9;(write(this/CCD3State) = FAULT) && goto(10);Setting $devccd3 in FAULT state;Error setting  $devccd3 in FAULT state;-1
+step10;(write(this/CCD4State) = read($devccd4/State)) && goto(12);Reading $devccd4 State;Error reading $devccd4 State;-1;tangoerror=goto(11)
+step11;(write(this/CCD4State) = FAULT) && goto(12);Setting $devccd4 in FAULT state;Error setting  $devccd4 in FAULT state;-1
+step12;(write(this/CCD5State) = read($devccd5/State)) && goto(14);Reading $devccd5 State;Error reading $devccd5 State;-1;tangoerror=goto(13)
+step13;(write(this/CCD5State) = FAULT) && goto(14);Setting $devccd5 in FAULT state;Error setting  $devccd5 in FAULT state;-1
+#
+# Disabling sensors and actuators
+#
+step14;((read(this/CCD5State) != ON) && (read(this/CCD5StateOld) == ON)) ? (write($devfb$/SensorWeights[8]) = 0)  && (write($devfb$/SensorWeights[9]) = 0) &&  (write($devfb$/ActuatorWeights[8]) = 0)  && (write($devfb$/ActuatorWeights[9]) = 0) && goto(15) : goto(15);Checking $devccd5 changing state;Error checking $devccd5 changing state;-1;tangoerror=goto(15)
+step15;((read(this/CCD4State) != ON) && (read(this/CCD4StateOld) == ON)) ? (write($devfb$/SensorWeights[6]) = 0)  && (write($devfb$/SensorWeights[7]) = 0) &&  (write($devfb$/ActuatorWeights[6]) = 0)  && (write($devfb$/ActuatorWeights[7]) = 0) && goto(16) : goto(16);Checking $devccd4 changing state;Error checking $devccd4 changing state;-1;tangoerror=goto(16)
+step16;((read(this/CCD3State) != ON) && (read(this/CCD3StateOld) == ON)) ? (write($devfb$/SensorWeights[4]) = 0)  && (write($devfb$/SensorWeights[5]) = 0) &&  (write($devfb$/ActuatorWeights[4]) = 0)  && (write($devfb$/ActuatorWeights[5]) = 0) && goto(17) :  goto(17);Checking $devccd3 changing state;Error checking $devccd3 changing state;-1;tangoerror=goto(17)
+step17;((read(this/CCD2State) != ON) && (read(this/CCD2StateOld) == ON)) ? (write($devfb$/SensorWeights[2]) = 0)  && (write($devfb$/SensorWeights[3]) = 0) &&  (write($devfb$/ActuatorWeights[2]) = 0)  && (write($devfb$/ActuatorWeights[3]) = 0) && goto(18) :  goto(18);Checking $devccd2 changing state;Error checking $devccd2 changing state;-1;tangoerror=goto(18)
+#
+# Enabling sensors and actuators
+#
+step18;((read(this/CCD2State) == ON) && (read(this/CCD2StateOld) != ON)) ? (write($devfb$/SensorWeights[2]) = 1)  && (write($devfb$/SensorWeights[3]) = 1) &&  (write($devfb$/ActuatorWeights[2]) = 1)  && (write($devfb$/ActuatorWeights[3]) = 1) && goto(19) :  goto(19);Checking $devccd2 changing state;Error checking $devccd2 changing state;-1;tangoerror=goto(19)
+step19;((read(this/CCD3State) == ON) && (read(this/CCD3StateOld) != ON)) ? (write($devfb$/SensorWeights[4]) = 1)  && (write($devfb$/SensorWeights[5]) = 1) &&  (write($devfb$/ActuatorWeights[4]) = 1)  && (write($devfb$/ActuatorWeights[5]) = 1) && goto(20) :  goto(20);Checking $devccd3 changing state;Error checking $devccd3 changing state;-1;tangoerror=goto(20)
+step20;((read(this/CCD4State) == ON) && (read(this/CCD4StateOld) != ON)) ? (write($devfb$/SensorWeights[6]) = 1)  && (write($devfb$/SensorWeights[7]) = 1) &&  (write($devfb$/ActuatorWeights[6]) = 1)  && (write($devfb$/ActuatorWeights[7]) = 1) && goto(21) : goto(21);Checking $devccd4 changing state;Error checking $devccd4 changing state;-1;tangoerror=goto(21)
+step21;((read(this/CCD5State) == ON) && (read(this/CCD5StateOld) != ON)) ? (write($devfb$/SensorWeights[8]) = 1)  && (write($devfb$/SensorWeights[9]) = 1) &&  (write($devfb$/ActuatorWeights[8]) = 1)  && (write($devfb$/ActuatorWeights[9]) = 1) && goto(22) : goto(22);Checking $devccd5 changing state;Error checking $devccd5 changing state;-1;tangoerror=goto(22)
+#
+# Storing old states
+#
+step22;(write(this/CCD2StateOld) = read(this/CCD2State)) && (write(this/CCD3StateOld) = read(this/CCD3State)) && (write(this/CCD4StateOld) = read(this/CCD4State)) && (write(this/CCD5StateOld) = read(this/CCD5State)) && goto(23);Updating states;Error updating states;-1
+#
+# Stopping unuseful cameras to avoid crashes
+#
+step23;((read($devccdstop1/State) == ON) || (read($devccdstop1/State) == ALARM)) ? command($devccdstop1/Stop) && goto(24) : goto(24);Stopping $devccdstop1;Error stopping $devccdstop1;-1;tangoerror=goto(24)
+step24;((read($devccdstop2/State) == ON) || (read($devccdstop2/State) == ALARM)) ? command($devccdstop2/Stop) && goto(25) : goto(25);Stopping $devccdstop2;Error stopping $devccdstop2;-1;tangoerror=goto(25)
+step25;((read($devccdstop3/State) == ON) || (read($devccdstop3/State) == ALARM)) ? command($devccdstop3/Stop) && goto(26) : goto(26);Stopping $devccdstop3;Error stopping $devccdstop3;-1;tangoerror=goto(26)
+step26;((read($devccdstop4/State) == ON) || (read($devccdstop4/State) == ALARM)) ? command($devccdstop4/Stop) && goto(27) : goto(27);Stopping $devccdstop4;Error stopping $devccdstop4;-1;tangoerror=goto(27)
+#
+# Start mandatory ccds
+#
+step27;read(this/CCD2State) == OFF ? (command($devccd2/Start) = 0) && goto(28) : goto(28);Checking $devccd2 OFF state;Error checking $devccd2 OFF state;-1;tangoerror=goto(28)
+step28;read(this/CCD3State) == OFF ? (command($devccd3/Start) = 0) && goto(29) : goto(29);Checking $devccd3 OFF state;Error checking $devccd3 OFF state;-1;tangoerror=goto(29)
+step29;read(this/CCD4State) == OFF ? (command($devccd4/Start) = 0) && goto(30) : goto(30);Checking $devccd4 OFF state;Error checking $devccd4 OFF state;-1;tangoerror=goto(30)
+step30;read(this/CCD5State) == OFF ? (command($devccd5/Start) = 0) && goto(31) : goto(31);Checking $devccd5 OFF state;Error checking $devccd5 OFF state;-1;tangoerror=goto(31)
+#
+step31;sleep($sleep_time) && goto(6);Sleeping;Error sleeping;-1
+step32;goto(33);Exit;Exit;-1;exit
+#
+# Dynamic w/r attributes
+#
+attr;CCD2State;long;0
+attr;CCD3State;long;0
+attr;CCD4State;long;0
+attr;CCD5State;long;0
+attr;CCD2StateOld;long;0
+attr;CCD3StateOld;long;0
+attr;CCD4StateOld;long;0
+attr;CCD5StateOld;long;0
+
-- 
GitLab