MicroManager1.4核心类CMMcore API注解

MM2.0版本早已发布,能够更完全对图像取得控制,建议直接查询使用2.0API        

Micromanager官网上关于API的解释,尤其是传入参数与返回值描述并不详细,甚至没有,只根据命名可能会有误解,在学习过程中会有比较大的麻烦,而且原开发人员已不再为Javadoc更新,包括新更新API的也不在网站上更新,只可导入类后查看

主要针对1.4版本

先说下MM软件上的两个东西

设备属性浏览器:

第一竖格第一竖排为传入参数Label,labelname,XXXname,第二竖排为PropName,第二竖格为传入参数value

硬件向导设备概况:

在这里对此API做一下记录:

CMMcore是MM的一个核心类,利用其API可以完成对底层设备的控制:

构造函数:CMMcore(),初始化缓冲区和错误消息文本。 此时它不会加载任何硬件设备

主要对Public的方法进行说明:

public TaggedImage getTaggedImage(int cameraChannelIndex)
TaggedIamge主要包括两个字段 TaggedImage(java.lang.Object pix, JSONObject tags)其余方法继承自Object类
pix是指向图像像素的指针,存储取决于图像类型包括byte[]short[], or int[]。
tags是对JSONObject中的图像元数据的引用。
public TaggedImage getTaggedImage()
public TaggedImage getLastTaggedImage(int cameraChannelIndex)
public TaggedImage getLastTaggedImage()
public TaggedImage getNBeforeLastTaggedImage(long n)
public TaggedImage popNextTaggedImage(int cameraChannelIndex)
public TaggedImage popNextTaggedImage()
public java.awt.Rectangle getROI()

返回图像显示尺寸大小

public java.awt.Rectangle getROI(java.lang.String label)
传入参数:label为图像label
public java.util.List<java.awt.Rectangle> getMultiROI()(已注销,List<>而且为抽象类)
public void setMultiROI(java.util.List<java.awt.Rectangle> rects)(已注销)
public java.awt.geom.Point2D.Double getXYStagePosition(java.lang.String stage)

传入参数stage为电机label

public java.awt.geom.Point2D.Double getGalvoPosition(java.lang.String galvoDevice)

Galvo,扫描振镜

返回扫描振镜的位置

public static void noop()

什么也不做(延时用?)

public void loadDevice(java.lang.String label, java.lang.String moduleName, java.lang.String deviceName)

举例 core.loadDevice("Camera", "DemoCamera", "DCam")

上面的命令有三个参数:标签、库和名称。设备标签是我们要分配给特定设备的名称。这完全是随意的,完全取决于我们。我们选择把我们的相机简单地称为“相机”。“DemoCamera”是适配器所在的动态库名称。“DCAM”是我们要加载的设备适配器的名称。

在正式使用前还需要 core.initializeDevice("Camera");

public void unloadDevice(java.lang.String label)
public void unloadAllDevices()
public void initializeAllDevices()

调用所有已加载设备的初始化方法Initialize() ;

public void initializeDevice(java.lang.String label)
public void reset()

卸载所有设备,并清空所有配置与属性块

public void unloadLibrary(java.lang.String moduleName)
modeleName信息可在硬件向导里得到,与Library是同一个东西?
public void updateCoreProperties()

public java.lang.String getCoreErrorText(int code)

public java.lang.String getVersionInfo()
public Configuration getSystemState()

Configuration是一个类,包含所有设备的所有属性值的集合,可以理解为ArrayList<PropertySetting>,与PropertySetting类联系比较紧密,PropertySetting类顾名思义主要是对属性进行操作的方法;

返回整个系统状态,即所有设备的所有属性值的集合。

public void setSystemState(Configuration conf)

设置配置对象中包含的所有属性。该过程将尝试设置它遇到的每个属性,但如果任何属性失败或请求的设备不存在,则不会停止。它只会悄无声息地继续下去。

public Configuration getConfigState(java.lang.String group, java.lang.String config)

仅对包含在指定配置中的设备返回系统的部分状态。

public Configuration getConfigGroupState(java.lang.String group)

仅为包含在指定group中的设备返回系统的部分状态。它将创建group中引用的所有设备的并集。

public void saveSystemState(java.lang.String fileName)

将当前系统状态保存为MM特定格式的文本文件。文件只记录读写属性。补充的loadSystemState()命令可以直接读取文件格式。

public void loadSystemState(java.lang.String fileName)

从符合MM特定格式的文本文件加载系统配置。该配置包含从读写属性生成所需系统状态的命令列表。

public void saveSystemConfiguration(java.lang.String fileName)

将当前系统配置保存到MM特定格式的文本文件中。配置文件只记录硬件设置所必需的信息:设备、标签、设备预初始化属性和配置。文件格式与系统状态相同。

public void loadSystemConfiguration(java.lang.String fileName)

从符合MM特定格式的文本文件加载系统配置。该配置包含用于生成所需系统状态的命令列表:设备、标签、设备、属性和配置。

public void registerCallback(MMEventCallback cb)

注册一个回调(listener类)。MMCore将使用此接口发送有关内部事件的通知。

public void setPrimaryLogFile(java.lang.String filename, boolean truncate)

truncate状态代表完全删除?

设置主核心日志文件。

public void setPrimaryLogFile(java.lang.String filename)
public java.lang.String getPrimaryLogFile()

返回主核心日志文件名

public void logMessage(java.lang.String msg)

在日志文件中记录文本消息。

public void logMessage(java.lang.String msg, boolean debugOnly)
public void enableDebugLog(boolean enable)

使能或者关闭调试信息记录

public boolean debugLogEnabled()
public void enableStderrLog(boolean enable)

启用或禁用标准控制台上的日志消息显示。

public boolean stderrLogEnabled()
public int startSecondaryLogFile(java.lang.String filename, boolean enableDebug, boolean truncate, boolean synchronous)

public int startSecondaryLogFile(java.lang.String filename, boolean enableDebug, boolean truncate)

public int startSecondaryLogFile(java.lang.String filename, boolean enableDebug)
public void stopSecondaryLogFile(int handle)

停止将日志输出捕获到附加文件中

public StrVector getDeviceAdapterSearchPaths()StrVector类的功能类似于ArrayList<String>
public void setDeviceAdapterSearchPaths(StrVector paths)
public static void addSearchPath(java.lang.String path)
public StrVector getDeviceAdapterNames()

返回可发现设备适配器的名称。

public static StrVector getDeviceLibraries()
public StrVector getAvailableDevices(java.lang.String library)

传入参数library也可在硬件向导中得到

从指定的设备库获取可用设备

public StrVector getAvailableDeviceDescriptions(java.lang.String library)

从指定的库获取可用设备的说明。

public LongVector getAvailableDeviceTypes(java.lang.String library)

从指定的库中获取可用设备的类型信息。

LongVector类似于ArrayList<Integer>,用处???

public StrVector getLoadedDevices()

返回当前加载设备的标签组。

public DeviceType getDeviceType(java.lang.String label)

Device该类不可被继承,主要包含所有设备的类型,其中方法toString()是返回设备类型

public java.lang.String getDeviceLibrary(java.lang.String label)

返回设备库(又名模块(module),设备适配器(adapter))名称。

public java.lang.String getDeviceName(java.lang.String label)

返回给定设备标签的设备名称。“name”是由库确定的,是不可变的,而“Label”是用户指定的,表示设备的高级句柄。

public java.lang.String getDeviceDescription(java.lang.String label)

返回给定设备标签的说明文本。“Description”由库确定,并且是不可变的。

public StrVector getDevicePropertyNames(java.lang.String label)

返回设备支持的所有属性名称。返回:属性名称数组

public boolean hasProperty(java.lang.String label, java.lang.String propName)

检查设备是否具有指定名称的属性。在未定义设备标签的情况下,将引发异常。

public java.lang.String getProperty(java.lang.String label, java.lang.String propName)

可在设备属性浏览器中查找两个传入函数;

public void setProperty(java.lang.String label, java.lang.String propName, java.lang.String propValue)
public void setProperty(java.lang.String label, java.lang.String propName, boolean propValue)
public void setProperty(java.lang.String label, java.lang.String propName, int propValue)
public void setProperty(java.lang.String label, java.lang.String propName, float propValue)
public void setProperty(java.lang.String label, java.lang.String propName, double propValue)

以上方法的多态性会根据传入参数类型自动识别,传入参数名称及类型均可在设备属性浏览器中查询

public StrVector getAllowedPropertyValues(java.lang.String label, java.lang.String propName)

返回指定属性的所有有效值。如果数组为空,则表示对值没有限制。但是,即使允许所有的值,也不能保证所有这些值都将在运行时被设备实际接受。

public boolean isPropertyReadOnly(java.lang.String label, java.lang.String propName)

告诉我们是否可以修改属性。

public boolean isPropertyPreInit(java.lang.String label, java.lang.String propName)

告诉我们是否必须在初始化之前定义属性。

public boolean isPropertySequenceable(java.lang.String label, java.lang.String propName)

查询设备是否可以在指定的属性序列中使用

public boolean hasPropertyLimits(java.lang.String label, java.lang.String propName)

查询设备是否有属性限制;

public double getPropertyLowerLimit(java.lang.String label, java.lang.String propName)
public double getPropertyUpperLimit(java.lang.String label, java.lang.String propName)
public PropertyType getPropertyType(java.lang.String label, java.lang.String propName)

ProperType类包含字段Float,Integer,String,Undef;

public void startPropertySequence(java.lang.String label, java.lang.String propName)

在设备的属性中启动一个持续的被触发事件序列,这应该只对可排序的设备属性进行调用。?

public void stopPropertySequence(java.lang.String label, java.lang.String propName)

停止设备属性中正在进行的已触发事件序列,这只应针对可排序的设备属性进行调用。

public int getPropertySequenceMaxLength(java.lang.String label, java.lang.String propName)

查询“设备”属性,以获取可以在一个序列中放置的最大事件数。

public void loadPropertySequence(java.lang.String label,java.lang.String propName, StrVector eventSequence)
public boolean deviceBusy(java.lang.String label)
public void waitForDevice(java.lang.String label)

等待(阻止调用线程),直到指定的设备变得不忙(non-busy)。

public void waitForConfig(java.lang.String group, java.lang.String configName)

堵塞直到配置中包含的所有设备都准备就绪。

public boolean systemBusy()

检查整个系统的繁忙状态。如果任何设备处于繁忙状态,系统将报告繁忙。   

public void waitForSystem()

阻塞直到系统中的所有设备都准备好(non-busy)。

public void waitForImageSynchro()
等待ImageSynchro列表中最慢的设备。
public boolean deviceTypeBusy(DeviceType devType)
检查特定类型的所有设备的繁忙状态。如果指定类型的任何设备处于繁忙状态,系统将报告繁忙。
public void waitForDeviceType(DeviceType devType)

堵塞直到所有特定类型的设备都准备好为止(non-busy)。

public double getDeviceDelayMs(java.lang.String label)
报告特定设备的动作延迟(毫秒)。在同步过程中使用延迟,以确保执行该操作,而不进行轮询。值“0”表示操作被阻塞或需要轮询设备状态。有些设备忽略了此设置。
返回:延迟时间(以毫秒为单位)。

public void setDeviceDelayMs(java.lang.String label, double delayMs)

重写操作延迟的内置值。有些设备忽略了此设置。

public boolean usesDeviceDelay(java.lang.String label)
public void setTimeoutMs(int timeoutMs)
public int getTimeoutMs()
public void sleep(double intervalMs)

等待(阻塞调用线程)指定时间(ms)。

public java.lang.String getCameraDevice()

返回当前选定的照相机设备的标签。返回camera name

public java.lang.String getShutterDevice()
public java.lang.String getFocusDevice()

返回当前选定焦点设备的标签。返回:focus stage name

public java.lang.String getXYStageDevice()
public java.lang.String getAutoFocusDevice()
public java.lang.String getImageProcessorDevice()

返回当前选定的图像处理器设备的标签。

public java.lang.String getSLMDevice()

SLM:spatial light modulator 空间光调制器

public java.lang.String getGalvoDevice()
public java.lang.String getChannelGroup()

返回确定频道选择的组。

public void setCameraDevice(java.lang.String cameraLabel)
public void setShutterDevice(java.lang.String shutterLabel)
public void setFocusDevice(java.lang.String focusLabel)
public void setXYStageDevice(java.lang.String xyStageLabel)
public void setAutoFocusDevice(java.lang.String focusLabel)
public void setImageProcessorDevice(java.lang.String procLabel)
public void setSLMDevice(java.lang.String slmLabel)
public void setGalvoDevice(java.lang.String galvoLabel)
public void setChannelGroup(java.lang.String channelGroup)
public Configuration getSystemStateCache()

返回整个系统状态,即所有设备的所有属性值的集合。此方法将返回缓存的值,而不是查询每个设备。
返回:包含设备-属性-值三重奏集合的配置对象。
public void updateSystemStateCache()
public java.lang.String getPropertyFromCache(java.lang.String deviceLabel, java.lang.String propName)
public java.lang.String getCurrentConfigFromCache(java.lang.String groupName)

根据缓存中的数据返回给定组的配置。空字符串是一个有效的返回值,因为系统状态并不总是对应于任何定义的配置。此外,一般而言,系统状态可能适合多种配置。此方法将只返回第一个匹配的配置(如果有的话)。
返回:缓存的当前配置预置名称

public Configuration getConfigGroupStateFromCache(java.lang.String group)

仅为包含在指定组中的设备返回系统缓存的部分状态。它将创建组中引用的所有设备的并集。

Public void defineConfig(java.lang.String groupName,   java.lang.String configName)

定义配置。如果以前没有定义配置组/名称,则将自动创建新配置;否则什么都不会发生。

public void defineConfig(java.lang.String groupName, java.lang.String configName, java.lang.String deviceLabel,  java.lang.String propName, java.lang.String value)

public void defineConfigGroup(java.lang.String groupName)
public void deleteConfigGroup(java.lang.String groupName)

删除整个配置组。

public void renameConfigGroup(java.lang.String oldGroupName, java.lang.String newGroupName)
public boolean isGroupDefined(java.lang.String groupName)
public void setConfig(java.lang.String groupName, java.lang.String configName)

将配置应用于group。如果以前没有定义配置,则该命令将失败。

public void deleteConfig(java.lang.String groupName, java.lang.String configName, java.lang.String deviceLabel, java.lang.String propName)
public void renameConfig(java.lang.String groupName, java.lang.String oldConfigName, java.lang.String newConfigName)
public StrVector getAvailableConfigGroups()

返回所有已定义配置组的名称。

public StrVector getAvailableConfigs(java.lang.String configGroup)

返回给定组中所有已定义的配置名称。

返回:配置名称数组

public java.lang.String getCurrentConfig(java.lang.String groupName)

返回给定组的当前配置。空字符串是一个有效的返回值,因为系统状态并不总是对应于任何定义的配置。此外,一般而言,系统状态可能适合多种配置。此方法将只返回第一个匹配的配置(如果有的话)。

返回:当前配置预置的名称

public Configuration getConfigData(java.lang.String configGroup,
                                   java.lang.String configName)

返回给定组和名称的Configuration对象。

public java.lang.String getCurrentPixelSizeConfig()

获取当前像素配置名称

public java.lang.String getCurrentPixelSizeConfig(boolean cached)
public double getPixelSizeUm()

返回以微米为单位的当前像素大小。该方法是基于检测当前像素大小的配置和调整binning。

public double getPixelSizeUm(boolean cached)
public double getPixelSizeUmByID(java.lang.String resolutionID)
返回所请求的像素大小组的像素大小(以um为单位)。
public DoubleVector getPixelSizeAffine()

返回当前的仿射变换到与舞台移动相关的摄像机像素.。此函数返回存储的仿射变换,并将其更正为绑定。

public DoubleVector getPixelSizeAffine(boolean cached)

返回当前的仿射变换到与舞台移动相关的摄像机像素.。此函数返回存储的仿射变换,并将其校正为binning和已知的放大设备。

public DoubleVector getPixelSizeAffineByID(java.lang.String resolutionID)

对于所请求的像素大小组,返回带有舞台移动的相关相机像素的仿射变换,将返回未经校正的原始仿射变换,以进行平移和放大。

public double getMagnificationFactor()

返回系统中所有放大镜的乘积,如果没有找到,返回1.0,GetPixelSizeUm在内部使用

返回:系统中所有放大镜设备的产品,如果没有找到,则为1.0

public void setPixelSizeUm(java.lang.String resolutionID, double pixSize)

为指定的分辨率传感配置设置像素大小(以微米为单位)。 

public void setPixelSizeAffine(java.lang.String resolutionID,  DoubleVector affine)

为特定像素大小配置设置原始仿射变换由3x3矩阵的前两行组成,第三行通常假定为0.0 1.0。转换对于绑定1和没有放大设备应该是有效的(如getMagn举例来说()函数所给出的)。顺序:行[0]COL[0]行[0]c[1]行[0]c[2]行[1]c[0]行[1]c[1]行[1]c[2]给定向量必须有6双,否则就会出错

public void definePixelSizeConfig(java.lang.String resolutionID,  java.lang.String deviceLabel, java.lang.String propName, java.lang.String value)
public void definePixelSizeConfig(java.lang.String resolutionID)

定义一个空白的像素尺寸

public StrVector getAvailablePixelSizeConfigs()

返回所有已定义的解析预置名称

public boolean isPixelSizeConfigDefined(java.lang.String resolutionID)
public void setPixelSizeConfig(java.lang.String resolutionID)

应用像素大小配置。如果以前没有定义配置,则该命令将失败。

public void renamePixelSizeConfig(java.lang.String oldConfigName,
                                  java.lang.String newConfigName)
public void deletePixelSizeConfig(java.lang.String configName)
public Configuration getPixelSizeConfigData(java.lang.String configName)
public void definePropertyBlock(java.lang.String blockName, java.lang.String propertyName, java.lang.String propertyValue)
public StrVector getAvailablePropertyBlocks()

返回所有已定义的属性块标识符。

public PropertyBlock getPropertyBlockData(java.lang.String blockName)
public void setROI(int x, int y, int xSize, int ySize)
public void setROI(java.lang.String label, int x, int y, int xSize, int ySize)
public void getROI(int[] x, int[] y, int[] xSize, int[] ySize)
public void getROI(java.lang.String label,  int[] x, int[] y, int[] xSize, int[] ySize)
public void clearROI()
public boolean isMultiROISupported()

public boolean isMultiROIEnabled()
public void setMultiROI(UnsignedVector xs,  UnsignedVector ys,  UnsignedVector widths, UnsignedVector heights)

UnsignedVector类功能类似于ArrayList<Long>

public void setExposure(double exp)
public void setExposure(java.lang.String cameraLabel, double dExp)
public double getExposure()
public double getExposure(java.lang.String label)
public void snapImage()

使用当前设置获取单个图像。当Acq线程运行时,不允许使用Snap。

public java.lang.Object getImage()

公开内部图像缓冲区。

返回:指向内部图像缓冲区的指针。

public java.lang.Object getImage(long numChannel)

返回给定摄像机通道的内部图像缓冲区。
返回: 指向内部图像缓冲区的指针。
public long getImageWidth()
public long getImageHeight()
public long getBytesPerPixel()

每个像素的字节数。这个值不一定反映特定相机A/D转换器的性能。
返回:字节数

public long getImageBitDepth()

从相机有多少位期望动态范围。该值只应用作指导原则-它不能保证图像缓冲区只包含返回的动态范围中的值。
返回:位数

public long getNumberOfComponents()

返回默认照相机返回的组件数。例如,彩色相机将返回4个组件(RGBA)的每一次拍摄。

public long getNumberOfCameraChannels()

返回默认摄像机返回的同时通道数。

public java.lang.String getCameraChannelName(long channelNr)
public int getImageBufferSize()

返回内部图像缓冲区的大小。
返回:缓冲区大小

public void assignImageSynchro(java.lang.String deviceLabel)

将设备添加到图像同步列表中。图像获取等待此列表中的所有设备。

public void removeImageSynchro(java.lang.String deviceLabel)

从映像同步列表中移除设备。

public void removeImageSynchroAll()
public void setAutoShutter(boolean state)

如果启用此选项,Shutter在获取映像时自动打开和关闭。

public boolean getAutoShutter()
public void setShutterOpen(boolean state)

打开或关闭当前选定的(默认)快门。

public boolean getShutterOpen()
public void setShutterOpen(java.lang.String shutterLabel, boolean state)
public boolean getShutterOpen(java.lang.String shutterLabel)
public void startSequenceAcquisition(int numImages, double intervalMs, boolean stopOnOverflow)
public void startSequenceAcquisition(java.lang.String cameraLabel,  int numImages,  double intervalMs,  boolean stopOnOverflow)
public void prepareSequenceAcquisition(java.lang.String cameraLabel)

准备好获取序列的摄像机,以节省下一个将要调用的startSequenceAcquations()调用中的时间。

public void startContinuousSequenceAcquisition(double intervalMs)

开始连续的摄像机序列采集。此命令在获取期间不阻止调用线程。

public void stopSequenceAcquisition()
public void stopSequenceAcquisition(java.lang.String cameraLabel)
public boolean isSequenceRunning()

检查当前摄像机是否正在获取序列,当序列进行时返回false

public java.lang.Object getLastImage()

从循环缓冲区获取最后一幅图像。如果缓冲区为空,则返回0。

public java.lang.Object popNextImage()

从循环缓冲区中获取并且移除下一幅图像。如果缓冲区为空,则返回0。

public java.lang.Object getLastImageMD(long channel, long slice,  Metadata md)

metedata????

public java.lang.Object popNextImageMD(long channel, long slice, Metadata md)
public java.lang.Object getLastImageMD(Metadata md)

返回指向上次插入循环缓冲区的图像像素的指针,该指针还提供与该图像关联的所有元数据。

public java.lang.Object getNBeforeLastImageMD(long n, Metadata md)

返回一个指向n个图像之前插入的图像像素的指针,该指针还提供与该图像关联的所有元数据。

public java.lang.Object popNextImageMD(Metadata md)
public int getRemainingImageCount()
public int getBufferTotalCapacity()
public int getBufferFreeCapacity()
public boolean isBufferOverflowed()
public void setCircularBufferMemoryFootprint(long sizeMB)

为循环缓冲区预留内存

public long getCircularBufferMemoryFootprint()
public void initializeCircularBuffer()

根据当前相机设置初始化循环缓冲区。

public void clearCircularBuffer()

从循环缓冲区中移除所有图像。

public boolean isExposureSequenceable(java.lang.String cameraLabel)

询问相机是否可以在一个序列中使用曝光

public void startExposureSequence(java.lang.String cameraLabel)

在相机中启动连续的触发曝光序列-这只适用于曝光时间可排序的相机

public void stopExposureSequence(java.lang.String cameraLabel)

停止相机中持续的一系列触发曝光-这只适用于曝光时间可排序的相机

public int getExposureSequenceMaxLength(java.lang.String cameraLabel)

获取照相机曝光序列的最大长度。这只适用于曝光时间可排序的相机。

public void loadExposureSequence(java.lang.String cameraLabel, DoubleVector exposureSequence_ms)

将一系列曝光时间传递给相机。这只适用于曝光时间可排序的相机

public double getLastFocusScore()

从聚焦设备返回最新的焦点得分。使用此值估计或记录焦点的可靠性。值的范围与设备有关。

public double getCurrentFocusScore()

从在当前Z位置测量的默认对焦设备返回焦点得分。使用此值创建概要文件,或者只是验证图像处于焦点中。返回分数的绝对范围取决于实际的聚焦设备。

public void enableContinuousFocus(boolean enable)

启用或禁用连续聚焦硬件设备的操作。

public boolean isContinuousFocusEnabled()
public boolean isContinuousFocusLocked()
public boolean isContinuousFocusDrive(java.lang.String stageLabel)

检查舞台是否具有连续聚焦能力(连续聚焦运行时可以设置位置)。

public void fullFocus()

为一次拍摄的聚焦装置执行焦点获取和锁定.

public void incrementalFocus()

为单镜头对焦装置执行增量对焦。

public void setAutoFocusOffset(double offset)

应用偏移的一次拍摄对焦装置.

public double getAutoFocusOffset()
public void setState(java.lang.String stateDeviceLabel, int state)

设置特定设备上的状态(位置)。如果设备不支持状态,则该命令将失败。

   

public int getState(java.lang.String stateDeviceLabel)
public int getNumberOfStates(java.lang.String stateDeviceLabel)

返回可用位置的总数(状态)。

public void setStateLabel(java.lang.String stateDeviceLabel, java.lang.String stateLabel)

使用先前分配的标签(字符串)设置设备状态。

public java.lang.String getStateLabel(java.lang.String stateDeviceLabel)
public void defineStateLabel(java.lang.String stateDeviceLabel, int state, java.lang.String stateLabel)
public StrVector getStateLabels(java.lang.String stateDeviceLabel)
public int getStateFromLabel(java.lang.String stateDeviceLabel, java.lang.String stateLabel)
public PropertyBlock getStateLabelData(java.lang.String stateDeviceLabel, java.lang.String stateLabel)

返回为特定设备和状态标签定义的属性值对的集合。

PropertyBlock类是PropertyPair的集合,PropertyPair类似于哈希表,但是只有一对,包括PropertyNamePropertyValue

public PropertyBlock getData(java.lang.String stateDeviceLabel)
public void setPosition(java.lang.String stageLabel, double position)
public void setPosition(double position)
public double getPosition(java.lang.String stageLabel)
public double getPosition()
public void setRelativePosition(java.lang.String stageLabel, double d)

设定stage的相对位置(微米)。

public void setRelativePosition(double d)
public void setOrigin(java.lang.String stageLabel)

在当前位置使给定的焦点/Z阶段的坐标为零。

public void setOrigin()
public void setAdapterOrigin(java.lang.String stageLabel, double newZUm)

启用给定焦点/Z stage坐标的软件转换。

public void setAdapterOrigin(double newZUm)
public void setFocusDirection(java.lang.String stageLabel, int sign)

设定stage的焦点方向。

public boolean isStageSequenceable(java.lang.String stageLabel)

查询平台是否可以在序列中使用

public void startStageSequence(java.lang.String stageLabel)

在一个stage中启动一个持续的触发事件序列-这应该被stage所允许

public void stopStageSequence(java.lang.String stageLabel)
public int getStageSequenceMaxLength(java.lang.String stageLabel)
public void loadStageSequence(java.lang.String stageLabel, DoubleVector positionSequence)
public void setStageLinearSequence(java.lang.String stageLabel, double dZ_um, int nSlices)
public void setXYPosition(java.lang.String xyStageLabel, double x, double y)
public void setXYPosition(double x, double y)
public void setRelativeXYPosition(java.lang.String xyStageLabel, double dx, double dy)
public void setRelativeXYPosition(double dx, double d)
public void getXYPosition(java.lang.String xyStageLabel, double[] x_stage, double[] y_stage)
public void getXYPosition(double[] x_stage, double[] y_stage)
public double getXPosition(java.lang.String xyStageLabel)
public double getYPosition(java.lang.String xyStageLabel)
public double getXPosition()
public double getYPosition()
public void stop(java.lang.String xyOrZStageLabel)

停止XY或 焦点/Z 电机

public void home(java.lang.String xyOrZStageLabel)

为XY或Focus/Z电机执行硬件归位操作。

public void setOriginXY(java.lang.String xyStageLabel)
public void setOriginXY()

在当前位置使给定的XY工作台的坐标为零。

public void setOriginX(java.lang.String xyStageLabel)
public void setOriginX()
public void setOriginY(java.lang.String xyStageLabel)
public void setOriginY()
public void setAdapterOriginXY(java.lang.String xyStageLabel, double newXUm, double newYUm)
public void setAdapterOriginXY(double newXUm,double newYUm)
public void startXYStageSequence(java.lang.String xyStageLabel)
public void stopXYStageSequence(java.lang.String xyStageLabel)
public int getXYStageSequenceMaxLength(java.lang.String xyStageLabel)
public void loadXYStageSequence(java.lang.String xyStageLabel, DoubleVector xSequence,DoubleVector ySequence)
public void setSerialProperties(java.lang.String portName,
                                java.lang.String answerTimeout,
                                java.lang.String baudRate,
                                java.lang.String delayBetweenCharsMs,
                                java.lang.String handshaking,
                                java.lang.String parity,
                                java.lang.String stopBits)

以上参数可根据通信协议进行设置,一般使用手册里会给出,parity是校正方式

public void setSerialPortCommand(java.lang.String portLabel, java.lang.String command,java.lang.String term)

重点注意:传入参数:portlabel不是用户在配置硬件向导文件时定义的串口名,而是计算机的串口号:如“COM1”“COM2”等等

command为传入命令。term为结束符,用户判断command是否结束。

public java.lang.String getSerialPortAnswer(java.lang.String portLabel, java.lang.String term)

连续读取串行端口,直到遇到终止符。

public CharVector readFromSerialPort(java.lang.String portLabel)

读取Rx缓冲区的内容

CharVector功能类似于ArrayList<char>

public void setSLMImage(java.lang.String slmLabel, byte[] pixels)
public void setSLMImage(java.lang.String slmLabel, int[] pixels)

写一个32位彩色图像到SLM.

public void setSLMPixelsTo(java.lang.String slmLabel, short intensity)

将所有SLM像素设置为单个8位亮度。

public void setSLMPixelsTo(java.lang.String slmLabel, short red,short green, short blue)
public void displaySLMImage(java.lang.String slmLabel)

在SLM上显示等待的图像。

public void setSLMExposure(java.lang.String slmLabel, double exposure_ms)
public double getSLMExposure(java.lang.String slmLabel)
public long getSLMWidth(java.lang.String slmLabel)
public long getSLMHeight(java.lang.String slmLabel)
public long getSLMNumberOfComponents(java.lang.String slmLabel)
public long getSLMBytesPerPixel(java.lang.String slmLabel)
public int getSLMSequenceMaxLength(java.lang.String slmLabel)
public void startSLMSequence(java.lang.String slmLabel)
public void stopSLMSequence(java.lang.String slmLabel)
public void loadSLMSequence(java.lang.String slmLabel, java.util.List<byte[]> imageSequence)
public void pointGalvoAndFire(java.lang.String galvoLabel,double x, double y,double pulseTime_us)
public void setGalvoSpotInterval(java.lang.String galvoLabel, double pulseTime_us)
public void setGalvoPosition(java.lang.String galvoLabel,double x,double y)
public void getGalvoPosition(java.lang.String galvoLabel,double[] x_stage,double[] y_stage)
public void setGalvoIlluminationState(java.lang.String galvoLabel,boolean on)
                               throws java.lang.Exception

设置振镜的照明状态

public double getGalvoXRange(java.lang.String galvoLabel)
public double getGalvoXMinimum(java.lang.String galvoLabel)
public double getGalvoYRange(java.lang.String galvoLabel)
public double getGalvoYMinimum(java.lang.String galvoLabel)
public void addGalvoPolygonVertex(java.lang.String galvoLabel,int polygonIndex,double x,double y)
public void deleteGalvoPolygons(java.lang.String galvoLabel)

删除所有添加的多边形

public void loadGalvoPolygons(java.lang.String galvoLabel)

将一组多边形加载到设备中。

public void setGalvoPolygonRepetitions(java.lang.String galvoLabel,int repetitions)

设置循环Galvo多边形的次数

public void runGalvoPolygons(java.lang.String galvoLabel)

运行一个Galvo多边形循环

public void runGalvoSequence(java.lang.String galvoLabel)

按顺序排列振镜位置

public java.lang.String getGalvoChannel(java.lang.String galvoLabel)

获取活动Galvo通道的名称(用于多激光Galvo设备)。

public boolean supportsDeviceDetection(java.lang.String deviceLabel)

返回设备是否支持自动设备检测(即,是否可以安全地detectDevice()。

public DeviceDetectionStatus detectDevice(java.lang.String deviceLabel)

尝试通过给定的串行端口与设备通信,该端口用于自动发现正确的串行端口,同时也正确配置串行端口。

DeviceDetectionStatus有四个字段,包含四个状态:CanCommunicate ,CanNotCommunicate ,MisconfiguredUnimplemented  

public java.lang.String getParentLabel(java.lang.String peripheralLabel)

返回父设备。

public void setParentLabel(java.lang.String deviceLabel,java.lang.String parentHubLabel)
public StrVector getInstalledDevices(java.lang.String hubLabel)

执行连接到集线器设备的子设备的自动检测和加载。例如,如果电动显微镜由集线器设备表示,则它能够发现当前连接的特定子设备。在这种情况下,此调用可能会报告当前安装了Z轴平台、滤波片更改器和目镜转换器,并在字符串列表中返回三个设备名称。

public java.lang.String getInstalledDeviceDescription(java.lang.String hubLabel, java.lang.String peripheralLabel)
public StrVector getLoadedPeripheralDevices(java.lang.String hubLabel)
public java.lang.String getUserId()
public java.lang.String getHostName()

返回当前计算机名。

public StrVector getMACAddresses()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值