C++ API参考¶
-
using SendFileCallback = std::function<void(OBFileTranState state, const char *message, uint8_t percent)>¶
文件传输回调
- Param state
文件传输状态
- Param message
状态信息
-
using DeviceUpgradeCallback = std::function<void(OBUpgradeState state, const char *message, uint8_t percent)>¶
设备升级回调
- Param state
升级状态
- Param message
状态信息
-
using DeviceStateChangedCallback = std::function<void(OBDeviceState state, const char *message)>¶
设备状态回调
- Param state
设备状态
- Param message
状态信息
-
using GetDataCallback = std::function<void(OBDataTranState state, OBDataChunk *dataChunk)>¶
获取raw data属性数据时数据及进度回调
- Param dataChunk
数据块
- Param state
获取数据状态
-
using SetDataCallback = std::function<void(OBDataTranState state, uint8_t percent)>¶
设置raw data属性数据时进度回调
- Param percent
进度百分比
- Param state
设置数据状态
-
namespace ob¶
Typedefs
-
using MediaStateCallback = std::function<void(OBMediaState state)>¶
-
class AccelStreamProfile : public ob::StreamProfile¶
Public Functions
-
OBAccelFullScaleRange fullScaleRange()¶
获取满量程范围
- 返回
OBAccelFullScaleRange 返回量程范围值
-
OBAccelSampleRate sampleRate()¶
获取采样频率
- 返回
OBAccelFullScaleRange 返回采样频率
-
OBAccelFullScaleRange fullScaleRange()¶
-
class CameraParamList¶
Public Functions
-
uint32_t count()¶
相机参数组数
- 返回
uint32_t 返回相机参数组数
-
OBCameraParam getCameraParam(uint32_t index)¶
获取相机参数
- 参数
index – 参数索引
- 返回
OBCameraParam 返回对应组参数
-
uint32_t count()¶
-
class ColorFrame : public ob::VideoFrame¶
-
class Config¶
Public Functions
设置要打开的流配置
- 参数
streamProfile – 流的配置
-
void enableAllStream()¶
设置打开所有的流
-
void disableStream(OBStreamType streamType)¶
设置要关闭的流配置
- 参数
streamType – 流的配置
-
void disableAllStream()¶
设置关闭所有的流
-
void setAlignMode(OBAlignMode mode)¶
设置对齐模式
- 参数
mode – 对齐状态模式
-
class Context¶
Public Functions
-
Context(const char *configPath =
"")¶ context是描述SDK的runtime一个管理类,负责SDK的资源申请与释放 context具备多设备的管理能力,负责枚举设备,监听设备回调,启用多设备同步等功能
-
std::shared_ptr<DeviceList> queryDeviceList()¶
获取枚举到设备列表
- 返回
std::shared_ptr<DeviceList>返回设备列表类的指针
-
void setDeviceChangedCallback(DeviceChangedCallback callback)¶
设置设备插拔回调函数
- 参数
callback – 设备插拔时触发的回调函数
-
void enableMultiDeviceSync(uint64_t repeatInterval)¶
启动多设备同步功能,同步已创建设备的时钟(需要使用的设备支持该功能)
- 参数
repeatInterval – 定时同步时间间隔(单位ms;如果repeatInterval=0,表示只同步一次,不再定时执行)
Public Static Functions
-
static void setLoggerSeverity(OBLogSeverity severity)¶
设置全局日志的等级,会同时作用于输出到终端和输出到文件的日志等级
- 参数
severity – 日志输出等级
-
static void setLoggerToFile(OBLogSeverity severity, const char *directory)¶
设置日志输出到文件
- 参数
severity – 输出到文件的日志等级
directory – 日志文件输出路径,如果路径为空,则继续使用已有设置(已有配置也为空则不输出日志到文件)
-
static void setLoggerToConsole(OBLogSeverity severity)¶
设置日志输出到终端
- 参数
severity – 输出到终端的日志等级
-
Context(const char *configPath =
-
class DepthFrame : public ob::VideoFrame¶
Public Functions
-
float getValueScale()¶
获取深度帧的值刻度,单位为 mm/step, 如valueScale=0.1, 某坐标像素值为pixelValue=10000, 则表示深度值value = pixelValue*valueScale = 10000*0.1=1000mm。
- 返回
float
-
float getValueScale()¶
-
class Device¶
Public Functions
-
Device(std::unique_ptr<DeviceImpl> impl)¶
描述RGBD相机的实体,代表一个具体型号的RGBD相机
-
std::shared_ptr<DeviceInfo> getDeviceInfo()¶
获取设备信息
- 返回
std::shared_ptr<DeviceInfo> 返回设备的信息
-
std::shared_ptr<SensorList> getSensorList()¶
获取设备传感器列表
- 返回
std::shared_ptr<SensorList> 返回传感器列表
-
std::shared_ptr<Sensor> getSensor(OBSensorType type)¶
获取指定类型传感器 如果设备没有打开传感器,在SDK内部会自动打开设备并返回实例
- 返回
std::shared_ptr<Sensor> 返回传感器示例,如果设备没有该设备,返回nullptr
-
void setIntProperty(OBPropertyID propertyId, int32_t property)¶
设置int类型的设备属性
- 参数
propertyId – 属性id
property – 要设置的属性
-
void setFloatProperty(OBPropertyID propertyId, float property)¶
设置float类型的设备属性
- 参数
propertyId – 属性id
property – 要设置的属性
-
void setBoolProperty(OBPropertyID propertyId, bool property)¶
设置bool类型的设备属性
- 参数
propertyId – 属性id
property – 要设置的属性
-
int32_t getIntProperty(OBPropertyID propertyId)¶
获取int类型的设备属性
- 参数
propertyId – 属性id
- 返回
int32_t 获取的属性数据
-
float getFloatProperty(OBPropertyID propertyId)¶
获取float类型的设备属性
- 参数
propertyId – 属性id
- 返回
float 获取的属性数据
-
bool getBoolProperty(OBPropertyID propertyId)¶
获取bool类型的设备属性
- 参数
propertyId – 属性id
- 返回
bool 获取的属性数据
-
OBIntPropertyRange getIntPropertyRange(OBPropertyID propertyId)¶
获取int类型的设备属性的范围(包括当前值和默认值)
- 参数
propertyId – 属性id
- 返回
OBIntPropertyRange 属性的范围
-
OBFloatPropertyRange getFloatPropertyRange(OBPropertyID propertyId)¶
获取float类型的设备属性的范围(包括当前值和默认值)
- 参数
propertyId – 属性id
- 返回
OBFloatPropertyRange 属性的范围
-
OBBoolPropertyRange getBoolPropertyRange(OBPropertyID propertyId)¶
获取bool类型的设备属性的范围(包括当前值和默认值)
- 参数
propertyId – 属性id
- 返回
OBBoolPropertyRange 属性的范围
-
void writeAHB(uint32_t reg, uint32_t mask, uint32_t value)¶
AHB写寄存器
- 参数
reg – 要写入的寄存器
mask – 要写入的掩码
value – 要写入的值
-
void readAHB(uint32_t reg, uint32_t mask, uint32_t *value)¶
AHB读寄存器
- 参数
reg – 要读取的寄存器
mask – 要读取的掩码
value – 读取的值返回
-
void writeI2C(uint32_t moduleId, uint32_t reg, uint32_t mask, uint32_t value)¶
I2C写寄存器
- 参数
reg – 要写入的I2C模块ID
reg – 要写入的寄存器
mask – 要写入的掩码
value – 要写入的值
-
void readI2C(uint32_t moduleId, uint32_t reg, uint32_t mask, uint32_t *value)¶
I2C读寄存器
- 参数
reg – 要读取的I2C模块ID
reg – 要读取的寄存器
mask – 要读取的掩码
value – 读取的值返回
-
void writeFlash(uint32_t offset, const void *data, uint32_t dataSize, SetDataCallback callback, bool async = false)¶
设置写入Flash的属性
- 参数
offset – flash 偏移地址
data – 要写入的属性数据
dataSize – 要写入的属性大小
callback – 写flash进度回调
async – 是否异步执行
-
void readFlash(uint32_t offset, uint32_t dataSize, GetDataCallback callback, bool async = false)¶
读取Flash的属性
- 参数
offset – flash 偏移地址
data – 读取的属性数据
dataSize – 获取的属性大小
callback – 读flash返回的数据及进度回调
async – 是否异步执行
-
void setRawData(OBPropertyID propertyId, const void *data, uint32_t dataSize, SetDataCallback callback, bool async = false)¶
设置raw data类型的设备属性数据[异步回调]
- 参数
propertyId – 属性id
data – 要设置的属性数据
dataSize – 要设置的属性数据大小
callback – rawdata设置进度回调
async – 是否异步执行
-
void getRawData(OBPropertyID propertyId, GetDataCallback callback, bool async = false)¶
获取raw data类型的设备属性数据[异步回调]
- 参数
propertyId – 属性id
data – 获取的属性数据
dataSize – 获取的属性大小
callback – 获取返回的数据及进度回调
async – 是否异步执行
-
void setStructuredData(OBPropertyID propertyId, const void *data, uint32_t dataSize)¶
设置structured data类型的设备属性
- 参数
propertyId – 属性id
data – 要设置的属性数据
dataSize – 要设置的属性大小
-
void getStructuredData(OBPropertyID propertyId, void *data, uint32_t *dataSize)¶
获取structured data类型的设备属性
- 参数
propertyId – 属性id
data – 获取的属性数据
dataSize – 获取的属性大小
-
uint32_t getSupportedPropertyCount()¶
获取设备支持的属性的数量
- 返回
uint32_t 返回支持的属性的数量
-
OBPropertyItem getSupportedProperty(uint32_t index)¶
获取设备支持的属性
- 参数
uint32_t – 属性的index
- 返回
OBPropertyItem 返回支持的属性的类型
-
bool isPropertySupported(OBPropertyID propertyId, OBPermissionType permission)¶
判断属性权限支持情况
- 参数
propertyId – 属性id
permission – 需要判读的读写权限类型
- 返回
bool 返回是否支持
-
uint64_t syncDeviceTime()¶
同步设备时间(向设备授时,同步本地系统时间到设备)
-
void deviceUpgrade(const char *filePath, DeviceUpgradeCallback callback, bool async = true)¶
升级设备固件
- 参数
filePath – 固件的路径
callback – 固件升级进度及状态回调
async – 是否异步执行
-
void sendFile(const char *filePath, const char *dstPath, SendFileCallback callback, bool async = true)¶
发送文件到设备端指定路径[异步回调]
- 参数
filePath – 原文件路径
dstPath – 设备端接受保存路径
callback – 文件传输回调
async – 是否异步执行
-
OBDeviceState getDeviceState()¶
获取当前设备状态
-
void setDeviceStateChangedCallback(DeviceStateChangedCallback callback)¶
设置设备状态改变回调函数
- 参数
callback – 设备状态改变(如,由于温度过高自动降低帧率或关流等)时触发的回调函数
-
bool activateAuthorization(const char *authCode)¶
验证设备授权码
-
void writeAuthorizationCode(const char *authCodeStr)¶
写入设备授权码
-
std::shared_ptr<CameraParamList> getCalibrationCameraParamList()¶
获取设备内保存的相机标定的原始参数列表,列表内参数不与当前开流配置相对应, 需要自行根据实际情况选用参数并可能需要做缩放、镜像等处理。非专业用户建议使用Pipeline::getCameraParam()接口。
- 返回
std::shared_ptr<CameraParamList> 相机参数列表
-
void reboot()¶
设备重启
-
Device(std::unique_ptr<DeviceImpl> impl)¶
-
class DeviceInfo¶
- #include <Device.hpp>
描述设备信息的类,代表一个RGBD相机的名称,id,序列号等其他设备自身基本信息。
Public Functions
-
const char *name()¶
获取设备名称
- 返回
const char * 返回设备名称
-
int pid()¶
获取设备的pid
- 返回
int 返回设备的pid
-
int vid()¶
获取设备的vid
- 返回
int 返回设备的vid
-
const char *uid()¶
获取设备的uid,该uid标识设备接入os操作系统时,给当前设备分派的唯一id,用来区分不同的设备
- 返回
const char * 返回设备的uid
-
const char *serialNumber()¶
获取设备的序列号
- 返回
const char * 返回设备的序列号
-
const char *firmwareVersion()¶
获取固件的版本号
- 返回
const char* 返回固件的版本号
-
const char *usbType()¶
获取usb连接类型
- 返回
const char* 返回usb连接类型
-
const char *hardwareVersion()¶
获取硬件的版本号
- 返回
const char* 返回硬件的版本号
-
const char *supportedMinSdkVersion()¶
获取设备支持的SDK最小版本号
- 返回
const char* 返回设备支持的SDK最小版本号
-
const char *asicName()¶
获取芯片类型名称
- 返回
const char* 返回芯片类型名称
-
OBDeviceType deviceType()¶
获取设备类型
- 返回
OBDeviceType 返回设备类型
-
const char *name()¶
-
class DeviceList¶
Public Functions
-
uint32_t deviceCount()¶
获取设备数量
- 返回
uint32_t 返回设备的数量
-
const char *name(uint32_t index)¶
获取指定设备的名称
- 参数
index – 设备索引
- 返回
int 返回设备的名称
-
int pid(uint32_t index)¶
获取指定设备的pid
- 参数
index – 设备索引
- 返回
int 返回设备的pid
-
int vid(uint32_t index)¶
获取指定设备的vid
- 参数
index – 设备索引
- 返回
int 返回设备的vid
-
const char *uid(uint32_t index)¶
获取指定设备的uid
- 参数
index – 设备索引
- 返回
const char * 返回设备的uid
-
const char *serialNumber(uint32_t index)¶
获取指定设备的序列号
- 参数
index – 设备索引
- 返回
const char * 返回设备的序列号
-
uint32_t deviceCount()¶
-
class Error¶
Public Functions
-
const char *getMessage() const noexcept¶
获取SDK内部异常的详细错误日志。
-
OBExceptionType getExceptionType() const noexcept¶
获取该错误的异常类型,判断是具体哪个模块异常。
-
const char *getName() const noexcept¶
获取SDK内部异常的错误接口函数名称。
-
const char *getArgs() const noexcept¶
获取SDK内部异常的错误接口函数传入参数。
-
const char *getMessage() const noexcept¶
-
class Filter¶
Subclassed by ob::FormatConvertFilter, ob::PointCloudFilter
Public Functions
-
virtual void reset()¶
filter重置,释放内部缓存,异步处理时停止处理线程并清空待处理的缓存帧
处理帧(同步接口)
- 参数
frame – 需要处理的frame
- 返回
std::shared_ptr< Frame > 处理后的frame
压入待处理frame到缓存(异步回调接口)
- 参数
frame – 待处理的frame处理结果通过回调函数返回
-
virtual void setCallBack(FilterCallback callback)¶
设置回调函数(异步回调接口)
- 参数
callback – 处理结果回调
-
virtual void reset()¶
-
class FormatConvertFilter : public ob::Filter¶
Public Functions
-
void setFormatConvertType(OBConvertFormat type)¶
设置格式转化类型
- 参数
type – 格式转化类型
-
void setFormatConvertType(OBConvertFormat type)¶
-
class Frame : public std::enable_shared_from_this<Frame>¶
Subclassed by ob::AccelFrame, ob::FrameSet, ob::GyroFrame, ob::PointsFrame, ob::VideoFrame
Public Functions
-
virtual OBFrameType type()¶
获取帧的类型
- 返回
OBFrameType 返回帧的类型
-
virtual uint64_t index()¶
获取帧的序号
- 返回
uint64_t 返回帧的序号
-
virtual void *data()¶
获取帧数据
- 返回
void* 返回帧数据
-
virtual uint32_t dataSize()¶
获取帧数据大小
- 返回
uint32_t 返回帧数据的大小 如果是点云数据返回的是所有点集合占的字节数,若需要求出点的个数需要将dataSize除以对应的点类型的结构体大小
-
uint64_t timeStamp()¶
获取帧的硬件时间戳
- 返回
uint64_t 返回帧硬件的时间戳
-
uint64_t timeStampUs()¶
获取帧的硬件时间戳
- 返回
uint64_t 返回帧硬件的时间戳
-
uint64_t systemTimeStamp()¶
获取帧的系统时间戳
- 返回
uint64_t 返回帧的系统时间戳
-
template<typename T>
bool is()¶ 检查帧对象的运行时类型是否与给定类型兼容
- 模板参数
T – 给定的类型
- 返回
bool 返回结果
帧对象类型转换
- 模板参数
T – 目标类型
- 返回
std::shared_ptr<T> 返回结果, 如果不能够转换,将抛异常
-
virtual OBFrameType type()¶
-
class FrameSet : public ob::Frame¶
Public Functions
-
uint32_t frameCount()¶
帧集合中包含的帧数量
- 返回
uint32_t 返回帧的数量
-
std::shared_ptr<DepthFrame> depthFrame()¶
获取深度帧
- 返回
std::shared_ptr<DepthFrame> 返回深度帧
-
std::shared_ptr<ColorFrame> colorFrame()¶
获取彩色帧
- 返回
std::shared_ptr<ColorFrame> 返回彩色帧
-
std::shared_ptr<PointsFrame> pointsFrame()¶
获取点云帧
- 返回
std::shared_ptr<PointsFrame> 返回点云帧
-
std::shared_ptr<Frame> getFrame(OBSensorType sensorType)¶
通过传感器类型获取帧
- 参数
frameType – 传感器的类型
- 返回
std::shared_ptr<Frame> 返回相应类型的帧
-
uint32_t frameCount()¶
-
class GyroStreamProfile : public ob::StreamProfile¶
Public Functions
-
OBGyroFullScaleRange fullScaleRange()¶
获取满量程范围
- 返回
OBAccelFullScaleRange 返回量程范围值
-
OBGyroSampleRate sampleRate()¶
获取采样频率
- 返回
OBAccelFullScaleRange 返回采样频率
-
OBGyroFullScaleRange fullScaleRange()¶
-
class IRFrame : public ob::VideoFrame¶
-
class Pipeline¶
Public Functions
-
Pipeline()¶
Pipeline 是SDK的高级接口,适用于应用,算法等重点关注RGBD数据流常见,Pipeline在SDK内部可以提供对齐,同步后的FrameSet桢集合 直接方便客户使用。 Pipeline()无参数版本,默认打开连接到OS的设备列表中的第一个设备。若应用已经通过DeviceList获取设备,此时打开Pipeline()会抛出设备已经创建异常。 需要开发者捕获异常处理。
Pipeline(std::shared_ptr< Device > device )函数,适用于多设备操作常见,此时需要通过DeviceList获取多个设备,通过该接口实现device和pipeline绑定。
-
Pipeline(const char *filename)¶
创建pipeline用于回放录制好的流文件
- 参数
filename – 回放文件路径
启动pipeline并配置参数
- 参数
config – pipeline的参数配置
启动pipeline并设置帧集合数据回调
- 参数
config – pipeline的参数配置
callback – 设置帧集合中的所有帧数据都到达时触发回调
-
void stop()¶
停止pipeline
-
std::shared_ptr<FrameSet> waitForFrames(uint32_t timeout_ms)¶
等待帧集合数据
- 参数
timeout_ms – 等待超时时间(毫秒)
- 返回
std::shared_ptr<FrameSet> 返回等待的帧集合数据
-
std::shared_ptr<StreamProfileList> getStreamProfileList(OBSensorType sensorType)¶
获取指定传感器的流配置
- 参数
sensorType – 传感器的类型
- 返回
std::shared_ptr<StreamProfileList> 返回流配置列表
-
void enableFrameSync()¶
打开帧同步功能
-
void disableFrameSync()¶
关闭帧同步功能
-
OBCameraParam getCameraParam()¶
获取相机参数
返回与输入的彩色传感器分辨率对应的支持D2C的深度传感器分辨率列表
-
OBRect getD2CValidArea(uint32_t depthDistance)¶
获取D2C后有效的区域
- 参数
depthDistance – 工作距离
- 返回
OBRect 返回在工作距离下D2C后有效的区域信息
动态切换对应的config配置
- 参数
config – 更新后的config配置
-
void startRecord(const char *filename)¶
开始录制
- 参数
filename – 录制文件名
-
void stopRecord()¶
停止录制
-
Pipeline()¶
-
class Playback¶
Public Functions
-
Playback(const char *filename)¶
创建回放对象
-
void start(PlaybackCallback callback, OBMediaType type = OB_MEDIA_ALL)¶
开启回放,回放数据从回调中返回,失败后抛出异常
-
void stop()¶
停止回放,失败后抛出异常
-
void setPlaybackStateCallback(MediaStateCallback state)¶
设置回放状态
-
std::shared_ptr<DeviceInfo> getDeviceInfo()¶
获取录制文件内的设备信息
- 返回
DeviceInfo 返回的设备信息
-
OBCameraParam getCameraParam()¶
获取录制文件内的内外参信息
- 返回
OBCameraParam 返回的内外参信息
-
Playback(const char *filename)¶
-
class PointCloudFilter : public ob::Filter¶
Public Functions
-
void setCameraParam(OBCameraParam param)¶
设置相机参数
- 参数
param – 相机内外参数
-
void setFrameAlignState(bool state)¶
设置将要输入的用于生成点云的帧对齐状态(D2C模式下需要开启,作为算法选用那组相机内参的依据)
- 参数
state – 对齐状态,True:开启对齐; False:关闭对齐
-
void setCameraParam(OBCameraParam param)¶
-
class Recorder¶
-
class Sensor¶
Public Functions
-
OBSensorType type()¶
传感器类型
- 返回
OBSensorType 返回传感器类型
-
const std::shared_ptr<StreamProfileList> getStreamProfileList()¶
获取传感器的流配置列表
- 返回
std::shared_ptr<StreamProfileList> 返回流配置列表
开启流并设置帧数据回调
- 参数
streamProfile – 流的配置
callback – 设置帧数据到达时的回调
-
void stop()¶
停止流
动态切换分辨率
- 参数
streamProfile – 需要切换的分辨率
-
OBSensorType type()¶
-
class SensorList¶
Public Functions
-
uint32_t count()¶
获取Sensor数量
- 返回
uint32_t 返回Sensor的数量
-
OBSensorType type(uint32_t index)¶
获取指定Sensor的类型
- 参数
index – Sensor索引
- 返回
OBSensorType 返回Sensor类型
-
std::shared_ptr<Sensor> getSensor(uint32_t index)¶
通过索引号获取Sensor
- 参数
index – 要创建设备的索,范围 [0, count-1],如果index超出范围将抛异常
- 返回
std::shared_ptr<Sensor> 返回Sensor对象
-
std::shared_ptr<Sensor> getSensor(OBSensorType sensorType)¶
通过Sensor类型获取Sensor
- 参数
sensorType – 要获取的Sensor类型
- 返回
std::shared_ptr<Sensor> 返回Sensor对象,如果指定类型Sensor不存在,将返回空
-
uint32_t count()¶
-
class StreamProfile : public std::enable_shared_from_this<StreamProfile>¶
Subclassed by ob::AccelStreamProfile, ob::GyroStreamProfile, ob::VideoStreamProfile
Public Functions
-
OBStreamType type()¶
获取流的类型
- 返回
OBStreamType 返回流的类型
-
template<typename T>
bool is()¶ 检查帧对象的运行时类型是否与给定类型兼容
- 模板参数
T – 给定的类型
- 返回
bool 返回结果
对象类型转换
- 模板参数
T – 目标类型
- 返回
std::shared_ptr<T> 返回结果, 如果不能够转换,将抛异常
-
OBStreamType type()¶
-
class StreamProfileList¶
Public Functions
-
uint32_t count()¶
获取StreamProfile数量
- 返回
uint32_t 返回StreamProfile的数量
-
const std::shared_ptr<StreamProfile> getProfile(uint32_t index)¶
通过索引号获取StreamProfile
- 参数
index – 要创建设备的索,范围 [0, count-1],如果index超出范围将抛异常
- 返回
std::shared_ptr<StreamProfile> 返回StreamProfile对象
-
const std::shared_ptr<VideoStreamProfile> getVideoStreamProfile(int width = 0, int height = 0, OBFormat format = OB_FORMAT_UNKNOWN, int fps = 0)¶
通过传入的参数进行匹配对应的StreamProfile,若有多个匹配项默认返回列表中的第一个
- 参数
width – 宽度,如不要求加入匹配条件,可传0
height – 高度,如不要求加入匹配条件,可传0
format – 类型,如不要求加入匹配条件,可传OB_FORMAT_UNKNOWN
fps – 帧率,如不要求加入匹配条件,可传0
- 返回
std::shared_ptr<StreamProfile> 返回匹配的分辨率
-
uint32_t count()¶
-
class Version¶
-
class VideoFrame : public ob::Frame¶
Subclassed by ob::ColorFrame, ob::DepthFrame, ob::IRFrame
-
class VideoStreamProfile : public ob::StreamProfile¶
-
using MediaStateCallback = std::function<void(OBMediaState state)>¶