PyJEM.TEM3.event

class PyJEM.TEM3.event.EventKind(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)

Bases: Enum

Types of TEM events that can be received.

ChangeSpectrumMode = 1

Spectrum mode changed.

ChangedAcdHeatEnd = 2

ACD heating ended.

ChangedAcdHeatStart = 3

ACD heating started.

ChangedBakeOutEnd = 4

Bake-out ended.

ChangedBakeOutStart = 5

Bake-out started.

ChangedGIFMode = 6

GIF mode changed.

ChangedHomePositionOfDeflector = 7

Deflector home position changed.

ChangedRelativeValueOfDeflector = 8

Deflector relative value changed.

ChangedSaafLimitStatus = 9

SAAF limit status changed.

ChangedSaafMode = 10

SAAF mode changed.

ChangedSaafPosition = 11

SAAF position changed.

ChangedSaafRotationAngle = 12

SAAF rotation angle changed.

ChangedSaafRotationStatus = 13

SAAF rotation status changed.

ChangedStageNeutralStart = 14

Stage neutral start changed.

ChangedTemStemMode = 15

TEM/STEM mode changed.

ChangingTemStemMode = 16

TEM/STEM mode is changing.

ChgAlpha = 17

Alpha value changed.

ChgApertureEx = 18

Aperture (extended) changed.

ChgBrightnessZoomOnOff = 19

Brightness zoom on/off changed.

ChgContBrtInfo = 20

Contrast/brightness information changed.

ChgCorrectorSw = 21

Corrector switch changed.

ChgDefADInfo = 22

Deflector AD information changed.

ChgDefImgShift1 = 23

Deflector image shift 1 changed.

ChgDefImgShift2 = 24

Deflector image shift 2 changed.

ChgDefInfo = 25

Deflector information changed.

ChgDefObjStig = 26

Deflector objective stig changed.

ChgDefocus = 27

Defocus changed.

ChgDetStts = 28

Detector status changed.

ChgDispersion = 29

Dispersion changed.

ChgEngShift = 30

Energy shift changed.

ChgEngShiftSw = 31

Energy shift switch changed.

ChgFunctionMode = 32

Function mode changed.

ChgHT = 33

High tension value changed.

ChgHtCurrentInfo = 34

High tension current information changed.

ChgIlmMode = 35

Illumination mode changed.

ChgImageSwStts = 36

Image switch status changed.

ChgLensADInfo = 37

Lens AD information changed.

ChgLensInfo = 38

Lens information changed.

ChgLensRelaxation = 39

Lens relaxation changed.

ChgMag = 40

Magnification changed.

ChgOLSuperFine = 41

Objective lens super fine changed.

ChgOmegaAutoTune = 42

Omega auto-tune changed.

ChgPegInfo = 43

PEG information changed.

ChgPenningInfo = 44

Penning information changed.

ChgPhasePlateState = 45

Phase plate state changed.

ChgPiezoX = 46

Piezo X position changed.

ChgPiezoY = 47

Piezo Y position changed.

ChgPiezoZ = 48

Piezo Z position changed.

ChgPigInfo = 49

PIG information changed.

ChgPiraniInfo = 50

Pirani information changed.

ChgRefillStatus = 51

Refill status changed.

ChgScanRotationAngleEx = 52

Scan rotation angle (extended) changed.

ChgScenarioStatus = 53

Scenario status changed.

ChgSlitPosition = 54

Slit position changed.

ChgSlitWidth = 55

Slit width changed.

ChgSpotsize = 56

Spot size changed.

ChgStageR = 57

Stage R position changed.

ChgStageRotationCorrectionAngle = 58

Stage rotation correction angle changed.

ChgStageStts = 59

Stage status changed.

ChgStageSttsEx = 60

Stage status (extended) changed.

ChgStageTX = 61

Stage tilt X changed.

ChgStageTY = 62

Stage tilt Y changed.

ChgStageX = 63

Stage X changed.

ChgStageY = 64

Stage Y changed.

ChgStageZ = 65

Stage Z changed.

ChgStemCam = 66

STEM camera setting changed.

ChgTemStemMode = 67

TEM/STEM mode changed.

NotReadyCommunication = 68

Communication is not ready.

ReadyCommunication = 69

Communication is ready.

class PyJEM.TEM3.event.EventManager(*args, **kwargs)

Bases: object

set_enabled(event_name, enabled)

Configure whether events specified by ‘event_name’ should be queued.

Parameters:
  • event_name (str) – Event name. refer to EventKind Enum.

  • enabled (bool) – set to True to enable queuing, False to disable.

Return type:

None

Examples

>>> TEM3.EventManager().set_enabled("ChgMag", False)
>>> TEM3.EventManager().queue_info().get("ChgMag").get("enabled")
False
set_maxsize(event_name, maxsize)

Set max size of the queue for the selected event.

Parameters:
  • event_name (str) – Event name. refer to EventKind Enum.

  • maxsize (int) – queue size. default is 10.

Return type:

None

Examples

>>> TEM3.EventManager().set_maxsize("ChgMag", False)
>>> TEM3.EventManager().queue_info().get("ChgMag").get("maxsize")
100
put_event(event_name, data=None)

Add an event to the queue.

Parameters:
  • event_name (str) – Event name. Refer to EventKind Enum.

  • data (object, optional) – Data associated with the event, by default None

Return type:

None

get_event(event_name)

Retrieve an event from the queue.

Parameters:

event_name (str) – Event name. Refer to EventKind Enum.

Returns:

EventData object if an event is available in the queue, None otherwise.

Return type:

EventData or None

Examples

>>> eventdata = TEM3.EventManager().get_event("ChgMag")
>>> type(data)
EventData
>>> eventdata.name
'ChgMag'
>>> eventdata.data
(300000, 'X', 'x300k')
qsize(event_name)

Get the current number of events in the queue.

Parameters:

event_name (str) – Event name. Refer to EventKind Enum.

Returns:

Number of events currently in the queue.

Return type:

int

Examples

>>> TEM3.EventManager().qsize("ChgMag")
0
queue_info()

Get information about all event queues.

Returns:

Dictionary containing queue information for all events, including data size, max size, and enabled status.

Return type:

dict

Examples

>>> TEM3.EventManager().queue_info()
{
    'ChangeSpectrumMode': {
        'datasize': 0,
        'maxsize': 10,
        'enabled': True
    },
    'ChangedAcdHeatEnd': {
        'datasize': 0,
        'maxsize': 10,
        'enabled': True
    }, ...
regist_method(event_name, callback, nname)

Register a callback method for a specific event.

Parameters:
  • event_name (str) – Event name. Refer to EventKind Enum.

  • callback (callable) – Callback function to be executed when the event occurs.

  • nname (str) – Unique identifier for the callback.

Returns:

Dictionary containing all registered callbacks for the event.

Return type:

dict

Examples

>>> def hook_method(*args):
...     print("Event occurred:", args)
...
>>> TEM3.EventManager().regist_method("ChgMag", hook_method, "my_hook")
{'my_hook': <function hook_method at 0x...>}
>>> TEM3.EOS3().UpSelector()  # This will trigger the event and call hook_method
Event occurred: (300000, 'X', 'x300k')
unregist_method(event_name, nname)

Unregister a callback method from a specific event.

Parameters:
  • event_name (str) – Event name. Refer to EventKind Enum.

  • nname (str) – Unique identifier for the callback to remove.

Return type:

None

Examples

>>> TEM3.EventManager().unregist_method("ChgMag", "my_hook")
>>> TEM3.EOS3().UpSelector() # This will no longer trigger the hook_method
>>>
method_list(event_name)

Get list of all callback methods registered for a specific event.

Parameters:

event_name (str) – Event name. Refer to EventKind Enum.

Returns:

List of callback functions registered for the event.

Return type:

list

Examples

>>> TEM3.EventManager().method_list("ChgMag")
>>> []
class PyJEM.TEM3.event.EventData(name, data=None, time=None)

Bases: object

Event queue data format.