commit 1637be0bad82b24a29b6de9276dbf87a99021140
parent 1f99bda1b628d29a50411a76762590453dd46810
Author: E.A.Bekhtenev <E.A.Bekhtenev@inp.nsk.su>
Date: Fri, 25 Mar 2022 16:10:49 +0700
chan pv strategy
Diffstat:
M | chan-pv-list.md | | | 109 | +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------ |
1 file changed, 93 insertions(+), 16 deletions(-)
diff --git a/chan-pv-list.md b/chan-pv-list.md
@@ -466,7 +466,7 @@ CSS: table.css
<a name="cycle_time"></a> $(P)**cycle_time**-I
: зарезервированно
-# Описание PV IOC траектория
+# Описание PV IOC траектория[CHANLINE]
Префикс $(P) для IOC траектория пучка канала **CHAN:LINE:**.
@@ -478,6 +478,14 @@ CSS: table.css
В соответствии со сработавшимим пикапами заполняются [ready_mask](#ready_mask) и [count](#count).
Если не все пикапы сработали [error](#error) инкрементируется.
+Реализованно три способа обработки не сработавших пикапов
+ * legacy - данные для несработавших пикапов остаются от предыдущего измерения, по маске можно установить где кто
+ * nan - значения несработавших пикапов заполняются значением **NAN**
+ * skip - не сработавшие пикапы пропускаются, по маске можно понять какие пикапы присутствую в результате.
+Все способы обработки производятся паралельно, переменные результата измерений содержат суффикс обозначающий способ обработки **_суффикс**.
+
+Способ по умолчанию (на данный момент nan) дублируется переменными без суффикса, способ по умолчанию выбирается в скриптах запуска IOC.
+
<a name="collecttime"></a> $(P)**collecttime**-SP
: время сборя данных
@@ -488,49 +496,118 @@ CSS: table.css
<a name="error"></a> $(P)**error**-SP
: счетчик количества пропущенных данных
+## Результат измерения, способ по умолчанию
<a name="Xe"></a> $(P)**Xe**-I
<a name="Ye"></a> $(P)**Ye**-I
<a name="Ie"></a> $(P)**Ie**-I
-: массив координат и тока для электронов
+<a name="posE"></a> $(P)**posE**-I
+: массив координат, тока и азимута для электронов
<a name="Xp"></a> $(P)**Xp**-I
<a name="Yp"></a> $(P)**Yp**-I
<a name="Ip"></a> $(P)**Ip**-I
-: массив координат и тока для позитронов
+<a name="posP"></a> $(P)**posP**-I
+: массив координат, тока и азимута для позитронов
<a name="Xu"></a> $(P)**Xu**-I
<a name="Yu"></a> $(P)**Yu**-I
<a name="Iu"></a> $(P)**Iu**-I
-: неизвестные частицы
+<a name="posU"></a> $(P)**posU**-I
+: массив координат, тока и азимута для неизвестных частиц
+
+## результат измерения legacy
+
+<a name="Xe_legacy"></a> $(P)**Xe_legacy**-I
+<a name="Ye_legacy"></a> $(P)**Ye_legacy**-I
+<a name="Ie_legacy"></a> $(P)**Ie_legacy**-I
+<a name="posE_legacy"></a> $(P)**posE_legacy**-I
+<a name="Xp_legacy"></a> $(P)**Xp_legacy**-I
+<a name="Yp_legacy"></a> $(P)**Yp_legacy**-I
+<a name="Ip_legacy"></a> $(P)**Ip_legacy**-I
+<a name="posP_legacy"></a> $(P)**posP_legacy**-I
+<a name="Xu_legacy"></a> $(P)**Xu_legacy**-I
+<a name="Yu_legacy"></a> $(P)**Yu_legacy**-I
+<a name="Iu_legacy"></a> $(P)**Iu_legacy**-I
+<a name="posU_legacy"></a> $(P)**posU_legacy**-I
+: смысл переменных тотже что и в способе по умолчанию
+
+## результат измерения nan
+
+<a name="Xe_nan"></a> $(P)**Xe_nan**-I
+<a name="Ye_nan"></a> $(P)**Ye_nan**-I
+<a name="Ie_nan"></a> $(P)**Ie_nan**-I
+<a name="posE_nan"></a> $(P)**posE_nan**-I
+<a name="Xp_nan"></a> $(P)**Xp_nan**-I
+<a name="Yp_nan"></a> $(P)**Yp_nan**-I
+<a name="Ip_nan"></a> $(P)**Ip_nan**-I
+<a name="posP_nan"></a> $(P)**posP_nan**-I
+<a name="Xu_nan"></a> $(P)**Xu_nan**-I
+<a name="Yu_nan"></a> $(P)**Yu_nan**-I
+<a name="Iu_nan"></a> $(P)**Iu_nan**-I
+<a name="posU_nan"></a> $(P)**posU_nan**-I
+: смысл переменных тотже что и в способе по умолчанию
+
+## результат измерения skip
+
+<a name="Xe_skip"></a> $(P)**Xe_skip**-I
+<a name="Ye_skip"></a> $(P)**Ye_skip**-I
+<a name="Ie_skip"></a> $(P)**Ie_skip**-I
+<a name="posE_skip"></a> $(P)**posE_skip**-I
+<a name="Xp_skip"></a> $(P)**Xp_skip**-I
+<a name="Yp_skip"></a> $(P)**Yp_skip**-I
+<a name="Ip_skip"></a> $(P)**Ip_skip**-I
+<a name="posP_skip"></a> $(P)**posP_skip**-I
+<a name="Xu_skip"></a> $(P)**Xu_skip**-I
+<a name="Yu_skip"></a> $(P)**Yu_skip**-I
+<a name="Iu_skip"></a> $(P)**Iu_skip**-I
+<a name="posU_skip"></a> $(P)**posU_skip**-I
+: смысл переменных тотже что и в способе по умолчанию
+
+## статусные переменные
<a name="ready"></a> $(P)**ready**-I
: сигнал готовности данных
<a name="ready_mask"></a> $(P)**ready_mask**-I
-: маска сработавших пикапов
+<a name="ready_mask_e"></a> $(P)**ready_mask_e**-I
+<a name="ready_mask_p"></a> $(P)**ready_mask_p**-I
+<a name="ready_mask_u"></a> $(P)**ready_mask_u**-I
+: маска сработавших пикапов, в зависимости от типа частиц маска копируется в маску с типом частиц в суффиксе
<a name="count"></a> $(P)**count**-I
-: количество сработавших пикапов
+<a name="count_e"></a> $(P)**count_e**-I
+<a name="count_p"></a> $(P)**count_p**-I
+<a name="count_u"></a> $(P)**count_u**-I
+: количество сработавших пикапов, в зависимости от типа частиц данные копируются в переменную с типом частиц в суффиксе
<a name="time_total"></a> $(P)**time_total**-I
: время сбора данных
-<a name=""></a> $(P)**nameE**-RB
+<a name="nameE"></a> $(P)**nameE**-RB
: имена пикапов электронов
-<a name=""></a> $(P)**nameP**-RB
-: позитронов
+<a name="nameP"></a> $(P)**nameP**-RB
+: имена пикапов позитронов
-<a name=""></a> $(P)**nameU**-RB
-: неизвестных частиц
+<a name="nameU"></a> $(P)**nameU**-RB
+: имена пикапов неизвестных частиц
-<a name=""></a> $(P)**posE**-RB
+<a name="posE"></a> $(P)**posE**-RB
: азимут пикапов электронов
-<a name=""></a> $(P)**posP**-RB
-: позитронов
+<a name="posP"></a> $(P)**posP**-RB
+: азимут пикапов позитронов
+
+<a name="posU"></a> $(P)**posU**-RB
+: азимут пикапов неизвестных частиц
+
+
+# Групповые операции
+
+<a name="CHAN:ALL:error-SP"></a> $(P)**CHAN:ALL:error-SP**
+: сброс счётчика ошибок **error** для всех пикапов, записать 0
-<a name=""></a> $(P)**posU**-RB
-: неизвестных частиц
+<a name="CHAN:ALL:ready_meas_reset-Cmd"></a> $(P)**CHAN:ALL:ready_meas_reset-Cmd**
+: сброс счётчика измерений **ready** для всех пикапов, записать 0, результат будет заметен при следующем измерении