PyJEM.TEM3.event¶
- class PyJEM.TEM3.event.EventKind(value, names=None, *values, module=None, qualname=None, type=None, start=1, boundary=None)¶
Bases:
EnumTypes 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:
objectEvent queue data format.