Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Key nameSource

Write freq. [Hz]

Data size [byte]

Throughput
[kbyte/s]

FomatNotes
DAFNESTATE_JDAT

General Timing Window: it fetches from the DEVIL387 the GTIMDyn global and combines some of its data with information obtained from the Timing Status Word register. The result (GTIMStatusData) is translated as a Json document and written to Memcached on:
- "Apply Sequence" command;
- "BTF RUN" command.


~0~250~0

The key content is a Json document with the following format.
{
  "bunch_seq_1_32":0,
  "bunch_seq_33_64":0,
  "bunch_seq_65_96":0,
  "bunch_seq_97_120":0,
  "accumulator_pulses":0,
  "linac_freq":0,
  "extraction_freq":0.0,
  "equidistant":0,
  "mode":0,
  "execution":0,
  "standby_state":0,
  "run":0
}


Values for the various fiedls are as consistent as possible with the "Timing Status Word" corresponding bitfields. In some cases the representation is modified in order to make it more intuitive (e.g. mode: -1=electrons, 1=positrons) or even directly usable (e.g. linac_freq: 25 Hz, 50 Hz). In other cases (execution, stand_by_state) the value is equal to that of the corresponding bitfield in the Timing Status Word register (see table below).

  • bunch_seq_1_32, _33_64, _65_96: number in the range (0-4294967295)
  • bunch_seq_97-120: number in the range (0-16777215)
  • "accumulator_pulses": integer number
  • linac_freq: 25.0, 50.0 [Hz] floating point
  • extraction_freq: 0.2, 0.5, 1.0, 2.0 [Hz] floating point
  • equidistant: 0=contiguous, 1=equidistant
  • mode: -1=electrons, 1=positrons
  • execution: 1, 2, 4, 8, 16 (see table below)
  • standby_state: 1, 2, 4 (see table below)
  • run: 0=standby ,1=run

The Json key is worked out by a SubVI of the General Timing window: /u2/dcs/source_solaris/0_classes/TIM/console/timing_2/General_Timing_3.3.3.vi - build 20230125-1145.

The SubVI is:

/u2/dcs/source_solaris/0_classes/TIM/console/timing_2/TimingStatusDecode.vi
(There is also another version named "TimingStatusDecode2.vi" that represents the DAFNE fill pattern as a unique sring of 120 "0" or "1" characters).

The key is updated any time a user issues "Apply Sequence"or "BTF RUN" from the General Timing window.

Total throughput

kbyte/sMbit/s
~0~0


Excerpt

Anchor
Table1
Table1
Timing Status Word register

bit [0-31]Variablebit valuescorresponding
value
bit valuescorresponding
value
bit valuescorresponding
value
bit valuescorresponding
value
bit valuescorresponding
value
0LINAC freq. [Hz]1

25

050





101





2extraction freq. [Hz]10.200.50102

30100

40010

50001

6contiguous/equidistant0contiguous1equidistant





7mode -/+0e-1e+





8execution1Single cycle first bunch0Single cycle same bunch0Single cycle next bunch0Single sequence0Go forever
901000
1000100
1101010
1200001
13standby state (*)1

All Off LINAC standby

(Non spara niente?)

0

Spectrometer only 1Hz

(spara 1Hz allo spettrometro)

0

Disable gun

(disable gun e poi?)





14010



15001



16run/standby1run0standby





1701





18...31










  (*) "standby state" is the condition which is reached when a "standby" command is issued

DAFNE STATELinac Freqextraction freqcontiguous/equidistantmode -/+executionstandby state (*)run/standbyDESCRIPTIONEXTERNAL INPUTS

Antonio's comment


STDBY(0)




1??
No beam ? Global off?

E- INJECT (1)>0>0*0

Go forever(8)/

Single sequence(16)

0?? (codifica esistente?)1I

Dafne KCK ON

Accumulator 

Se stdby =0 non esiste questo stato non ha un'unica soluzione
E+ INJECT (2)>0>0*1

Go forever(8)/

Single sequence(16)

0?? (codifica esistente?)1IDafne KCK ONSe stdby =0 non esiste questo stato non ha un'unica soluzione
E- (3) STORED*******ONLY Electrons in dafneI ele >0 I pos =0
E+ (4) STORED*******ONLY Positrons in dafneI pos >0 I ele =0
FILLED(5)*******Nell'assunzione che significhi fascio che non collideI pos >0 && ele > 0 & Lum=0
COLLIDING(6)*******
 pos >0 && ele > 0 & Lum>0
BTF DELIVERING









BTF DELIVERING & COLLIDING
































Code Block
languagecpp
[10:10 AM] Alessandro D'Uffizi
switch (status)
    {
        case 0: return "DAFNE: STDBY";
        case 1: return "DAFNE: E- INJECT";
        case 2: return "DAFNE: E+ INJECT";
        case 3: return "DAFNE: E- STORED";
        case 4: return "DAFNE: E+ STORED";
        case 5: return "DAFNE: FILLED";
        case 6: return "DAFNE: COLLIDING";
        case 7: return "DAFNE: BTF DELIVERING";
        case 8: return "DAFNE: BTF DELIVERING & COLLIDING";
        default: return "DAFNE: UNKNOWN";
    }





...