器材指认功能

更新记录

时间 作者 更新说明
2021-07-20 陈增鑫 首次更新

组件功能介绍

ObservableComponent:负责成像、显微指认蒙版资源的初始化。
OnDataChanged():器材成像数据有发生变动时需要主动发起通知,目前用于水蚤成像的心跳参数变化通知,由器材实现FetchUIDataShow方法获取读数数据(多语言配置)

OnEnterObservation():当器材被放置于载物台时收到通知。
OnExitObservation():当器材被移除载物台时受到通知。
PreResourceInit():用于初始化蒙版资源前的预处理,防止旧蒙版数据遗留,当器材更换成像资源及更换蒙版资源前需要调用。
HasMask(resolution):是否包含指定分辨率下的蒙版资源。
ObserResourcesInit(type,key,url):创建单一分辨率的成像资源。
MultiObserResourcesInit(type,Table):批量创建成像资源。

OnMicroParamChanged(imgReource,objectId,resolution,blursize,brightness):显微镜成像环境修改时接收到通知。
OnEnterObservationModeAction(entityId,isEnter):VR下进入或退出观察视角时接收到通知。

ObserverComponent:负责显微镜观察成像组件的初始化及接口调用。
InitMicroscope(path):初始化显微观察组件。
InitObservation(eyesPath,stagePath,distanceLimitUp,distanceLimitDown,angleLimit,viewScope,btns):初始化VR观察视角组件。
SetObserve(objectId,resolution):设置观察成像。
SetObservationReadingTxt(str):设置3D下观察视角观察读数UI展示内容。
SetIsShowObservationReadingTxt(isShow):设置是否显示观察读数。
SwitchIdentifyMode(isShow):是否开启显微指认模式。
SetAimPointEnable(isShow):是否开启显微指认模式下的准心UI。
SetAimPointPosition(pos):设置十字准星的位置。
GetAimPointPosition():获取十字准星的位置。
QueryGrayLevel(pos):获取指定位置的蒙版灰度值。
MarkFocus(bFocus):设置准星处单独闪烁。
OnEnterObservationModeAction:VR下进入观察视角通知。

IdentifyComponent:指认组件,负责将指认数据传输给播放组件,接收来自播放组件的事件通知。
模式枚举:
IdentifyMode = {
Normal = 0, —正常判定模式
Equip_Identify = 1, —元器件指认模式
Equip_SubPart_Identify = 2, —元器件子部位指认模式
Micro_Identify = 3, —显微指认
}
OnEnterIdentifyPatternMode(mode):接收来自播放组件的消息,通知进入指认模式。
OnExitIdentifyPatternMode(mode):退出指认模式。
Identify(part):向播放组件传输指认数据(子部位数据或显微指认数据)。
InitGrayMapper(tMapper):初始化灰度值映射表。
MicroIdentifyMapper(gray):通过InitGrayMapper配置的映射表处理灰度值与指认数据之间的映射。

元器件对接子部件指认流程

元器件对接器材指认流程:无需器材端处理,基类中已经做相应的处理。

1、初始化指认组件;

2、在进入对应指认模式,开启指定交互(比如子部位点击交互)

3、子部位点击后发送指认数据
self.IdentifyComponent:Identify(XWJEnum.IdentifyPart.WuJing)
元器件对接显微指认流程:
1、添加指认组件
self:AddLuaComponent(“IdentifyComponent”)
2、初始化蒙版效果资源,其中
ColorWheel必须为第一张图(组件方限制),后续9张为美术给的蒙版图资源
目前仅支持静态图与动态图。
静态图需要传入1张1256的颜色对应图和1张蒙版图片、动态图则需要传入1张1256的颜色对应图和9张蒙版图片。
颜色对应图的路径应该放在第一个,其它的图的路径应在其后按顺序排列。
其中动态图的蒙版路径传入时,需要按照从左到右,从下往上的顺序(如下)排列。
7 | 8 | 9
4 | 5 | 6
1 | 2 | 3

self.ObservableComponent:MultiObserResourcesInit(ObservedObjectType.LiveImage,{
    ["X10"] = {
        "ElementResource/LabElementResources/RenXueBoPianElement/PrimitiveConfigRes/BeiJing",
        "ElementResource/LabElementResources/RenXueBoPianElement/PrimitiveConfigRes/RenXueTuPian10X"
    },
    ["X40"] = {
        "ElementResource/LabElementResources/RenXueBoPianElement/PrimitiveConfigRes/BeiJing",
        "ElementResource/LabElementResources/RenXueBoPianElement/PrimitiveConfigRes/RenXueTuPian40X"
    },
    ["X40_Mask"] = {
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/ColorWheel",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_07",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_08",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_09",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_04",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_05",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_06",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_01",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_02",
        "ElementResource/LabElementResources/RenXueBoPianElement/Texture/40X_Mask/40x_03",
    }
})

3、初始化灰度映射表
self.IdentifyComponent:InitGrayMapper({
BlueCell = { 140, 160 },
RedCell = { 40, 60 }
})