Commit d468858d authored by 徐生海's avatar 徐生海

Initial commit

parent 4f0c8af1
Pipeline #174 failed with stages
## ide
# 忽略操作系统生成的文件
DS_Store
# 忽略日志文件
*.log
**/.vs
**/.idea
work.md
__pycache__/
*.py[cod]
$__pycache__$
/logs/
/Resource/
/dist/
/build/
/bin/
/obj/
/MTB/
# 忽略环境变量文件
env
# 忽略依赖文件夹
node_modules/
\ No newline at end of file

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 16
VisualStudioVersion = 16.0.36602.28
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ZeissMicroscopeAPI", "ZeissMicroscopeAPI\ZeissMicroscopeAPI.csproj", "{A1F466A5-74F6-4942-861D-1C1ADD822D25}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{A1F466A5-74F6-4942-861D-1C1ADD822D25}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{A1F466A5-74F6-4942-861D-1C1ADD822D25}.Debug|Any CPU.Build.0 = Debug|Any CPU
{A1F466A5-74F6-4942-861D-1C1ADD822D25}.Release|Any CPU.ActiveCfg = Release|Any CPU
{A1F466A5-74F6-4942-861D-1C1ADD822D25}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {D7979928-52F4-482C-8DF4-8043656C7812}
EndGlobalSection
EndGlobal
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ZeissMicroscopeAPI
{
public class Class1
{
}
}
<?xml version="1.0" encoding="utf-8"?>
<MTB2004Export Version="3.5.10.0">
<MTBConfiguration Name="AxioImageZ2" MyChildId="0">
<Devices>
<Device Class="MTBCtrlDeviceAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2.Stand" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="25" MyChildId="1">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceAxioImagerZ2M2</SimulationClass>
<TechReport>ReportAxioImager</TechReport>
<WriteConfig>WriteConfigAxioImagerZ2M2</WriteConfig>
<LightPath>AxioImager</LightPath>
<Components>
<Component Class="MTBCtrlObject,MTBKernel" Name="Object" MTBId="MTBObject" CANId="0x00" />
<Component Class="MTBCtrlRLTLSwitchAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.RLTLSwitchMot" MTBId="MTBRLTLSwitch" CANId="0x1F">
<NumberOfPositions>2</NumberOfPositions>
<Motorization>2</Motorization>
<WriteConfig>WriteConfigAxioImagerZ2M2Lamps</WriteConfig>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<CmdSetTimeout>2000</CmdSetTimeout>
<ChangerElements>
<Element Class="MTBCtrlRLTLSwitchState,MTBKernel" Name="RLTLSwitch.TL" Position="0">
<State>TransmittedLight</State>
</Element>
<Element Class="MTBCtrlRLTLSwitchState,MTBKernel" Name="RLTLSwitch.RL" Position="1">
<State>ReflectedLight</State>
</Element>
</ChangerElements>
</Component>
<Component Class="MTBCtrlMicroscopeManagerAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.MicroscopeManager" MTBId="MTBMicroscopeManager" CANId="0x00">
<LightManagerModes>Objective, Classic</LightManagerModes>
<LightManagerModes Version="00.807">Objective, Classic</LightManagerModes>
</Component>
<Component Class="MTBCtrlObjectiveChangerAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.Nosepiece_7xmot" MTBId="MTBObjectiveChanger" CANId="0x02" MyChildId="10001">
<NumberOfPositions>7</NumberOfPositions>
<Motorization>2</Motorization>
<WriteConfig>WriteConfigAxioImagerZ2M2Nosepiece</WriteConfig>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.4</TypMovementTime>
</Simulation>
<CmdSetTimeout>30000</CmdSetTimeout>
<HasOilStop>true</HasOilStop>
<ChangerElements>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="100" Position="0" />
<Element Class="MTBCtrlObjective,MTBKernel" Name="Objective.420340-9900-000" DisplayName="EC Plan-Neofluar 10x/0.30 M27" MyChildId="101" Position="1">
<Magnification>10</Magnification>
<Aperture>0.30</Aperture>
<Immersion>Air,</Immersion>
<Contrast>BrightField,DarkField,RLBrightField,RLPol,TLPol,DIC1,</Contrast>
<Features>Pol,</Features>
<WorkingDistance>5500</WorkingDistance>
<OrderNo>420340-9900-000</OrderNo>
<ACRModuleType>1</ACRModuleType>
<ACRVersion>1</ACRVersion>
<ACRChip>1</ACRChip>
<Category>EC PlnN</Category>
<LongName>EC Plan-Neofluar 10x/0.30 M27</LongName>
<CoverSlipMin>0.17</CoverSlipMin>
<CoverSlipMax />
<TransmLow>364</TransmLow>
<TransmHigh>2000</TransmHigh>
<TLDICPrism>00</TLDICPrism>
</Element>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="102" Position="2" />
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="103" Position="3" />
<Element Class="MTBCtrlObjective,MTBKernel" Name="Objective.420490-9900-000" DisplayName="EC Plan-Neofluar 100x/1.30 Oil M27" MyChildId="104" Position="4">
<Magnification>100</Magnification>
<Aperture>1.30</Aperture>
<Immersion>Oil,</Immersion>
<Contrast>BrightField,DarkField,RLBrightField,RLPol,TLPol,DIC2,</Contrast>
<Features>Pol,</Features>
<WorkingDistance>200</WorkingDistance>
<OrderNo>420490-9900-000</OrderNo>
<ACRModuleType>1</ACRModuleType>
<ACRVersion>1</ACRVersion>
<ACRChip>1</ACRChip>
<Category>EC PlnN</Category>
<LongName>EC Plan-Neofluar 100x/1.30 Oil M27</LongName>
<CoverSlipMin>0.17</CoverSlipMin>
<CoverSlipMax />
<TransmLow>355</TransmLow>
<TransmHigh>1050</TransmHigh>
</Element>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="105" Position="5" />
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="106" Position="6" />
</ChangerElements>
</Component>
<Component Active="false" Name="ImagerZ2.ReflectorChanger_none" MTBId="MTBNone" CANId="0x01" MyChildId="10002" />
<Component Class="MTBCtrlFocusAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2.Focus_mot" MTBId="MTBFocus" CANId="0x0F" MyChildId="10000">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxAxis</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="-26000000" Max="26000000" MaxDeviation="0" TypDeviation="0" StepWidth="10" />
<ScaledRange Unit="µm" Min="-26000" Max="26000" />
</PositionScales>
<PositionSpeedScales>
<ADRange Min="62" Max="6000000" />
<ScaledRange Unit="µm/s" Min="0.062" Max="6000.0" />
<ScaledRange Unit="%" Min="0.0" Max="100.0" />
</PositionSpeedScales>
<PositionAccelerationScales>
<ADRange Min="1" Max="10000000" />
<ScaledRange Unit="µm/s²" Min="0" Max="10000" />
<ScaledRange Unit="%" Min="0.0" Max="100.0" />
</PositionAccelerationScales>
<SpeedScales>
<ADRange Min="62" Max="6000000" />
<ScaledRange Unit="µm/s" Min="0.062" Max="6000" />
</SpeedScales>
<CmdSetTimeout>30000</CmdSetTimeout>
<TriggerModes>TriggerOff, TriggerIn, TriggerOutOnListPosition, TriggerOutOnStep</TriggerModes>
</Component>
<Component Active="false" Name="ImagerZ1M1.TubelensChanger_none" MTBId="MTBNone" CANId="0x12" MyChildId="10010" />
<Component Active="false" Name="ImagerZ2.ReflectedLight" MTBId="MTBRLLampPort" CANId="0x08" MyChildId="10020">
<Slave ChildId="10026">ImagerZ2M2.RL_HalogenLamp</Slave>
<Slave ChildId="10021">ImagerZ1M1.RL_Fieldstop_none</Slave>
<Slave ChildId="10025" OwnPropDevice="true">ApoTome.none</Slave>
<Slave ChildId="10022">ImagerZ1M1.RL_Aperture_none</Slave>
<Slave ChildId="10023">ImagerZ1M1.RL_Shutter_none</Slave>
<Slave ChildId="10024">ImagerZ1M1.RL_Filterwheel_none</Slave>
<Slave ChildId="10028">ImagerZ1M1.RL_ExtFilterWheel_none</Slave>
<Slave ChildId="10027">ImagerZ1M1.RL_DICTurret_none</Slave>
</Component>
<Component Class="MTBCtrlRLHalogenLampAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.RL_HalogenLamp" MTBId="MTBRLHalogenLamp" CANId="0x29" MyChildId="10026">
<LightPathLocation>ReflectedLight</LightPathLocation>
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxLamp</SimulationClass>
<Simulation>
<TypMovementTime>0.002</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="1024" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<CmdSetTimeout>2000</CmdSetTimeout>
<LampType>1</LampType>
</Component>
<Component Active="false" Name="ImagerZ1M1.RL_Fieldstop_none" MTBId="MTBNone" CANId="0x08" MyChildId="10021" />
<Component Active="false" Name="ImagerZ1M1.RL_Aperture_none" MTBId="MTBNone" CANId="0x09" MyChildId="10022" />
<Component Active="false" Name="ImagerZ1M1.RL_Shutter_none" MTBId="MTBNone" CANId="0x1D" MyChildId="10023" />
<Component Active="false" Name="ImagerZ1M1.RL_Filterwheel_none" MTBId="MTBNone" CANId="0x04" MyChildId="10024" />
<Component Active="false" Name="ImagerZ1M1.RL_ExtFilterWheel_none" MTBId="MTBNone" CANId="0x00" MyChildId="10028" />
<Component Active="false" Name="ImagerZ1M1.RL_DICTurret_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10027" />
<Component Active="false" Name="ImagerZ1M1.Tube_man" MTBId="MTBTube" CANId="0x00" MyChildId="10007">
<WriteConfig>WriteConfigAxioImagerTube</WriteConfig>
<Slave ChildId="10160">Eyepiece.10x_25</Slave>
</Component>
<Component Class="MTBCtrlEyepiece,MTBKernel" Name="Eyepiece.10x_25" MTBId="MTBEyePiece" CANId="0x00" MyChildId="10160">
<Magnification>10</Magnification>
<FieldOfView>25</FieldOfView>
</Component>
<Component Active="false" Name="ImagerZ2.TransmittedLight" MTBId="MTBTLLampPort" CANId="0x08" MyChildId="10040">
<Slave ChildId="10046">ImagerZ2M2.TL_HalogenLamp</Slave>
<Slave ChildId="10041">ImagerZ1M1.TL_Fieldstop_mot</Slave>
<Slave ChildId="10042">ImagerZ1M1.TL_Shutter_none</Slave>
<Slave ChildId="10043">ImagerZ1M1.TL_Filterwheel_none</Slave>
<Slave ChildId="10045">ImagerZ2M2.Condenser_none</Slave>
<Slave ChildId="10047">ImagerZ2.TL_DICTurret_none</Slave>
</Component>
<Component Class="MTBCtrlTLHalogenLampAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.TL_HalogenLamp" MTBId="MTBTLHalogenLamp" CANId="0x29" MyChildId="10046">
<LightPathLocation>TransmittedLight</LightPathLocation>
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxLamp</SimulationClass>
<Simulation>
<TypMovementTime>0.002</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="1024" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<CmdSetTimeout>2000</CmdSetTimeout>
<LampType>1</LampType>
</Component>
<Component Class="MTBCtrlTLFieldStopPhoenix,MTBKernelPhoenix" Name="ImagerZ1M1.TL_Fieldstop_mot" MTBId="MTBTLFieldStop" CANId="0x0E" MyChildId="10041">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxContMove</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="415" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>5000</CmdSetTimeout>
</Component>
<Component Active="false" Name="ImagerZ1M1.TL_Shutter_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10042" />
<Component Active="false" Name="ImagerZ1M1.TL_Filterwheel_none" MTBId="MTBNone" CANId="0x0A" MyChildId="10043" />
<Component Active="false" Name="ImagerZ2M2.Condenser_none" MTBId="MTBNone" CANId="0x22" MyChildId="10045" />
<Component Active="false" Name="ImagerZ2.TL_DICTurret_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10047" />
<Component Class="MTBCtrlInfinitySpacePortChangerPhoenix,MTBKernelPhoenix" Name="ImagerZ1M1.InfinitySpaceChanger_2xman" MTBId="MTBInfinitySpacePortChanger" CANId="0x14" MyChildId="10008">
<NumberOfPositions>2</NumberOfPositions>
<Motorization>0</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.7</TypMovementTime>
</Simulation>
<CmdSetTimeout>2000</CmdSetTimeout>
<ChangerElements>
<Element Class="MTBCtrlBeamSplitter,MTBKernel" Name="Imager.InfinitySpaceChangerBeamSplitter 100/0" Position="0">
<Successor1>MTBReflectorChanger</Successor1>
<Successor2>MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport</Successor2>
<SplittingRatioSuccessor1>1</SplittingRatioSuccessor1>
</Element>
<Element Class="MTBCtrlBeamSplitter,MTBKernel" Name="Imager.InfinitySpaceChangerBeamSplitter 50/50" Position="1" MyChildId="10181">
<Successor1>MTBReflectorChanger</Successor1>
<Successor2>MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport</Successor2>
<SplittingRatioSuccessor1>0.5</SplittingRatioSuccessor1>
</Element>
</ChangerElements>
<Slave ChildId="10180">CameraAdapterAurox.1x</Slave>
</Component>
<Component Class="MTBCtrlCameraAdapter,MTBKernel" Name="CameraAdapterAurox.1x" MTBId="MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport" CANId="0x00" MyChildId="10180">
<Magnification>1</Magnification>
<LightPathLocation>MTBInfinitySpacePortChanger,Cameraport</LightPathLocation>
<Slave ChildId="-1">Camera.none</Slave>
</Component>
<Component Active="false" Name="Camera.none" MTBId="MTBCamera" CANId="0x00" MyChildId="-1" />
<Component Active="false" Name="Incubation.Base" MTBId="MTBNone" CANId="0x08" MyChildId="10012">
<Slave ChildId="14000" OwnPropDevice="true">Incubation.AtmoTemp_none</Slave>
</Component>
</Components>
<Slave ChildId="800">MotKorr.Objective1Control_Device</Slave>
<Slave ChildId="810">MotKorr.Objective2Control_Device</Slave>
<Slave ChildId="820">MotKorr.Objective3Control_Device</Slave>
<Slave ChildId="830">MotKorr.Objective4Control_Device</Slave>
<Slave ChildId="840">MotKorr.Objective5Control_Device</Slave>
<Slave ChildId="850">MotKorr.Objective6Control_Device</Slave>
<Slave ChildId="30020" OwnPropDevice="true">NoPiezofocus</Slave>
<Slave ChildId="10005" OwnPropDevice="true">Stage.none</Slave>
<Slave ChildId="9200" OwnPropDevice="true">TIRF.none</Slave>
<Slave ChildId="10011" OwnPropDevice="true">Safety_Device.ImagerZ2None</Slave>
<Slave ChildId="9914" OwnPropDevice="true">Linkam.none</Slave>
<Slave ChildId="10013" OwnPropDevice="true">REOEM.none</Slave>
<Slave ChildId="30050" OwnPropDevice="true">NoFilterWheelsShutters</Slave>
<Slave ChildId="30070" OwnPropDevice="true">Shutters.Uniblitz.No</Slave>
<Slave ChildId="25100" OwnPropDevice="true">IOCard.NoIOCard</Slave>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective1Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="59" MyChildId="800">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective1</SimulationClass>
<TechReport Servos="10;Obj1 Correction1/60;Obj1 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective1.Correction1" DisplayName="Motorized Correction for Objective 1" DisplayName-de="Motorisierte Korrektur für Objektiv 1" MTBId="MTBObjective1Correction1" CANId="0x10" MyChildId="801">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective1.Correction2" DisplayName="Motorized Correction 2 for Objective 1" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 1" MTBId="MTBObjective1Correction2" CANId="0x20" MyChildId="802">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective1.Zoom" DisplayName="Motorized Zoom for Objective 1" DisplayName-de="Motorisiertes Zoom für Objektiv 1" MTBId="MTBObjective1Zoom" CANId="0x99" MyChildId="803">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective1TempSensor" DisplayName="Temperature Sensor Objective 1" DisplayName-de="Temperatursensor Objektiv 1" MTBId="MTBObjective1TempSensor" CANId="0x60" MyChildId="805">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective1CorrController" DisplayName="Correction Controller for Objective 1" DisplayName-de="Korrektur-Controller für Objektiv 1" MTBId="MTBObjective1CorrController" CANId="0x00" MyChildId="807">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective2Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="60" MyChildId="810">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective2</SimulationClass>
<TechReport Servos="10;Obj2 Correction1/60;Obj2 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective2.Correction1" DisplayName="Motorized Correction for Objective 2" DisplayName-de="Motorisierte Korrektur für Objektiv 2" MTBId="MTBObjective2Correction1" CANId="0x10" MyChildId="811">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective2.Correction2" DisplayName="Motorized Correction 2 for Objective 2" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 2" MTBId="MTBObjective2Correction2" CANId="0x20" MyChildId="812">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective2.Zoom" DisplayName="Motorized Zoom for Objective 2" DisplayName-de="Motorisiertes Zoom für Objektiv 2" MTBId="MTBObjective2Zoom" CANId="0x99" MyChildId="813">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective2TempSensor" DisplayName="Temperature Sensor Objective 2" DisplayName-de="Temperatursensor Objektiv 2" MTBId="MTBObjective2TempSensor" CANId="0x60" MyChildId="815">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective2CorrController" DisplayName="Correction Controller for Objective 2" DisplayName-de="Korrektur-Controller für Objektiv 2" MTBId="MTBObjective2CorrController" CANId="0x00" MyChildId="817">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective3Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="61" MyChildId="820">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective3</SimulationClass>
<TechReport Servos="10;Obj3 Correction1/60;Obj3 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective3.Correction1" DisplayName="Motorized Correction for Objective 3" DisplayName-de="Motorisierte Korrektur für Objektiv 3" MTBId="MTBObjective3Correction1" CANId="0x10" MyChildId="821">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective3.Correction2" DisplayName="Motorized Correction 2 for Objective 3" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 3" MTBId="MTBObjective3Correction2" CANId="0x20" MyChildId="822">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective3.Zoom" DisplayName="Motorized Zoom for Objective 3" DisplayName-de="Motorisiertes Zoom für Objektiv 3" MTBId="MTBObjective3Zoom" CANId="0x99" MyChildId="823">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective3TempSensor" DisplayName="Temperature Sensor Objective 3" DisplayName-de="Temperatursensor Objektiv 3" MTBId="MTBObjective3TempSensor" CANId="0x60" MyChildId="825">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective3CorrController" DisplayName="Correction Controller for Objective 3" DisplayName-de="Korrektur-Controller für Objektiv 3" MTBId="MTBObjective3CorrController" CANId="0x00" MyChildId="827">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective4Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="62" MyChildId="830">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective4</SimulationClass>
<TechReport Servos="10;Obj4 Correction1/60;Obj4 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective4.Correction1" DisplayName="Motorized Correction for Objective 4" DisplayName-de="Motorisierte Korrektur für Objektiv 4" MTBId="MTBObjective4Correction1" CANId="0x10" MyChildId="831">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective4.Correction2" DisplayName="Motorized Correction 2 for Objective 4" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 4" MTBId="MTBObjective4Correction2" CANId="0x20" MyChildId="832">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective4.Zoom" DisplayName="Motorized Zoom for Objective 4" DisplayName-de="Motorisiertes Zoom für Objektiv 4" MTBId="MTBObjective4Zoom" CANId="0x99" MyChildId="833">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective4TempSensor" DisplayName="Temperature Sensor Objective 4" DisplayName-de="Temperatursensor Objektiv 4" MTBId="MTBObjective4TempSensor" CANId="0x60" MyChildId="835">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective4CorrController" DisplayName="Correction Controller for Objective 4" DisplayName-de="Korrektur-Controller für Objektiv 4" MTBId="MTBObjective4CorrController" CANId="0x00" MyChildId="837">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective5Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="67" MyChildId="840">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective5</SimulationClass>
<TechReport Servos="10;Obj5 Correction1/60;Obj5 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective5.Correction1" DisplayName="Motorized Correction for Objective 5" DisplayName-de="Motorisierte Korrektur für Objektiv 5" MTBId="MTBObjective5Correction1" CANId="0x10" MyChildId="841">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective5.Correction2" DisplayName="Motorized Correction 2 for Objective 5" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 5" MTBId="MTBObjective5Correction2" CANId="0x20" MyChildId="842">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective5.Zoom" DisplayName="Motorized Zoom for Objective 5" DisplayName-de="Motorisiertes Zoom für Objektiv 5" MTBId="MTBObjective5Zoom" CANId="0x99" MyChildId="843">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective5TempSensor" DisplayName="Temperature Sensor Objective 5" DisplayName-de="Temperatursensor Objektiv 5" MTBId="MTBObjective5TempSensor" CANId="0x60" MyChildId="845">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective5CorrController" DisplayName="Correction Controller for Objective 5" DisplayName-de="Korrektur-Controller für Objektiv 5" MTBId="MTBObjective5CorrController" CANId="0x00" MyChildId="847">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective6Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="68" MyChildId="850">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective6</SimulationClass>
<TechReport Servos="10;Obj6 Correction1/60;Obj6 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective6.Correction1" DisplayName="Motorized Correction for Objective 6" DisplayName-de="Motorisierte Korrektur für Objektiv 6" MTBId="MTBObjective6Correction1" CANId="0x10" MyChildId="851">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective6.Correction2" DisplayName="Motorized Correction 2 for Objective 6" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 6" MTBId="MTBObjective6Correction2" CANId="0x20" MyChildId="852">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective6.Zoom" DisplayName="Motorized Zoom for Objective 6" DisplayName-de="Motorisiertes Zoom für Objektiv 6" MTBId="MTBObjective6Zoom" CANId="0x99" MyChildId="853">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="10" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="10.0" Max="40.0" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective6TempSensor" DisplayName="Temperature Sensor Objective 6" DisplayName-de="Temperatursensor Objektiv 6" MTBId="MTBObjective6TempSensor" CANId="0x60" MyChildId="855">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective6CorrController" DisplayName="Correction Controller for Objective 6" DisplayName-de="Korrektur-Controller für Objektiv 6" MTBId="MTBObjective6CorrController" CANId="0x00" MyChildId="857">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Name="NoPiezofocus" DisplayName="No Piezo Focus" DisplayName-de="Kein Piezo-Fokus" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30020" />
<Device Active="false" Name="ApoTome.none" MyChildId="10025" />
<Device Active="false" Name="Stage.none" MyChildId="10005" />
<Device Active="false" Name="TIRF.none" MyChildId="9200" />
<Device Active="false" Name="Safety_Device.ImagerZ2None" DisplayName="No Microscope Safety Device" DisplayName-de="Kein Mikroskop Safety Device" PortType="USB" PortNo="4100" PortBaudAddr="" RTSCTS="false" CANConnection="" MyChildId="10011" />
<Device Active="false" Name="Incubation.AtmoTemp_none" MyChildId="14000" />
<Device Active="false" Name="Linkam.none" DisplayName="No Linkam Heating Stage" DisplayName-de="Kein Linkam Heiztisch" MyChildId="9914" />
<Device Active="false" Name="REOEM.none" MyChildId="10013" />
<Device Active="false" Name="NoFilterWheelsShutters" DisplayName="No Filter Wheels and Shutters" DisplayName-de="Keine Filterräder und Verschlüsse" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30050" />
<Device Active="false" Name="Shutters.Uniblitz.No" DisplayName="No Shutters" DisplayName-de="Keine Verschlüsse" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30070" />
<Device Active="false" Name="IOCard.NoIOCard" DisplayName="No IOCard" DisplayName-de="Keine IO-Karte" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="25100" />
</Devices>
</MTBConfiguration>
</MTB2004Export>
\ No newline at end of file
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("ZeissMicroscopeAPI")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("ZeissMicroscopeAPI")]
[assembly: AssemblyCopyright("Copyright © 2026")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("a1f466a5-74f6-4942-861d-1c1add822d25")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class ApblController
{
public static double ApblGetMaxMoveSpeed (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetMaxMoveSpeed(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblGetMinMoveSpeed (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetMinMoveSpeed(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblGetSpeedUnitCount (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.GetSpeedUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblStop (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.Stop() ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsOnHWLimit (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = (int)Manager.ApblHandler.IsOnHWLimit;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblGetMaxPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetMaxPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblGetMinPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetMinPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblGetPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblGetPositionUnitCount(IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.GetPositionUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblGetTargetPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.GetTargetPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblMaxDeviation (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.MaxDeviation(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblStepWidth (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.StepWidth(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblTypicalDeviation (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.TypicalDeviation(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string ApblGetSpeedUnit (IMicroscope Manager , int index )
{
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.ApblHandler.GetSpeedUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string ApblGetPositionUnit (IMicroscope Manager , int index )
{
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.ApblHandler.GetPositionUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblMove (IMicroscope Manager , double moveSpeed )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.Move(moveSpeed, Manager.MTBUnit) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double ApblAlignPosition (IMicroscope Manager , double position )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.ApblHandler.AlignPosition(position, Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblSetPosition (IMicroscope Manager , double position , int mode , int timeout )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.ApblHandler.SetPosition(position, Manager.MTBUnit, (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblSetPosition (IMicroscope Manager , double position , int mode)
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.ApblHandler.SetPosition(position, Manager.MTBUnit, (MTBCmdSetModes)mode);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.IsMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsLocked (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.IsLocked ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsBusy (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.IsBusy ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblHasMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.HasMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsLockedForClient (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.IsLockedForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblIsMonitoringForClient (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.IsMonitoringForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblLock (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.Lock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblStartMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.StartMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblStopMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.StopMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblUnlock (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.Unlock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ApblWaitReady (IMicroscope Manager, int timeout ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ApblHandler.WaitReady(timeout) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class AxisController
{
public static double GetMaxMoveSpeed (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.MoveHandler.GetMaxMoveSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMinMoveSpeed (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.MoveHandler.GetMinMoveSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string GetSpeedUnit (IMicroscope Manager, int index )
{
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.MoveHandler.GetSpeedUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetSpeedUnitCount (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.MoveHandler.GetSpeedUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int Move (IMicroscope Manager, double moveSpeed )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.MoveHandler.Move(Manager.MicroscopeID, moveSpeed, Manager.MTBSpeedUnit) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int Stop (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.MoveHandler.Stop(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double AlignPosition (IMicroscope Manager , double position ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.AlignPosition(position, Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMaxPosition (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMaxPosition(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMinPosition (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMinPosition(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetPosition (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetPosition(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string GetPositionUnit (IMicroscope Manager , int index ) {
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.AxisHandler.GetPositionUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetPositionUnitCount(IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetPositionUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetTargetPosition (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetTargetPosition(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double MaxDeviation (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.MaxDeviation(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetPosition (IMicroscope Manager , double position, int mode, int timeout ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.MoveHandler.SetPosition(Manager.MicroscopeID, position, Manager.MTBAxisUnit, (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetPosition (IMicroscope Manager , double position, int mode ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.MoveHandler.SetPosition(Manager.MicroscopeID, position, Manager.MTBAxisUnit, (MTBCmdSetModes)mode);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double StepWidth (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.StepWidth(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double TypicalDeviation (IMicroscope Manager) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.TypicalDeviation(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasContinualAcceleration (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasContinualAcceleration ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasContinualStartSpeed (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasContinualStartSpeed ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetContinualAcceleration (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetContinualAcceleration(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string GetContinualAccelerationUnit (IMicroscope Manager, int index ) {
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.AxisHandler.GetContinualAccelerationUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetContinualAccelerationUnitCount(IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetContinualStartSpeedUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetContinualSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetContinualSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string GetContinualSpeedUnit (IMicroscope Manager, int index ) {
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.AxisHandler.GetContinualAccelerationUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetContinualSpeedUnitCount (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetContinualStartSpeedUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetContinualStartSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetContinualStartSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string GetContinualStartSpeedUnit (IMicroscope Manager, int index ) {
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.AxisHandler.GetContinualAccelerationUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetContinualStartSpeedUnitCount (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetContinualStartSpeedUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMaxContinualAcceleration (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMaxContinualAcceleration(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMaxContinualSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMaxContinualSpeed(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMaxContinualStartSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMaxContinualStartSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMinContinualAcceleration (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMinContinualAcceleration(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMinContinualSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMinContinualSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMinContinualStartSpeed (IMicroscope Manager ) {
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMinContinualStartSpeed(Manager.MTBSpeedUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetContinualAcceleration (IMicroscope Manager,double continualAcceleration ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetContinualAcceleration(continualAcceleration, Manager.MTBUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetContinualSpeed (IMicroscope Manager,double continualSpeed ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetContinualSpeed(continualSpeed, Manager.MTBSpeedUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetContinualStartSpeed (IMicroscope Manager,double continualSpeed ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetContinualStartSpeed(continualSpeed, Manager.MTBSpeedUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int IsOnHWLimit (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
var Limit = Manager.AxisHandler.IsOnHWLimit;
switch (Limit)
{
case MTBLimits.None:
result = Settings.RECODE_FAILURE;
break;
case MTBLimits.Lower:
result = Settings.RECODE_SUCCEED;
break;
case MTBLimits.Upper:
result = Settings.RECODE_WARNING;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasOnOff ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasLoadWork (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasLoadWork ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasSWLimit (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
var Limit = Manager.AxisHandler.HasSWLimit;
switch (Limit)
{
case MTBLimits.None:
result = Settings.RECODE_FAILURE;
break;
case MTBLimits.Lower:
result = Settings.RECODE_SUCCEED;
break;
case MTBLimits.Upper:
result = Settings.RECODE_WARNING;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int IsOnSWLimit (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
var Limit = Manager.AxisHandler.IsOnSWLimit;
switch (Limit)
{
case MTBLimits.None:
result = Settings.RECODE_FAILURE;
break;
case MTBLimits.Lower:
result = Settings.RECODE_SUCCEED;
break;
case MTBLimits.Upper:
result = Settings.RECODE_WARNING;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int CoordinateDirection (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
var Limit = Manager.AxisHandler.CoordinateDirection;
switch (Limit)
{
case MTBDirection.Positive:
result = Settings.RECODE_FAILURE;
break;
case MTBDirection.Negative:
result = Settings.RECODE_SUCCEED;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ClosedLoop (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
var Limit = Manager.AxisHandler.ClosedLoop;
switch (Limit)
{
case MTBOnOff.Off:
result = Settings.RECODE_FAILURE;
break;
case MTBOnOff.On:
result = Settings.RECODE_SUCCEED;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int HasHandwheelOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasHandwheelOnOff ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int Calibrate (IMicroscope Manager, int calMode, int cmdMode )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.Calibrate((MTBCalibrationModes)calMode, (MTBCmdSetModes)cmdMode) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int Calibrate (IMicroscope Manager, int calMode, int cmdMode, int timeout )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.Calibrate((MTBCalibrationModes)calMode, (MTBCmdSetModes)cmdMode, timeout) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int EnableSWLimit (IMicroscope Manager, bool upper, bool enable )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.EnableSWLimit(upper, enable) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetHandwheelOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetHandwheelOnOff() == MTBOnOff.On ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMeasurementOrigin (IMicroscope Manager)
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMeasurementOrigin(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetMeasurementPosition (IMicroscope Manager)
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetMeasurementPosition(Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.GetOnOff() == MTBOnOff.On ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double GetSWLimit (IMicroscope Manager, bool upper )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.AxisHandler.GetSWLimit(upper, Manager.MTBAxisUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int IsSWLimitEnabled (IMicroscope Manager, bool upper )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsSWLimitEnabled(upper) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetHandwheelOnOff (IMicroscope Manager, bool onOff )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetHandwheelOnOff(onOff ? MTBOnOff.On : MTBOnOff.Off);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetMeasurementOrigin (IMicroscope Manager, double origin )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetMeasurementOrigin(origin, Manager.MTBAxisUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetMeasurementPosition (IMicroscope Manager, double position )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetMeasurementOrigin(position, Manager.MTBAxisUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetOnOff (IMicroscope Manager, bool onOff )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetOnOff(onOff ? MTBOnOff.On : MTBOnOff.Off);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetSWLimit (IMicroscope Manager, bool upper, double limit )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.AxisHandler.SetSWLimit(upper, limit, Manager.MTBAxisUnit);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverIsMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverIsLocked (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsLocked ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverIsBusy (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsBusy ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverHasMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.HasMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverIsLockedForClient (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsLockedForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverIsMonitoringForClient (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.IsMonitoringForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverLock (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.Lock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverStartMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.StartMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverStopMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.StopMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverUnlock (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.Unlock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ZDriverWaitReady (IMicroscope Manager, int timeout)
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.AxisHandler.WaitReady(timeout) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class LampController
{
public static int LampType (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = (int)Manager.LampHandler.LampType;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsActive (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsActive ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampLightPathLocation (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = (int)Manager.LampHandler.LightPathLocation;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampHasRemote (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.HasRemote ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampHasOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.HasOnOff ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampHas3200K (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.Has3200K ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampGet3200K (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.Get3200K() == MTBOnOff.On ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampGetOnOff (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.GetOnOff() == MTBOnOff.On ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampGetRemote (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.GetRemote() == MTBOnOff.On ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSetRemote (IMicroscope Manager , bool onOff )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.SetRemote(onOff ? MTBOnOff.On : MTBOnOff.Off);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSet3200K (IMicroscope Manager , bool onOff , int mode )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.Set3200K(onOff ? MTBOnOff.On : MTBOnOff.Off, (MTBCmdSetModes)mode);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSetOnOff (IMicroscope Manager , bool onOff , int mode )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.SetOnOff(onOff ? MTBOnOff.On : MTBOnOff.Off, (MTBCmdSetModes)mode);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSet3200K (IMicroscope Manager , bool onOff , int mode , int timeout )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.Set3200K(onOff ? MTBOnOff.On : MTBOnOff.Off, (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSetOnOff (IMicroscope Manager , bool onOff , int mode , int timeout )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.SetOnOff(onOff ? MTBOnOff.On : MTBOnOff.Off, (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsOnHWLimit (IMicroscope Manager)
{
var result = Settings.RECODE_FAILURE;
try
{
var limit = Manager.LampHandler.IsOnHWLimit;
switch(limit)
{
case MTBLimits.None:
result = Settings.RECODE_FAILURE;
break;
case MTBLimits.Lower:
result = Settings.RECODE_SUCCEED;
break;
case MTBLimits.Upper:
result = Settings.RECODE_WARNING;
break;
default:
result = Settings.RECODE_FAILURE;
break;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampGetMaxPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.GetMaxPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampGetMinPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.GetMinPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampGetPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.GetPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampGetPositionUnitCount(IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.GetPositionUnitCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampGetTargetPosition (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.GetTargetPosition(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampMaxDeviation (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.MaxDeviation(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampStepWidth (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.StepWidth(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static double LampTypicalDeviation (IMicroscope Manager )
{
var result = Settings.DEFAULT_DOUBLE;
try
{
result = Manager.LampHandler.TypicalDeviation(Manager.MTBUnit);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static string LampGetPositionUnit (IMicroscope Manager , int index )
{
var result = Settings.DEFAULT_STRING;
try
{
result = Manager.LampHandler.GetPositionUnit(index);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSetPosition (IMicroscope Manager , double position , int mode )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.SetPosition(position, Manager.MTBUnit, (MTBCmdSetModes)mode);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampSetPosition (IMicroscope Manager , double position , int mode , int timeout)
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.LampHandler.SetPosition(position, Manager.MTBUnit, (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsLocked (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsLocked ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsBusy (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsBusy ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampHasMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.HasMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsLockedForClient (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsLockedForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampIsMonitoringForClient (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.IsMonitoringForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampLock (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.Lock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampStartMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.StartMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampStopMonitoring (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.StopMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampUnlock (IMicroscope Manager )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.Unlock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int LampWaitReady (IMicroscope Manager, int timeout )
{
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.LampHandler.WaitReady(timeout) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int SetLampILTLSwitch(IMicroscope Manager, bool enable, int mode)
{
var result = Settings.RECODE_FAILURE;
try
{
int ENABLE = enable ? 1 : 0;
result = Manager.MTBRLTLSwitch.SetPosition((short)ENABLE, (MTBCmdSetModes)mode) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int GetLampILTLSwitch(IMicroscope Manager)
{
var result = Settings.RECODE_FAILURE;
try
{
result = Convert.ToInt32(Manager.MTBRLTLSwitch.Position);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class ObjectiveController
{
public static int ObjectiveIsMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.IsMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveIsLocked (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.IsLocked ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveIsBusy (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.IsBusy ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveHasMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.HasMonitoring ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveIsLockedForClient (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.IsLockedForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveIsMonitoringForClient (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.IsMonitoringForClient(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveLock (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.Lock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveStartMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.StartMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveStopMonitoring (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.StopMonitoring(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveUnlock (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.Unlock(Manager.MicroscopeID) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveWaitReady (IMicroscope Manager, int timeout ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Manager.ObjectiveHandler.WaitReady(timeout) ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveAbsPosition (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Convert.ToInt32(Manager.ObjectiveHandler.Position);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveMinPosition (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Convert.ToInt32(Manager.ObjectiveHandler.MinPosition);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveMaxPosition (IMicroscope Manager ) {
var result = Settings.RECODE_FAILURE;
try
{
result = Convert.ToInt32(Manager.ObjectiveHandler.MaxPosition);
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveSetPosition (IMicroscope Manager, int position, int mode, int timeout ) {
var result = Settings.RECODE_FAILURE;
try
{
Manager.ObjectiveHandler.SetPosition(Convert.ToInt16(position), (MTBCmdSetModes)mode, timeout);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public static int ObjectiveSetPosition (IMicroscope Manager, int position, int mode )
{
var result = Settings.RECODE_FAILURE;
try
{
Manager.ObjectiveHandler.SetPosition(Convert.ToInt16(position), (MTBCmdSetModes)mode);
result = Settings.RECODE_SUCCEED;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
namespace ZeissMicroscopeAPI
{
public interface IMicController
{
double GetMaxMoveSpeed (IMicroscope Manager );
double GetMinMoveSpeed (IMicroscope Manager );
string GetSpeedUnit (IMicroscope Manager,int index );
int GetSpeedUnitCount (IMicroscope Manager );
int Move (IMicroscope Manager, double moveSpeed );
int Stop (IMicroscope Manager );
double GetContinualAcceleration (IMicroscope Manager );
string GetContinualAccelerationUnit (IMicroscope Manager, int index );
int GetContinualAccelerationUnitCount (IMicroscope Manager );
double GetContinualSpeed (IMicroscope Manager );
string GetContinualSpeedUnit (IMicroscope Manager, int index );
int GetContinualSpeedUnitCount (IMicroscope Manager );
double GetContinualStartSpeed (IMicroscope Manager );
string GetContinualStartSpeedUnit (IMicroscope Manager, int index );
int GetContinualStartSpeedUnitCount (IMicroscope Manager );
double GetMaxContinualAcceleration (IMicroscope Manager );
double GetMaxContinualSpeed (IMicroscope Manager );
double GetMaxContinualStartSpeed (IMicroscope Manager );
double GetMinContinualAcceleration (IMicroscope Manager );
double GetMinContinualSpeed (IMicroscope Manager );
double GetMinContinualStartSpeed (IMicroscope Manager );
int SetContinualAcceleration (IMicroscope Manager, double continualAcceleration );
int SetContinualSpeed (IMicroscope Manager, double continualSpeed );
int SetContinualStartSpeed (IMicroscope Manager, double continualSpeed );
int IsOnHWLimit (IMicroscope Manager );
double AlignPosition (IMicroscope Manager, double position );
double GetMaxPosition (IMicroscope Manager );
double GetMinPosition (IMicroscope Manager );
double GetPosition (IMicroscope Manager );
string GetPositionUnit (IMicroscope Manager, int index );
int GetPositionUnitCount (IMicroscope Manager );
double GetTargetPosition (IMicroscope Manager );
double MaxDeviation (IMicroscope Manager );
int SetPosition (IMicroscope Manager, double position , int mode );
int SetPosition (IMicroscope Manager, double position , int mode , int timeout );
double StepWidth (IMicroscope Manager );
double TypicalDeviation (IMicroscope Manager );
int HasOnOff (IMicroscope Manager );
int HasLoadWork (IMicroscope Manager );
int HasSWLimit (IMicroscope Manager );
int IsOnSWLimit (IMicroscope Manager );
int CoordinateDirection (IMicroscope Manager );
int ClosedLoop (IMicroscope Manager );
int HasHandwheelOnOff (IMicroscope Manager );
int Calibrate (IMicroscope Manager, int calMode , int cmdMode );
int Calibrate (IMicroscope Manager, int calMode , int cmdMode , int timeout );
int EnableSWLimit (IMicroscope Manager, bool upper , bool enable );
int GetHandwheelOnOff (IMicroscope Manager );
double GetMeasurementOrigin (IMicroscope Manager );
double GetMeasurementPosition (IMicroscope Manager );
int GetOnOff (IMicroscope Manager );
double GetSWLimit (IMicroscope Manager, bool upper );
int IsSWLimitEnabled (IMicroscope Manager, bool upper );
int SetHandwheelOnOff (IMicroscope Manager, bool onOff );
int SetMeasurementOrigin (IMicroscope Manager, double origin );
int SetMeasurementPosition (IMicroscope Manager, double position );
int SetOnOff (IMicroscope Manager, bool onOff );
int SetSWLimit (IMicroscope Manager, bool upper , double limit );
int ZDriverIsMonitoring (IMicroscope Manager );
int ZDriverIsLocked (IMicroscope Manager );
int ZDriverIsBusy (IMicroscope Manager );
int ZDriverHasMonitoring (IMicroscope Manager );
int ZDriverIsLockedForClient (IMicroscope Manager );
int ZDriverIsMonitoringForClient (IMicroscope Manager );
int ZDriverLock (IMicroscope Manager );
int ZDriverStartMonitoring (IMicroscope Manager );
int ZDriverStopMonitoring (IMicroscope Manager );
int ZDriverUnlock (IMicroscope Manager );
int ZDriverWaitReady (IMicroscope Manager, int timeout );
int ObjectiveIsMonitoring (IMicroscope Manager );
int ObjectiveIsLocked (IMicroscope Manager );
int ObjectiveIsBusy (IMicroscope Manager );
int ObjectiveHasMonitoring (IMicroscope Manager );
int ObjectiveIsLockedForClient (IMicroscope Manager );
int ObjectiveIsMonitoringForClient (IMicroscope Manager );
int ObjectiveLock (IMicroscope Manager );
int ObjectiveStartMonitoring (IMicroscope Manager );
int ObjectiveStopMonitoring (IMicroscope Manager );
int ObjectiveUnlock (IMicroscope Manager );
int ObjectiveWaitReady (IMicroscope Manager, int timeout );
int ObjectiveAbsPosition (IMicroscope Manager );
int ObjectiveMinPosition (IMicroscope Manager );
int ObjectiveMaxPosition (IMicroscope Manager );
int ObjectiveSetPosition (IMicroscope Manager, int position, int mode, int timeout );
int ObjectiveSetPosition (IMicroscope Manager, int position, int mode );
int LampType (IMicroscope Manager );
int LampIsActive (IMicroscope Manager );
int LampLightPathLocation (IMicroscope Manager );
int LampHasRemote (IMicroscope Manager );
int LampHasOnOff (IMicroscope Manager );
int LampHas3200K (IMicroscope Manager );
int LampGet3200K (IMicroscope Manager );
int LampGetOnOff (IMicroscope Manager );
int LampGetRemote (IMicroscope Manager );
int LampSetRemote (IMicroscope Manager , bool onOff );
int LampSet3200K (IMicroscope Manager , bool onOff , int mode );
int LampSetOnOff (IMicroscope Manager , bool onOff , int mode );
int LampSet3200K (IMicroscope Manager , bool onOff , int mode , int timeout );
int LampSetOnOff (IMicroscope Manager , bool onOff , int mode , int timeout );
int LampIsOnHWLimit (IMicroscope Manager );
double LampGetMaxPosition (IMicroscope Manager );
double LampGetMinPosition (IMicroscope Manager );
double LampGetPosition (IMicroscope Manager );
int LampGetPositionUnitCount (IMicroscope Manager );
double LampGetTargetPosition (IMicroscope Manager );
double LampMaxDeviation (IMicroscope Manager );
double LampStepWidth (IMicroscope Manager );
double LampTypicalDeviation (IMicroscope Manager );
string LampGetPositionUnit (IMicroscope Manager , int index );
int LampSetPosition (IMicroscope Manager , double position , int mode );
int LampSetPosition (IMicroscope Manager , double position , int mode , int timeout );
int LampIsMonitoring (IMicroscope Manager );
int LampIsLocked (IMicroscope Manager );
int LampIsBusy (IMicroscope Manager );
int LampHasMonitoring (IMicroscope Manager );
int LampIsLockedForClient (IMicroscope Manager );
int LampIsMonitoringForClient (IMicroscope Manager );
int LampLock (IMicroscope Manager );
int LampStartMonitoring (IMicroscope Manager );
int LampStopMonitoring (IMicroscope Manager );
int LampUnlock (IMicroscope Manager );
int LampWaitReady (IMicroscope Manager, int timeout );
int SetLampILTLSwitch (IMicroscope Manager, bool enable, int mode );
int GetLampILTLSwitch (IMicroscope Manager );
double ApblGetMaxMoveSpeed (IMicroscope Manager );
double ApblGetMinMoveSpeed (IMicroscope Manager );
int ApblGetSpeedUnitCount (IMicroscope Manager );
int ApblStop (IMicroscope Manager );
int ApblIsOnHWLimit (IMicroscope Manager );
double ApblGetMaxPosition (IMicroscope Manager );
double ApblGetMinPosition (IMicroscope Manager );
double ApblGetPosition (IMicroscope Manager );
int ApblGetPositionUnitCount(IMicroscope Manager );
double ApblGetTargetPosition (IMicroscope Manager );
double ApblMaxDeviation (IMicroscope Manager );
double ApblStepWidth (IMicroscope Manager );
double ApblTypicalDeviation (IMicroscope Manager );
string ApblGetSpeedUnit (IMicroscope Manager , int index );
string ApblGetPositionUnit (IMicroscope Manager , int index );
int ApblMove (IMicroscope Manager , double moveSpeed );
double ApblAlignPosition (IMicroscope Manager , double position );
int ApblSetPosition (IMicroscope Manager , double position , int mode , int timeout );
int ApblSetPosition (IMicroscope Manager , double position , int mode );
int ApblIsMonitoring (IMicroscope Manager );
int ApblIsLocked (IMicroscope Manager );
int ApblIsBusy (IMicroscope Manager );
int ApblHasMonitoring (IMicroscope Manager );
int ApblIsLockedForClient (IMicroscope Manager );
int ApblIsMonitoringForClient (IMicroscope Manager );
int ApblLock (IMicroscope Manager );
int ApblStartMonitoring (IMicroscope Manager );
int ApblStopMonitoring (IMicroscope Manager );
int ApblUnlock (IMicroscope Manager );
int ApblWaitReady (IMicroscope Manager, int timeout );
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
namespace ZeissMicroscopeAPI
{
public interface IMicroscope: IDisposable
{
bool hasMicroscope { get; }
bool hasMTBConnection { get; } // 连接接口
bool hasMTBID { get; } // 模块序号
bool hasManager { get; } // 控制模块
bool hasMTBModules { get; } // 全部模块
bool IsValid { get; }
bool IsAvailable { get; }
bool IsOpen { get; }
int Accessibility { get; }
bool IsLogin { get; }
bool IsInit { get; }
string MicroscopeType { get; } // 蔡司显微镜型号
string MicroscopeVersion { get; } // 蔡司显微镜版本
string MicroscopeID { get; } // 蔡司显微镜序号
bool IsSucceed { get; } // 当前加载状态
int DeviceID { get; set; }
string MTBAxisUnit { get; set; } // 显微镜轴移动单位
string MTBUnit { get; set; } // 显微镜默认单位
string MTBSpeedUnit { get; set; } // 显微镜速度单位
string MTBLightUnit { get; set; } // 显微镜光源单位
IMTBDevice ZeissMicroscope { get; }
int Open ();
int Close ();
int ReOpen ();
int Init ();
int Login ();
int Logout ();
void initManager ();
void deleManager ();
void initMTBModules ();
void deleMTBModules ();
string[] ComponentIDs ( );
int getDeviceCount( );
IMTBComponent Handler (string ComponentID );
IMTBFocus FocusHandler { get; }
IMTBAxis AxisHandler { get; }
IMTBMove MoveHandler { get; }
IMTBContinualSpeed SpeedHandler { get; }
IMTBChanger RLTLHandler { get; }
IMTBObjectiveChanger ObjectiveHandler { get; }
IMTBLamp LampHandler { get; }
IMTBServo ApblHandler { get; }
IMTBServo LfblHandler { get; }
IMTBContrastChangerProperties MTBCondenserProperties { get; }
IMTBEyepiece MTBEyePiece { get; }
IMTBFocus MTBFocus { get; }
IMTBMicroscopeManager MTBMicroscopeManager { get; }
IMTBObject MTBObject { get; }
IMTBObjectiveChanger MTBObjectiveChanger { get; }
IMTBChanger MTBRLTLSwitch { get; }
IMTBServo MTBTLFieldStop { get; }
IMTBFilterChanger MTBTLFilterChanger1 { get; }
IMTBFilterChanger MTBTLFilterChanger2 { get; }
IMTBLamp MTBTLHalogenLamp { get; }
IMTBFilterChanger MTBTLVirtualFilterChanger { get; }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YQLInterfaces
{
public class IYQLContext : YQLInterface
{
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Reflection;
namespace YQLInterfaces
{
public class YQLInterface
{
public string Information { get; set; }
public static bool has_Field(object src, string name, Type TYPE)
{
try
{
if (src == null) return false;
var propertyInfo = src.GetType().GetProperty(name);
if (propertyInfo != null && propertyInfo.GetValue(src, null) != null)
return propertyInfo.GetValue(src, null).GetType() == TYPE;
}
catch (Exception) { }
return false;
}
public static T GetField<T>(object src, string name)
{
try
{
if (src == null) return default(T);
var propertyInfo = src.GetType().GetProperty(name);
return (T)propertyInfo.GetValue(src, null);
}
catch (Exception) { }
return default(T);
}
public static void SetField<T>(object src, string name, T value)
{
try
{
if (src == null) return;
var propertyInfo = src.GetType().GetProperty(name);
propertyInfo.SetValue(src, value, null);
}
catch (Exception) { }
return;
}
public virtual bool hasProperty(string name, Type TYPE)
{
try
{
var propertyInfo = GetType().GetProperty(name);
if (propertyInfo != null && propertyInfo.GetValue(this, null) != null)
return propertyInfo.GetValue(this, null).GetType() == TYPE;
}
catch (Exception) { }
return false;
}
public virtual T getProperty<T>(string name)
{
try
{
var propertyInfo = GetType().GetProperty(name);
return (T)propertyInfo.GetValue(this, null);
}
catch (Exception) { }
return default(T);
}
public virtual void setProperty<T>(string name, T value)
{
try
{
var propertyInfo = GetType().GetProperty(name);
propertyInfo.SetValue(this, value, null);
}
catch (Exception) { }
return;
}
public virtual void initialization(string information)
{
Information = information;
initialize();
}
public virtual void initialize()
{
initData();
initValue();
initProperty();
initConnect();
}
public virtual void deinitialize()
{
deleConnect();
deleProperty();
deleValue();
deleData();
}
public virtual void initData() { }
public virtual void initValue() { }
public virtual void initProperty() { }
public virtual void initConnect() { }
public virtual void deleData() { }
public virtual void deleValue() { }
public virtual void deleProperty() { }
public virtual void deleConnect() { }
public void From(object source)
{
if (source == null)
return;
if (object.ReferenceEquals(this, source))
return;
Type type = source.GetType();
foreach (PropertyInfo property in type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
if (!property.CanWrite) continue;
if (!hasProperty(property.Name, property.PropertyType)) continue;
object value = property.GetValue(source);
if (value == null || property.PropertyType.IsValueType || property.PropertyType == typeof(string))
{
property.SetValue(this, value);
}
else
{
property.SetValue(this, DeepCopy(value));
}
}
}
public object Copy()
{
Type type = GetType();
object target = DeepCopy(this);
return target;
}
public static object DeepCopy(object source)
{
if (source == null) return null;
Type type = source.GetType();
object target = Activator.CreateInstance(type);
// 遍历所有属性
foreach (PropertyInfo property in type.GetProperties(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
if (!property.CanWrite) continue;
object value = property.GetValue(source);
if (value == null || property.PropertyType.IsValueType || property.PropertyType == typeof(string))
{
property.SetValue(target, value);
}
else
{
property.SetValue(target, DeepCopy(value));
}
}
// 遍历所有字段
foreach (FieldInfo field in type.GetFields(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance))
{
object value = field.GetValue(source);
if (value == null || field.FieldType.IsValueType || field.FieldType == typeof(string))
{
field.SetValue(target, value);
}
else
{
field.SetValue(target, DeepCopy(value));
}
}
return target;
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class MicManager: IMicController
{
private static MicManager uniqueInstance;
// 定义一个标识确保线程同步
private static readonly object locker = new object();
/// <summary>
/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
/// </summary>
/// <returns></returns>
public static MicManager GetInstance()
{
// 当第一个线程运行到这里时,此时会对locker对象 "加锁",
// 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁
// lock语句运行完之后(即线程运行完之后)会对该对象"解锁"
// 双重锁定只需要一句判断就可以了
if (uniqueInstance == null)
{
lock (locker)
{
// 如果类的实例不存在则创建,否则直接返回
if (uniqueInstance == null)
{
uniqueInstance = new MicManager();
}
}
}
return uniqueInstance;
}
public double GetMaxMoveSpeed (IMicroscope Manager )
{
return AxisController.GetMaxMoveSpeed(Manager);
}
public double GetMinMoveSpeed (IMicroscope Manager )
{
return AxisController.GetMinMoveSpeed(Manager);
}
public string GetSpeedUnit (IMicroscope Manager,int index )
{
return AxisController.GetSpeedUnit(Manager, index);
}
public int GetSpeedUnitCount (IMicroscope Manager )
{
return AxisController.GetSpeedUnitCount(Manager);
}
public int Move (IMicroscope Manager, double moveSpeed )
{
return AxisController.Move(Manager, moveSpeed);
}
public int Stop (IMicroscope Manager)
{
return AxisController.Stop(Manager);
}
public double GetContinualAcceleration (IMicroscope Manager )
{
return AxisController.GetContinualAcceleration(Manager);
}
public string GetContinualAccelerationUnit (IMicroscope Manager, int index )
{
return AxisController.GetContinualAccelerationUnit(Manager, index);
}
public int GetContinualAccelerationUnitCount (IMicroscope Manager )
{
return AxisController.GetContinualAccelerationUnitCount(Manager);
}
public double GetContinualSpeed (IMicroscope Manager )
{
return AxisController.GetContinualSpeed(Manager);
}
public string GetContinualSpeedUnit (IMicroscope Manager, int index )
{
return AxisController.GetContinualSpeedUnit(Manager, index);
}
public int GetContinualSpeedUnitCount (IMicroscope Manager )
{
return AxisController.GetContinualSpeedUnitCount(Manager);
}
public double GetContinualStartSpeed (IMicroscope Manager )
{
return AxisController.Stop(Manager);
}
public string GetContinualStartSpeedUnit (IMicroscope Manager, int index )
{
return AxisController.GetContinualStartSpeedUnit(Manager, index);
}
public int GetContinualStartSpeedUnitCount (IMicroscope Manager )
{
return AxisController.GetContinualStartSpeedUnitCount(Manager);
}
public double GetMaxContinualAcceleration (IMicroscope Manager )
{
return AxisController.GetMaxContinualAcceleration(Manager);
}
public double GetMaxContinualSpeed (IMicroscope Manager )
{
return AxisController.GetMaxContinualSpeed(Manager);
}
public double GetMaxContinualStartSpeed (IMicroscope Manager )
{
return AxisController.GetMaxContinualStartSpeed(Manager);
}
public double GetMinContinualAcceleration (IMicroscope Manager )
{
return AxisController.GetMinContinualAcceleration(Manager);
}
public double GetMinContinualSpeed (IMicroscope Manager )
{
return AxisController.GetMinContinualSpeed(Manager);
}
public double GetMinContinualStartSpeed (IMicroscope Manager )
{
return AxisController.GetMinContinualStartSpeed(Manager);
}
public int SetContinualAcceleration (IMicroscope Manager, double continualAcceleration )
{
return AxisController.SetContinualAcceleration(Manager, continualAcceleration);
}
public int SetContinualSpeed (IMicroscope Manager, double continualSpeed )
{
return AxisController.SetContinualSpeed(Manager, continualSpeed);
}
public int SetContinualStartSpeed (IMicroscope Manager, double continualSpeed)
{
return AxisController.SetContinualStartSpeed(Manager, continualSpeed);
}
public int IsOnHWLimit (IMicroscope Manager ) { return AxisController.IsOnHWLimit ( Manager ); }
public double AlignPosition (IMicroscope Manager, double position ) { return AxisController.AlignPosition ( Manager, position ); }
public double GetMaxPosition (IMicroscope Manager ) { return AxisController.GetMaxPosition ( Manager ); }
public double GetMinPosition (IMicroscope Manager ) { return AxisController.GetMinPosition ( Manager ); }
public double GetPosition (IMicroscope Manager ) { return AxisController.GetPosition ( Manager ); }
public string GetPositionUnit (IMicroscope Manager, int index ) { return AxisController.GetPositionUnit ( Manager, index ); }
public int GetPositionUnitCount (IMicroscope Manager ) { return AxisController.GetPositionUnitCount ( Manager ); }
public double GetTargetPosition (IMicroscope Manager ) { return AxisController.GetTargetPosition ( Manager ); }
public double MaxDeviation (IMicroscope Manager ) { return AxisController.MaxDeviation ( Manager ); }
public int SetPosition (IMicroscope Manager, double position , int mode ) { return AxisController.SetPosition ( Manager, position , mode ); }
public int SetPosition (IMicroscope Manager, double position , int mode , int timeout ) { return AxisController.SetPosition ( Manager, position , mode , timeout ); }
public double StepWidth (IMicroscope Manager ) { return AxisController.StepWidth ( Manager ); }
public double TypicalDeviation (IMicroscope Manager ) { return AxisController.TypicalDeviation ( Manager ); }
public int HasOnOff (IMicroscope Manager ) { return AxisController.HasOnOff (Manager ); }
public int HasLoadWork (IMicroscope Manager ) { return AxisController.HasLoadWork (Manager ); }
public int HasSWLimit (IMicroscope Manager ) { return AxisController.HasSWLimit (Manager ); }
public int IsOnSWLimit (IMicroscope Manager ) { return AxisController.IsOnSWLimit (Manager ); }
public int CoordinateDirection (IMicroscope Manager ) { return AxisController.CoordinateDirection (Manager ); }
public int ClosedLoop (IMicroscope Manager ) { return AxisController.ClosedLoop (Manager ); }
public int HasHandwheelOnOff (IMicroscope Manager ) { return AxisController.HasHandwheelOnOff (Manager ); }
public int Calibrate (IMicroscope Manager, int calMode , int cmdMode ) { return AxisController.Calibrate (Manager, calMode , cmdMode ); }
public int Calibrate (IMicroscope Manager, int calMode , int cmdMode , int timeout ) { return AxisController.Calibrate (Manager, calMode , cmdMode , timeout ); }
public int EnableSWLimit (IMicroscope Manager, bool upper , bool enable ) { return AxisController.EnableSWLimit (Manager, upper , enable ); }
public int GetHandwheelOnOff (IMicroscope Manager ) { return AxisController.GetHandwheelOnOff (Manager ); }
public double GetMeasurementOrigin (IMicroscope Manager ) { return AxisController.GetMeasurementOrigin (Manager ); }
public double GetMeasurementPosition (IMicroscope Manager ) { return AxisController.GetMeasurementPosition (Manager ); }
public int GetOnOff (IMicroscope Manager ) { return AxisController.GetOnOff (Manager ); }
public double GetSWLimit (IMicroscope Manager, bool upper ) { return AxisController.GetSWLimit (Manager, upper ); }
public int IsSWLimitEnabled (IMicroscope Manager, bool upper ) { return AxisController.IsSWLimitEnabled (Manager, upper ); }
public int SetHandwheelOnOff (IMicroscope Manager, bool onOff ) { return AxisController.SetHandwheelOnOff (Manager, onOff ); }
public int SetMeasurementOrigin (IMicroscope Manager, double origin ) { return AxisController.SetMeasurementOrigin (Manager, origin ); }
public int SetMeasurementPosition (IMicroscope Manager, double position ) { return AxisController.SetMeasurementPosition (Manager, position ); }
public int SetOnOff (IMicroscope Manager, bool onOff ) { return AxisController.SetOnOff (Manager, onOff ); }
public int SetSWLimit (IMicroscope Manager, bool upper , double limit ) { return AxisController.SetSWLimit (Manager, upper , limit ); }
public int ZDriverIsMonitoring (IMicroscope Manager ) { return AxisController.ZDriverIsMonitoring (Manager); }
public int ZDriverIsLocked (IMicroscope Manager ) { return AxisController.ZDriverIsLocked (Manager); }
public int ZDriverIsBusy (IMicroscope Manager ) { return AxisController.ZDriverIsBusy (Manager); }
public int ZDriverHasMonitoring (IMicroscope Manager ) { return AxisController.ZDriverHasMonitoring (Manager); }
public int ZDriverIsLockedForClient (IMicroscope Manager ) { return AxisController.ZDriverIsLockedForClient (Manager); }
public int ZDriverIsMonitoringForClient (IMicroscope Manager ) { return AxisController.ZDriverIsMonitoringForClient (Manager); }
public int ZDriverLock (IMicroscope Manager ) { return AxisController.ZDriverLock (Manager); }
public int ZDriverStartMonitoring (IMicroscope Manager ) { return AxisController.ZDriverStartMonitoring (Manager); }
public int ZDriverStopMonitoring (IMicroscope Manager ) { return AxisController.ZDriverStopMonitoring (Manager); }
public int ZDriverUnlock (IMicroscope Manager ) { return AxisController.ZDriverUnlock (Manager); }
public int ZDriverWaitReady (IMicroscope Manager, int timeout ) { return AxisController.ZDriverWaitReady (Manager, timeout); }
public int ObjectiveAbsPosition (IMicroscope Manager ) { return ObjectiveController.ObjectiveAbsPosition (Manager ); }
public int ObjectiveMinPosition (IMicroscope Manager ) { return ObjectiveController.ObjectiveMinPosition (Manager ); }
public int ObjectiveMaxPosition (IMicroscope Manager ) { return ObjectiveController.ObjectiveMaxPosition (Manager ); }
public int ObjectiveSetPosition (IMicroscope Manager, int position, int mode, int timeout ) { return ObjectiveController.ObjectiveSetPosition (Manager, position, mode, timeout ); }
public int ObjectiveSetPosition (IMicroscope Manager, int position, int mode ) { return ObjectiveController.ObjectiveSetPosition (Manager, position, mode ); }
public int ObjectiveIsMonitoring (IMicroscope Manager ) { return ObjectiveController.ObjectiveIsMonitoring (Manager); }
public int ObjectiveIsLocked (IMicroscope Manager ) { return ObjectiveController.ObjectiveIsLocked (Manager); }
public int ObjectiveIsBusy (IMicroscope Manager ) { return ObjectiveController.ObjectiveIsBusy (Manager); }
public int ObjectiveHasMonitoring (IMicroscope Manager ) { return ObjectiveController.ObjectiveHasMonitoring (Manager); }
public int ObjectiveIsLockedForClient (IMicroscope Manager ) { return ObjectiveController.ObjectiveIsLockedForClient (Manager); }
public int ObjectiveIsMonitoringForClient (IMicroscope Manager ) { return ObjectiveController.ObjectiveIsMonitoringForClient (Manager); }
public int ObjectiveLock (IMicroscope Manager ) { return ObjectiveController.ObjectiveLock (Manager); }
public int ObjectiveStartMonitoring (IMicroscope Manager ) { return ObjectiveController.ObjectiveStartMonitoring (Manager); }
public int ObjectiveStopMonitoring (IMicroscope Manager ) { return ObjectiveController.ObjectiveStopMonitoring (Manager); }
public int ObjectiveUnlock (IMicroscope Manager ) { return ObjectiveController.ObjectiveUnlock (Manager); }
public int ObjectiveWaitReady (IMicroscope Manager, int timeout ) { return ObjectiveController.ObjectiveWaitReady (Manager, timeout); }
public int LampType (IMicroscope Manager ) { return LampController.LampType (Manager ); }
public int LampIsActive (IMicroscope Manager ) { return LampController.LampIsActive (Manager ); }
public int LampLightPathLocation (IMicroscope Manager ) { return LampController.LampLightPathLocation (Manager ); }
public int LampHasRemote (IMicroscope Manager ) { return LampController.LampHasRemote (Manager ); }
public int LampHasOnOff (IMicroscope Manager ) { return LampController.LampHasOnOff (Manager ); }
public int LampHas3200K (IMicroscope Manager ) { return LampController.LampHas3200K (Manager ); }
public int LampGet3200K (IMicroscope Manager ) { return LampController.LampGet3200K (Manager ); }
public int LampGetOnOff (IMicroscope Manager ) { return LampController.LampGetOnOff (Manager ); }
public int LampGetRemote (IMicroscope Manager ) { return LampController.LampGetRemote (Manager ); }
public int LampSetRemote (IMicroscope Manager , bool onOff ) { return LampController.LampSetRemote (Manager ,onOff ); }
public int LampSet3200K (IMicroscope Manager , bool onOff , int mode ) { return LampController.LampSet3200K (Manager ,onOff , mode ); }
public int LampSetOnOff (IMicroscope Manager , bool onOff , int mode ) { return LampController.LampSetOnOff (Manager ,onOff , mode ); }
public int LampSet3200K (IMicroscope Manager , bool onOff , int mode , int timeout ) { return LampController.LampSet3200K (Manager ,onOff , mode , timeout ); }
public int LampSetOnOff (IMicroscope Manager , bool onOff , int mode , int timeout ) { return LampController.LampSetOnOff (Manager ,onOff , mode , timeout ); }
public int LampIsOnHWLimit (IMicroscope Manager ) { return LampController.LampIsOnHWLimit (Manager ); }
public double LampGetMaxPosition (IMicroscope Manager ) { return LampController.LampGetMaxPosition (Manager ); }
public double LampGetMinPosition (IMicroscope Manager ) { return LampController.LampGetMinPosition (Manager ); }
public double LampGetPosition (IMicroscope Manager ) { return LampController.LampGetPosition (Manager ); }
public int LampGetPositionUnitCount(IMicroscope Manager ) { return LampController.LampGetPositionUnitCount(Manager ); }
public double LampGetTargetPosition (IMicroscope Manager ) { return LampController.LampGetTargetPosition (Manager ); }
public double LampMaxDeviation (IMicroscope Manager ) { return LampController.LampMaxDeviation (Manager ); }
public double LampStepWidth (IMicroscope Manager ) { return LampController.LampStepWidth (Manager ); }
public double LampTypicalDeviation (IMicroscope Manager ) { return LampController.LampTypicalDeviation (Manager ); }
public string LampGetPositionUnit (IMicroscope Manager , int index ) { return LampController.LampGetPositionUnit (Manager ,index ); }
public int LampSetPosition (IMicroscope Manager , double position , int mode ) { return LampController.LampSetPosition (Manager ,position , mode ); }
public int LampSetPosition (IMicroscope Manager , double position , int mode , int timeout ) { return LampController.LampSetPosition (Manager ,position , mode , timeout ); }
public int LampIsMonitoring (IMicroscope Manager ) { return LampController.LampIsMonitoring (Manager); }
public int LampIsLocked (IMicroscope Manager ) { return LampController.LampIsLocked (Manager); }
public int LampIsBusy (IMicroscope Manager ) { return LampController.LampIsBusy (Manager); }
public int LampHasMonitoring (IMicroscope Manager ) { return LampController.LampHasMonitoring (Manager); }
public int LampIsLockedForClient (IMicroscope Manager ) { return LampController.LampIsLockedForClient (Manager); }
public int LampIsMonitoringForClient (IMicroscope Manager ) { return LampController.LampIsMonitoringForClient(Manager); }
public int LampLock (IMicroscope Manager ) { return LampController.LampLock (Manager); }
public int LampStartMonitoring (IMicroscope Manager ) { return LampController.LampStartMonitoring (Manager); }
public int LampStopMonitoring (IMicroscope Manager ) { return LampController.LampStopMonitoring (Manager); }
public int LampUnlock (IMicroscope Manager ) { return LampController.LampUnlock (Manager); }
public int LampWaitReady (IMicroscope Manager, int timeout ) { return LampController.LampWaitReady (Manager, timeout); }
public int SetLampILTLSwitch (IMicroscope Manager, bool enable, int mode ){ return LampController.SetLampILTLSwitch(Manager, enable, mode); }
public int GetLampILTLSwitch (IMicroscope Manager ){ return LampController.GetLampILTLSwitch(Manager); }
public double ApblGetMaxMoveSpeed (IMicroscope Manager ) { return ApblController.ApblGetMaxMoveSpeed (Manager ); }
public double ApblGetMinMoveSpeed (IMicroscope Manager ) { return ApblController.ApblGetMinMoveSpeed (Manager ); }
public int ApblGetSpeedUnitCount (IMicroscope Manager ) { return ApblController.ApblGetSpeedUnitCount (Manager ); }
public int ApblStop (IMicroscope Manager ) { return ApblController.ApblStop (Manager ); }
public int ApblIsOnHWLimit (IMicroscope Manager ) { return ApblController.ApblIsOnHWLimit (Manager ); }
public double ApblGetMaxPosition (IMicroscope Manager ) { return ApblController.ApblGetMaxPosition (Manager ); }
public double ApblGetMinPosition (IMicroscope Manager ) { return ApblController.ApblGetMinPosition (Manager ); }
public double ApblGetPosition (IMicroscope Manager ) { return ApblController.ApblGetPosition (Manager ); }
public int ApblGetPositionUnitCount(IMicroscope Manager ) { return ApblController.ApblGetPositionUnitCount(Manager ); }
public double ApblGetTargetPosition (IMicroscope Manager ) { return ApblController.ApblGetTargetPosition (Manager ); }
public double ApblMaxDeviation (IMicroscope Manager ) { return ApblController.ApblMaxDeviation (Manager ); }
public double ApblStepWidth (IMicroscope Manager ) { return ApblController.ApblStepWidth (Manager ); }
public double ApblTypicalDeviation (IMicroscope Manager ) { return ApblController.ApblTypicalDeviation (Manager ); }
public string ApblGetSpeedUnit (IMicroscope Manager , int index ) { return ApblController.ApblGetSpeedUnit (Manager , index ); }
public string ApblGetPositionUnit (IMicroscope Manager , int index ) { return ApblController.ApblGetPositionUnit (Manager , index ); }
public int ApblMove (IMicroscope Manager , double moveSpeed ) { return ApblController.ApblMove (Manager , moveSpeed ); }
public double ApblAlignPosition (IMicroscope Manager , double position ) { return ApblController.ApblAlignPosition (Manager , position ); }
public int ApblSetPosition (IMicroscope Manager , double position , int mode , int timeout ) { return ApblController.ApblSetPosition (Manager , position , mode , timeout ); }
public int ApblSetPosition (IMicroscope Manager , double position , int mode ) { return ApblController.ApblSetPosition (Manager , position , mode ); }
public int ApblIsMonitoring (IMicroscope Manager ) { return ApblController.ApblIsMonitoring (Manager); }
public int ApblIsLocked (IMicroscope Manager ) { return ApblController.ApblIsLocked (Manager); }
public int ApblIsBusy (IMicroscope Manager ) { return ApblController.ApblIsBusy (Manager); }
public int ApblHasMonitoring (IMicroscope Manager ) { return ApblController.ApblHasMonitoring (Manager); }
public int ApblIsLockedForClient (IMicroscope Manager ) { return ApblController.ApblIsLockedForClient (Manager); }
public int ApblIsMonitoringForClient (IMicroscope Manager ) { return ApblController.ApblIsMonitoringForClient(Manager); }
public int ApblLock (IMicroscope Manager ) { return ApblController.ApblLock (Manager); }
public int ApblStartMonitoring (IMicroscope Manager ) { return ApblController.ApblStartMonitoring (Manager); }
public int ApblStopMonitoring (IMicroscope Manager ) { return ApblController.ApblStopMonitoring (Manager); }
public int ApblUnlock (IMicroscope Manager ) { return ApblController.ApblUnlock (Manager); }
public int ApblWaitReady (IMicroscope Manager, int timeout ) { return ApblController.ApblWaitReady (Manager, timeout); }
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using ZEISS.MTB.Api;
using YQLInterfaces;
using YQLUtils;
namespace ZeissMicroscopeAPI
{
public class ZeissMicReader: YQLInterface, IMicroscope
{
private ZeissMicReader()
{
initialization("ZeissMicReader");
}
~ZeissMicReader()
{
deinitialize();
}
public void Dispose()
{
deinitialize();
}
public override void initValue()
{
initManager();
}
public override void deleValue()
{
deleManager();
}
public IMicroscope Instance() { return GetInstance(); }
private static IMicroscope uniqueInstance;
// 定义一个标识确保线程同步
private static readonly object locker = new object();
/// <summary>
/// 定义公有方法提供一个全局访问点,同时你也可以定义公有属性来提供全局访问点
/// </summary>
/// <returns></returns>
public static IMicroscope GetInstance()
{
// 当第一个线程运行到这里时,此时会对locker对象 "加锁",
// 当第二个线程运行该方法时,首先检测到locker对象为"加锁"状态,该线程就会挂起等待第一个线程解锁
// lock语句运行完之后(即线程运行完之后)会对该对象"解锁"
// 双重锁定只需要一句判断就可以了
if (uniqueInstance == null)
{
lock (locker)
{
// 如果类的实例不存在则创建,否则直接返回
if (uniqueInstance == null)
{
uniqueInstance = new ZeissMicReader();
}
}
}
return uniqueInstance;
}
private IMTBDevice Microscope = null;
private MTBConnection MicConnection = null;
private string MicID = null;
private IMTBRoot MicManager = null;
private Dictionary<string, object> MicModules = null;
private string MicType = null;
private string MicVersion = null;
private bool isSucceed = false;
private bool isLogin = false;
private bool isInit = false;
private string MicAxisUnit = null;
private string MicUnit = null;
private string MicSpeedUnit = null;
private string MicLightUnit = null;
private int MicDeviceID = 0 ;
public IMTBDevice ZeissMicroscope { get { return Microscope; } }
public bool IsLogin { get { return isLogin ; } }
public bool IsLogout { get { return !isLogin; } }
public bool IsInit { get { return isLogin && isInit; } }
public bool hasMicroscope { get { return Microscope != null ; } }
public bool hasMTBConnection { get { return MicConnection != null ; } } // 连接接口
public bool hasMTBID { get { return MicID != null && MicID.Length > 0 ; } } // 模块序号
public bool hasManager { get { return MicManager != null ; } } // 控制模块
public bool hasMTBModules { get { return MicModules != null ; } } // 全部模块
public int Accessibility { get { return hasMicroscope ? (int)Microscope.Accessibility : (int)MTBAccessibility.None; } }
public bool IsValid { get { return hasManager && hasMTBConnection && hasMTBID && hasMTBModules ; } }
public bool IsAvailable { get { return IsValid && hasMTBID && IsLogin && IsInit; } }
public bool IsOpen { get { return IsValid && hasMTBID && IsLogin && IsInit; } }
public string MicroscopeType { get { return MicType != null ? MicType : Settings.DEFAULT_STRING; } } // 蔡司显微镜型号
public string MicroscopeVersion { get { return MicVersion != null ? MicVersion : Settings.DEFAULT_STRING; } } // 蔡司显微镜版本
public string MicroscopeID { get { return MicID != null && MicID.Length > 0 ? MicID : Settings.DEFAULT_STRING; } } // 蔡司显微镜序号
public bool IsSucceed { get { return isSucceed; } } // 当前加载状态
public int DeviceID { get { return MicDeviceID ; } set { MicDeviceID = value; } }
public string MTBAxisUnit { get { return MicAxisUnit != null ? MicAxisUnit : Settings.DEFAULT_STRING; } set { MicAxisUnit = value; } } // 显微镜轴移动单位
public string MTBUnit { get { return MicUnit != null ? MicUnit : Settings.DEFAULT_STRING; } set { MicUnit = value; } } // 显微镜默认单位
public string MTBSpeedUnit { get { return MicSpeedUnit != null ? MicSpeedUnit: Settings.DEFAULT_STRING; } set { MicSpeedUnit = value; } } // 显微镜速度单位
public string MTBLightUnit { get { return MicLightUnit != null ? MicLightUnit: Settings.DEFAULT_STRING; } set { MicLightUnit = value; } } // 显微镜光源单位
public int Open ( ) {
int isWarning = Settings.RECODE_FAILURE;
try
{
initManager ();
initMicroscope ();
initMTBModules ();
var deviceCount = getDeviceCount();
Console.WriteLine($"deviceCount:{deviceCount} IsLogin: {IsLogin} IsInit: {IsInit}");
isWarning = isInit && deviceCount > 0 ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return isWarning;
}
public int Close ( ) {
int isWarning = Settings.RECODE_FAILURE;
try
{
Logout();
isWarning = IsLogout ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return isWarning;
}
public int ReOpen ( ) {
Close();
return Open();
}
public void initMTBConnection ()
{
try
{
if(!hasMTBConnection)
{
MicConnection = new MTBConnection();
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); MicConnection = null; }
}
public int getDeviceCount()
{
int DeviceCount = 0;
try
{
if (hasManager)
DeviceCount = MicManager.GetDeviceCount();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return DeviceCount;
}
public void initMTBID ()
{
try
{
if (!hasMTBConnection)
initMTBConnection();
Login();
}
catch (Exception E) { YQLUtil.Print_Exception(E); MicID = null; }
}
public int Init () {
try
{
if(!IsInit)
{
if (!IsLogin)
Login();
if (IsLogin && hasMTBConnection && hasMTBID)
{
MicConnection.Init(MicID);
isInit = MicConnection.ID.Length > 0;
}
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); isInit = false; }
return hasMTBID ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
public int Login () {
try
{
if(!IsLogin)
{
if (!hasMTBConnection)
initMTBConnection();
if (hasMTBConnection)
{
MicID = "";
MicConnection.Login(Settings.MTBMicroscopeLanguage, out MicID);
isLogin = MicConnection.ID.Length > 0;
if (!isLogin)
MicID = null;
else
MicID = MicConnection.ID;
}
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); isLogin = false; }
return hasMTBID ? Settings.RECODE_SUCCEED : Settings.RECODE_FAILURE;
}
public int Logout () {
try
{
if(isLogin)
{
if(hasMTBConnection && hasMTBID)
{
MicConnection.Logout(MicID);
}
isLogin = false;
MicID = null;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
isLogin = false;
return hasMTBID ? Settings.RECODE_FAILURE : Settings.RECODE_SUCCEED;
}
public void initManager ( ) {
try
{
if(!hasManager)
{
if (!isLogin)
Login();
if (!IsInit)
Init();
if(isInit && hasMTBID && hasMTBConnection)
{
MicManager = MicConnection.GetRoot(MicID);
MicVersion = MicConnection.MTBVersion;
MicType = MicConnection.MTBBuildVersion;
}
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); MicManager = null; }
}
public void deleManager ( ) {
try
{
if (hasManager)
{
MicManager = null;
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); MicManager = null; }
GC.Collect();
}
public void initMicroscope() {
try
{
if(!hasMicroscope)
{
if (!hasManager)
initManager();
if(hasManager)
Microscope = MicManager.GetDevice(MicDeviceID);
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
}
public void deleMicroscope() {
try
{
Microscope = null;
GC.Collect();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
}
public void initMTBModules ( ) {
try
{
if (!hasMTBModules)
MicModules = new Dictionary<string, object>();
if(hasMicroscope)
{
var componentCount = Microscope.GetComponentCount();
var buffer = "";
for (int index = 0; index < componentCount; index++)
{
IMTBComponent component = Microscope.GetComponent(index);
MicModules[component.ID] = component;
buffer += $"{component.ID}\t";
}
Console.WriteLine($"{buffer}\r\n");
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); MicModules = null; }
}
public void deleMTBModules ( ) {
try
{
if(hasMTBModules)
{
MicModules.Clear();
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
MicModules = null;
GC.Collect();
}
public string[] ComponentIDs ( ) {
var result = Settings.DEFAULT_STRING_ARRAY;
try
{
if (hasMTBModules)
result = MicModules.Keys.ToArray();
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public IMTBComponent Handler (string ComponentID )
{
IMTBComponent result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(ComponentID))
{
result = (IMTBComponent)MicModules[ComponentID];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
public IMTBFocus FocusHandler {
get{
IMTBFocus result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBFocus))
{
result = (IMTBFocus)MicModules[Settings.MTBFocus];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBAxis AxisHandler
{
get
{
IMTBAxis result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBFocus))
{
result = (IMTBAxis)MicModules[Settings.MTBFocus];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBMove MoveHandler
{
get
{
IMTBMove result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBFocus))
{
result = (IMTBMove)MicModules[Settings.MTBFocus];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBContinualSpeed SpeedHandler
{
get
{
IMTBContinualSpeed result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBFocus))
{
result = (IMTBContinualSpeed)MicModules[Settings.MTBFocus];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBChanger RLTLHandler {
get{
IMTBChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBRLTLSwitch))
{
result = (IMTBChanger)MicModules[Settings.MTBRLTLSwitch];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBObjectiveChanger ObjectiveHandler {
get{
IMTBObjectiveChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBObjectiveChanger))
{
result = (IMTBObjectiveChanger)MicModules[Settings.MTBObjectiveChanger];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBLamp HalogenLamp {
get{
IMTBLamp result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLHalogenLamp))
{
result = (IMTBLamp)MicModules[Settings.MTBTLHalogenLamp];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBLamp LampHandler {
get{
IMTBLamp result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLHalogenLamp))
{
result = (IMTBLamp)MicModules[Settings.MTBTLHalogenLamp];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBServo ApblHandler {
get{
IMTBServo result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLFieldStop))
{
result = (IMTBServo)MicModules[Settings.MTBTLFieldStop];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
} }
public IMTBServo LfblHandler
{
get
{
IMTBServo result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLFieldStop))
{
result = (IMTBServo)MicModules[Settings.MTBTLFieldStop];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBContrastChangerProperties MTBCondenserProperties {
get
{
IMTBContrastChangerProperties result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBCondenserProperties))
{
result = (IMTBContrastChangerProperties)MicModules[Settings.MTBCondenserProperties];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBEyepiece MTBEyePiece {
get
{
IMTBEyepiece result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBEyePiece))
{
result = (IMTBEyepiece)MicModules[Settings.MTBEyePiece];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBFocus MTBFocus {
get
{
IMTBFocus result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBFocus))
{
result = (IMTBFocus)MicModules[Settings.MTBFocus];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBMicroscopeManager MTBMicroscopeManager {
get
{
IMTBMicroscopeManager result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBMicroscopeManager))
{
result = (IMTBMicroscopeManager)MicModules[Settings.MTBMicroscopeManager];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBObject MTBObject {
get
{
IMTBObject result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBObject))
{
result = (IMTBObject)MicModules[Settings.MTBObject];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBObjectiveChanger MTBObjectiveChanger {
get
{
IMTBObjectiveChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBObjectiveChanger))
{
result = (IMTBObjectiveChanger)MicModules[Settings.MTBObjectiveChanger];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBChanger MTBRLTLSwitch {
get
{
IMTBChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBRLTLSwitch))
{
result = (IMTBChanger)MicModules[Settings.MTBRLTLSwitch];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBServo MTBTLFieldStop {
get
{
IMTBServo result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLFieldStop))
{
result = (IMTBServo)MicModules[Settings.MTBTLFieldStop];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBFilterChanger MTBTLFilterChanger1 {
get
{
IMTBFilterChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLFilterChanger1))
{
result = (IMTBFilterChanger)MicModules[Settings.MTBTLFilterChanger1];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBFilterChanger MTBTLFilterChanger2 {
get
{
IMTBFilterChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLFilterChanger2))
{
result = (IMTBFilterChanger)MicModules[Settings.MTBTLFilterChanger2];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBLamp MTBTLHalogenLamp {
get
{
IMTBLamp result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLHalogenLamp))
{
result = (IMTBLamp)MicModules[Settings.MTBTLHalogenLamp];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
public IMTBFilterChanger MTBTLVirtualFilterChanger
{
get
{
IMTBFilterChanger result = null;
try
{
if (hasMTBModules && MicModules.ContainsKey(Settings.MTBTLVirtualFilterChanger))
{
result = (IMTBFilterChanger)MicModules[Settings.MTBTLVirtualFilterChanger];
}
}
catch (Exception E) { YQLUtil.Print_Exception(E); }
return result;
}
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
namespace YQLUtils
{
public class AppTimeLoop
{
public static void ProcessEvents(int interVal)
{
int waittime = 2;
DateTime startTime = DateTime.Now;
while(true)
{
DateTime endTime = DateTime.Now;
if ((int)(endTime - startTime).TotalMilliseconds >= interVal)
break;
Thread.Sleep(waittime);
}
}
public static void delay(int interVal)
{
if (interVal == 0)
return;
Thread.Sleep(Math.Abs(interVal));
}
public static void msleep(int interVal)
{
if (interVal == 0)
return;
Thread.Sleep(Math.Abs(interVal));
}
public static void sleep(int interVal)
{
if (interVal == 0)
return;
Thread.Sleep(Math.Abs(interVal * 1000));
}
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace YQLUtils
{
public class Settings
{
public static int RECODE_FAILURE = 0 ;
public static int RECODE_SUCCEED = 1 ;
public static int RECODE_WARNING = 2 ;
public static int RECODE_CHANGED = 3 ;
public static int RECODE_JUMPING = 4 ;
public static int CODE_SUCCESS = 200 ;
public static int CODE_FAILURE = 500 ;
public static int CODE_WARNING = 201 ;
public static int AXIS_STATUS_REGISTER_0 = 0 ;
public static int AXIS_STATUS_REGISTER_1 = 1 ;
public static int AXIS_STATUS_REGISTER_2 = 2 ;
public static int AXIS_STATUS_REGISTER_3 = 3 ;
public static int AXIS_STATUS_REGISTER_4 = 4 ;
public static int READONLY_AXIS_STATUS_REGISTER_0 = 0 ;
public static int READONLY_AXIS_STATUS_REGISTER_1 = 1 ;
public static int READONLY_AXIS_STATUS_REGISTER_2 = 2 ;
public static int READONLY_AXIS_STATUS_REGISTER_3 = 3 ;
public static int READONLY_AXIS_STATUS_REGISTER_4 = 4 ;
public static int READONLY_AXIS_STATUS_REGISTER_5 = 5 ;
public static byte[] START_DECODE = { 0x16, 0x54, 0x0D };
public static byte[] STOP_DECODE = { 0x16, 0x55, 0x0D };
public static byte[] CONSOLE_MODE = { 0x16, 0x4D, 0x0D, 0x30, 0x34, 0x30, 0x31, 0x44, 0x30, 0x35, 0x2E };
public static byte[] GET_VERSION = { 0x16, 0x4D, 0x0D, 0x25, 0x25, 0x25, 0x56, 0x45, 0x52, 0x2E };
public static byte[] DECODE_TAIL = { 0x0D, 0x0A};
public static byte[] DECODE_FRAME_TAIL = { 0x06 };
public const byte DEFAULT_BYTE = default(byte );
public const string DEFAULT_STRING = default(string );
public const bool DEFAULT_BOOL = default(bool );
public const short DEFAULT_INT16 = default(short );
public const ushort DEFAULT_UINT16 = default(ushort );
public const int DEFAULT_INT32 = default(int );
public const uint DEFAULT_UINT32 = default(uint );
public const long DEFAULT_INT64 = default(long );
public const ulong DEFAULT_UINT64 = default(ulong );
public const float DEFAULT_FLOAT = default(float );
public const double DEFAULT_DOUBLE = default(double );
public const byte DEFAULT_BYTE_ARRAY = default(byte );
public const string[] DEFAULT_STRING_ARRAY = default(string []);
public const bool [] DEFAULT_BOOL_ARRAY = default(bool []);
public const short [] DEFAULT_INT16_ARRAY = default(short []);
public const ushort[] DEFAULT_UINT16_ARRAY = default(ushort []);
public const int [] DEFAULT_INT32_ARRAY = default(int []);
public const uint [] DEFAULT_UINT32_ARRAY = default(uint []);
public const long [] DEFAULT_INT64_ARRAY = default(long []);
public const ulong [] DEFAULT_UINT64_ARRAY = default(ulong []);
public const float [] DEFAULT_FLOAT_ARRAY = default(float []);
public const double[] DEFAULT_DOUBLE_ARRAY = default(double []);
public const string MTBCondenserProperties = "MTBCondenserProperties" ;
public const string MTBEyePiece = "MTBEyePiece" ;
public const string MTBFocus = "MTBFocus" ;
public const string MTBMicroscopeManager = "MTBMicroscopeManager" ;
public const string MTBObject = "MTBObject" ;
public const string MTBObjectiveChanger = "MTBObjectiveChanger" ;
public const string MTBRLTLSwitch = "MTBRLTLSwitch" ;
public const string MTBTLFieldStop = "MTBTLFieldStop" ;
public const string MTBTLFilterChanger1 = "MTBTLFilterChanger1" ;
public const string MTBTLFilterChanger2 = "MTBTLFilterChanger2" ;
public const string MTBTLHalogenLamp = "MTBTLHalogenLamp" ;
public const string MTBTLVirtualFilterChanger = "MTBTLVirtualFilterChanger" ;
public const string MTBMicroscopeLanguage = "en";
}
}
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Diagnostics;
namespace YQLUtils
{
public class YQLUtil
{
public static string get_Exception(Exception E)
{
StringBuilder buffer = new StringBuilder();
UTF8Encoding utf8 = new UTF8Encoding();
if (E != null)
{
var stackTrace = new StackTrace(E, true);
foreach (var frame in stackTrace.GetFrames())
buffer.Append($"FileName: {frame.GetFileName()} MethodName: {frame.GetMethod().Name} Line: {frame.GetFileLineNumber()} Message:{E.ToString()}\n\r");
}
if (buffer.Length <= 0)
buffer.Append("\n\r");
var data = utf8.GetBytes(buffer.ToString());
return utf8.GetString(data);
}
public static void Print_Exception(Exception E)
{
Console.Write($"{YQLUtil.get_Exception(E)}");
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{A1F466A5-74F6-4942-861D-1C1ADD822D25}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ZeissMicroscopeAPI</RootNamespace>
<AssemblyName>ZeissMicroscopeAPI</AssemblyName>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="MTBApi, Version=3.5.10.0, Culture=neutral, PublicKeyToken=39820acb30580488, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>.\MTBApi.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Class1.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="YQLControllers\ApblController.cs" />
<Compile Include="YQLControllers\AxisController.cs" />
<Compile Include="YQLControllers\LampController.cs" />
<Compile Include="YQLControllers\ObjectiveController.cs" />
<Compile Include="YQLManagers\MicManager.cs" />
<Compile Include="YQLInterfaces\IMicroscope.cs" />
<Compile Include="YQLInterfaces\IYQLContext.cs" />
<Compile Include="YQLInterfaces\IMicController.cs" />
<Compile Include="YQLInterfaces\YQLInterface.cs" />
<Compile Include="YQLManagers\ZeissMicReader.cs" />
<Compile Include="YQLUtils\AppTimeLoop.cs" />
<Compile Include="YQLUtils\Settings.cs" />
<Compile Include="YQLUtils\YQLUtil.cs" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<MTB2004Export Version="3.5.10.0">
<MTBConfiguration Name="AxioImageZ2" MyChildId="0">
<Devices>
<Device Class="MTBCtrlDeviceAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2.Stand" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="25" MyChildId="1">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceAxioImagerZ2M2</SimulationClass>
<TechReport>ReportAxioImager</TechReport>
<WriteConfig>WriteConfigAxioImagerZ2M2</WriteConfig>
<LightPath>AxioImager</LightPath>
<Components>
<Component Class="MTBCtrlObject,MTBKernel" Name="Object" MTBId="MTBObject" CANId="0x00" />
<Component Class="MTBCtrlRLTLSwitchAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.RLTLSwitchMot" MTBId="MTBRLTLSwitch" CANId="0x1F">
<NumberOfPositions>2</NumberOfPositions>
<Motorization>2</Motorization>
<WriteConfig>WriteConfigAxioImagerZ2M2Lamps</WriteConfig>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<CmdSetTimeout>2000</CmdSetTimeout>
<ChangerElements>
<Element Class="MTBCtrlRLTLSwitchState,MTBKernel" Name="RLTLSwitch.TL" Position="0">
<State>TransmittedLight</State>
</Element>
<Element Class="MTBCtrlRLTLSwitchState,MTBKernel" Name="RLTLSwitch.RL" Position="1">
<State>ReflectedLight</State>
</Element>
</ChangerElements>
</Component>
<Component Class="MTBCtrlMicroscopeManagerAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.MicroscopeManager" MTBId="MTBMicroscopeManager" CANId="0x00">
<LightManagerModes>Objective, Classic</LightManagerModes>
<LightManagerModes Version="00.807">Objective, Classic</LightManagerModes>
</Component>
<Component Class="MTBCtrlObjectiveChangerAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.Nosepiece_7xmot" MTBId="MTBObjectiveChanger" CANId="0x02" MyChildId="10001">
<NumberOfPositions>7</NumberOfPositions>
<Motorization>2</Motorization>
<WriteConfig>WriteConfigAxioImagerZ2M2Nosepiece</WriteConfig>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.4</TypMovementTime>
</Simulation>
<CmdSetTimeout>30000</CmdSetTimeout>
<HasOilStop>true</HasOilStop>
<ChangerElements>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="100" Position="0" />
<Element Class="MTBCtrlObjective,MTBKernel" Name="Objective.420340-9900-000" DisplayName="EC Plan-Neofluar 10x/0.30 M27" MyChildId="101" Position="1">
<Magnification>10</Magnification>
<Aperture>0.30</Aperture>
<Immersion>Air,</Immersion>
<Contrast>BrightField,DarkField,RLBrightField,RLPol,TLPol,DIC1,</Contrast>
<Features>Pol,</Features>
<WorkingDistance>5500</WorkingDistance>
<OrderNo>420340-9900-000</OrderNo>
<ACRModuleType>1</ACRModuleType>
<ACRVersion>1</ACRVersion>
<ACRChip>1</ACRChip>
<Category>EC PlnN</Category>
<LongName>EC Plan-Neofluar 10x/0.30 M27</LongName>
<CoverSlipMin>0.17</CoverSlipMin>
<CoverSlipMax />
<TransmLow>364</TransmLow>
<TransmHigh>2000</TransmHigh>
<TLDICPrism>00</TLDICPrism>
</Element>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="102" Position="2" />
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="103" Position="3" />
<Element Class="MTBCtrlObjective,MTBKernel" Name="Objective.420490-9900-000" DisplayName="EC Plan-Neofluar 100x/1.30 Oil M27" MyChildId="104" Position="4">
<Magnification>100</Magnification>
<Aperture>1.30</Aperture>
<Immersion>Oil,</Immersion>
<Contrast>BrightField,DarkField,RLBrightField,RLPol,TLPol,DIC2,</Contrast>
<Features>Pol,</Features>
<WorkingDistance>200</WorkingDistance>
<OrderNo>420490-9900-000</OrderNo>
<ACRModuleType>1</ACRModuleType>
<ACRVersion>1</ACRVersion>
<ACRChip>1</ACRChip>
<Category>EC PlnN</Category>
<LongName>EC Plan-Neofluar 100x/1.30 Oil M27</LongName>
<CoverSlipMin>0.17</CoverSlipMin>
<CoverSlipMax />
<TransmLow>355</TransmLow>
<TransmHigh>1050</TransmHigh>
</Element>
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="105" Position="5" />
<Element Class="MTBCtrlChangerElement,MTBKernel" Name="Objective.none" MyChildId="106" Position="6" />
</ChangerElements>
</Component>
<Component Active="false" Name="ImagerZ2.ReflectorChanger_none" MTBId="MTBNone" CANId="0x01" MyChildId="10002" />
<Component Class="MTBCtrlFocusAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2.Focus_mot" MTBId="MTBFocus" CANId="0x0F" MyChildId="10000">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxAxis</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="-26000000" Max="26000000" MaxDeviation="0" TypDeviation="0" StepWidth="10" />
<ScaledRange Unit="µm" Min="-26000" Max="26000" />
</PositionScales>
<PositionSpeedScales>
<ADRange Min="62" Max="6000000" />
<ScaledRange Unit="µm/s" Min="0.062" Max="6000.0" />
<ScaledRange Unit="%" Min="0.0" Max="100.0" />
</PositionSpeedScales>
<PositionAccelerationScales>
<ADRange Min="1" Max="10000000" />
<ScaledRange Unit="µm/s²" Min="0" Max="10000" />
<ScaledRange Unit="%" Min="0.0" Max="100.0" />
</PositionAccelerationScales>
<SpeedScales>
<ADRange Min="62" Max="6000000" />
<ScaledRange Unit="µm/s" Min="0.062" Max="6000" />
</SpeedScales>
<CmdSetTimeout>30000</CmdSetTimeout>
<TriggerModes>TriggerOff, TriggerIn, TriggerOutOnListPosition, TriggerOutOnStep</TriggerModes>
</Component>
<Component Active="false" Name="ImagerZ1M1.TubelensChanger_none" MTBId="MTBNone" CANId="0x12" MyChildId="10010" />
<Component Active="false" Name="ImagerZ2.ReflectedLight" MTBId="MTBRLLampPort" CANId="0x08" MyChildId="10020">
<Slave ChildId="10026">ImagerZ2M2.RL_HalogenLamp</Slave>
<Slave ChildId="10021">ImagerZ1M1.RL_Fieldstop_none</Slave>
<Slave ChildId="10025" OwnPropDevice="true">ApoTome.none</Slave>
<Slave ChildId="10022">ImagerZ1M1.RL_Aperture_none</Slave>
<Slave ChildId="10023">ImagerZ1M1.RL_Shutter_none</Slave>
<Slave ChildId="10024">ImagerZ1M1.RL_Filterwheel_none</Slave>
<Slave ChildId="10028">ImagerZ1M1.RL_ExtFilterWheel_none</Slave>
<Slave ChildId="10027">ImagerZ1M1.RL_DICTurret_none</Slave>
</Component>
<Component Class="MTBCtrlRLHalogenLampAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.RL_HalogenLamp" MTBId="MTBRLHalogenLamp" CANId="0x29" MyChildId="10026">
<LightPathLocation>ReflectedLight</LightPathLocation>
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxLamp</SimulationClass>
<Simulation>
<TypMovementTime>0.002</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="1024" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<CmdSetTimeout>2000</CmdSetTimeout>
<LampType>1</LampType>
</Component>
<Component Active="false" Name="ImagerZ1M1.RL_Fieldstop_none" MTBId="MTBNone" CANId="0x08" MyChildId="10021" />
<Component Active="false" Name="ImagerZ1M1.RL_Aperture_none" MTBId="MTBNone" CANId="0x09" MyChildId="10022" />
<Component Active="false" Name="ImagerZ1M1.RL_Shutter_none" MTBId="MTBNone" CANId="0x1D" MyChildId="10023" />
<Component Active="false" Name="ImagerZ1M1.RL_Filterwheel_none" MTBId="MTBNone" CANId="0x04" MyChildId="10024" />
<Component Active="false" Name="ImagerZ1M1.RL_ExtFilterWheel_none" MTBId="MTBNone" CANId="0x00" MyChildId="10028" />
<Component Active="false" Name="ImagerZ1M1.RL_DICTurret_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10027" />
<Component Active="false" Name="ImagerZ1M1.Tube_man" MTBId="MTBTube" CANId="0x00" MyChildId="10007">
<WriteConfig>WriteConfigAxioImagerTube</WriteConfig>
<Slave ChildId="10160">Eyepiece.10x_25</Slave>
</Component>
<Component Class="MTBCtrlEyepiece,MTBKernel" Name="Eyepiece.10x_25" MTBId="MTBEyePiece" CANId="0x00" MyChildId="10160">
<Magnification>10</Magnification>
<FieldOfView>25</FieldOfView>
</Component>
<Component Active="false" Name="ImagerZ2.TransmittedLight" MTBId="MTBTLLampPort" CANId="0x08" MyChildId="10040">
<Slave ChildId="10046">ImagerZ2M2.TL_HalogenLamp</Slave>
<Slave ChildId="10041">ImagerZ1M1.TL_Fieldstop_mot</Slave>
<Slave ChildId="10042">ImagerZ1M1.TL_Shutter_none</Slave>
<Slave ChildId="10043">ImagerZ1M1.TL_Filterwheel_none</Slave>
<Slave ChildId="10045">ImagerZ2M2.Condenser_none</Slave>
<Slave ChildId="10047">ImagerZ2.TL_DICTurret_none</Slave>
</Component>
<Component Class="MTBCtrlTLHalogenLampAxioImagerZ2,MTBKernelAxioImagerZ2" Name="ImagerZ2M2.TL_HalogenLamp" MTBId="MTBTLHalogenLamp" CANId="0x29" MyChildId="10046">
<LightPathLocation>TransmittedLight</LightPathLocation>
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxLamp</SimulationClass>
<Simulation>
<TypMovementTime>0.002</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="1024" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<CmdSetTimeout>2000</CmdSetTimeout>
<LampType>1</LampType>
</Component>
<Component Class="MTBCtrlTLFieldStopPhoenix,MTBKernelPhoenix" Name="ImagerZ1M1.TL_Fieldstop_mot" MTBId="MTBTLFieldStop" CANId="0x0E" MyChildId="10041">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxContMove</SimulationClass>
<Simulation>
<TypMovementTime>0.01</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="415" MaxDeviation="2" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>5000</CmdSetTimeout>
</Component>
<Component Active="false" Name="ImagerZ1M1.TL_Shutter_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10042" />
<Component Active="false" Name="ImagerZ1M1.TL_Filterwheel_none" MTBId="MTBNone" CANId="0x0A" MyChildId="10043" />
<Component Active="false" Name="ImagerZ2M2.Condenser_none" MTBId="MTBNone" CANId="0x22" MyChildId="10045" />
<Component Active="false" Name="ImagerZ2.TL_DICTurret_none" MTBId="MTBNone" CANId="0x1E" MyChildId="10047" />
<Component Class="MTBCtrlInfinitySpacePortChangerPhoenix,MTBKernelPhoenix" Name="ImagerZ1M1.InfinitySpaceChanger_2xman" MTBId="MTBInfinitySpacePortChanger" CANId="0x14" MyChildId="10008">
<NumberOfPositions>2</NumberOfPositions>
<Motorization>0</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimPhxChanger</SimulationClass>
<Simulation>
<TypMovementTime>0.7</TypMovementTime>
</Simulation>
<CmdSetTimeout>2000</CmdSetTimeout>
<ChangerElements>
<Element Class="MTBCtrlBeamSplitter,MTBKernel" Name="Imager.InfinitySpaceChangerBeamSplitter 100/0" Position="0">
<Successor1>MTBReflectorChanger</Successor1>
<Successor2>MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport</Successor2>
<SplittingRatioSuccessor1>1</SplittingRatioSuccessor1>
</Element>
<Element Class="MTBCtrlBeamSplitter,MTBKernel" Name="Imager.InfinitySpaceChangerBeamSplitter 50/50" Position="1" MyChildId="10181">
<Successor1>MTBReflectorChanger</Successor1>
<Successor2>MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport</Successor2>
<SplittingRatioSuccessor1>0.5</SplittingRatioSuccessor1>
</Element>
</ChangerElements>
<Slave ChildId="10180">CameraAdapterAurox.1x</Slave>
</Component>
<Component Class="MTBCtrlCameraAdapter,MTBKernel" Name="CameraAdapterAurox.1x" MTBId="MTBCameraAdapter_MTBInfinitySpacePortChanger_Cameraport" CANId="0x00" MyChildId="10180">
<Magnification>1</Magnification>
<LightPathLocation>MTBInfinitySpacePortChanger,Cameraport</LightPathLocation>
<Slave ChildId="-1">Camera.none</Slave>
</Component>
<Component Active="false" Name="Camera.none" MTBId="MTBCamera" CANId="0x00" MyChildId="-1" />
<Component Active="false" Name="Incubation.Base" MTBId="MTBNone" CANId="0x08" MyChildId="10012">
<Slave ChildId="14000" OwnPropDevice="true">Incubation.AtmoTemp_none</Slave>
</Component>
</Components>
<Slave ChildId="800">MotKorr.Objective1Control_Device</Slave>
<Slave ChildId="810">MotKorr.Objective2Control_Device</Slave>
<Slave ChildId="820">MotKorr.Objective3Control_Device</Slave>
<Slave ChildId="830">MotKorr.Objective4Control_Device</Slave>
<Slave ChildId="840">MotKorr.Objective5Control_Device</Slave>
<Slave ChildId="850">MotKorr.Objective6Control_Device</Slave>
<Slave ChildId="30020" OwnPropDevice="true">NoPiezofocus</Slave>
<Slave ChildId="10005" OwnPropDevice="true">Stage.none</Slave>
<Slave ChildId="9200" OwnPropDevice="true">TIRF.none</Slave>
<Slave ChildId="10011" OwnPropDevice="true">Safety_Device.ImagerZ2None</Slave>
<Slave ChildId="9914" OwnPropDevice="true">Linkam.none</Slave>
<Slave ChildId="10013" OwnPropDevice="true">REOEM.none</Slave>
<Slave ChildId="30050" OwnPropDevice="true">NoFilterWheelsShutters</Slave>
<Slave ChildId="30070" OwnPropDevice="true">Shutters.Uniblitz.No</Slave>
<Slave ChildId="25100" OwnPropDevice="true">IOCard.NoIOCard</Slave>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective1Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="59" MyChildId="800">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective1</SimulationClass>
<TechReport Servos="10;Obj1 Correction1/60;Obj1 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective1.Correction1" DisplayName="Motorized Correction for Objective 1" DisplayName-de="Motorisierte Korrektur für Objektiv 1" MTBId="MTBObjective1Correction1" CANId="0x10" MyChildId="801">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective1.Correction2" DisplayName="Motorized Correction 2 for Objective 1" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 1" MTBId="MTBObjective1Correction2" CANId="0x20" MyChildId="802">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective1.Zoom" DisplayName="Motorized Zoom for Objective 1" DisplayName-de="Motorisiertes Zoom für Objektiv 1" MTBId="MTBObjective1Zoom" CANId="0x99" MyChildId="803">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective1TempSensor" DisplayName="Temperature Sensor Objective 1" DisplayName-de="Temperatursensor Objektiv 1" MTBId="MTBObjective1TempSensor" CANId="0x60" MyChildId="805">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective1CorrController" DisplayName="Correction Controller for Objective 1" DisplayName-de="Korrektur-Controller für Objektiv 1" MTBId="MTBObjective1CorrController" CANId="0x00" MyChildId="807">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective2Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="60" MyChildId="810">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective2</SimulationClass>
<TechReport Servos="10;Obj2 Correction1/60;Obj2 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective2.Correction1" DisplayName="Motorized Correction for Objective 2" DisplayName-de="Motorisierte Korrektur für Objektiv 2" MTBId="MTBObjective2Correction1" CANId="0x10" MyChildId="811">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective2.Correction2" DisplayName="Motorized Correction 2 for Objective 2" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 2" MTBId="MTBObjective2Correction2" CANId="0x20" MyChildId="812">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective2.Zoom" DisplayName="Motorized Zoom for Objective 2" DisplayName-de="Motorisiertes Zoom für Objektiv 2" MTBId="MTBObjective2Zoom" CANId="0x99" MyChildId="813">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective2TempSensor" DisplayName="Temperature Sensor Objective 2" DisplayName-de="Temperatursensor Objektiv 2" MTBId="MTBObjective2TempSensor" CANId="0x60" MyChildId="815">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective2CorrController" DisplayName="Correction Controller for Objective 2" DisplayName-de="Korrektur-Controller für Objektiv 2" MTBId="MTBObjective2CorrController" CANId="0x00" MyChildId="817">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective3Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="61" MyChildId="820">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective3</SimulationClass>
<TechReport Servos="10;Obj3 Correction1/60;Obj3 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective3.Correction1" DisplayName="Motorized Correction for Objective 3" DisplayName-de="Motorisierte Korrektur für Objektiv 3" MTBId="MTBObjective3Correction1" CANId="0x10" MyChildId="821">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective3.Correction2" DisplayName="Motorized Correction 2 for Objective 3" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 3" MTBId="MTBObjective3Correction2" CANId="0x20" MyChildId="822">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective3.Zoom" DisplayName="Motorized Zoom for Objective 3" DisplayName-de="Motorisiertes Zoom für Objektiv 3" MTBId="MTBObjective3Zoom" CANId="0x99" MyChildId="823">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective3TempSensor" DisplayName="Temperature Sensor Objective 3" DisplayName-de="Temperatursensor Objektiv 3" MTBId="MTBObjective3TempSensor" CANId="0x60" MyChildId="825">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective3CorrController" DisplayName="Correction Controller for Objective 3" DisplayName-de="Korrektur-Controller für Objektiv 3" MTBId="MTBObjective3CorrController" CANId="0x00" MyChildId="827">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective4Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="62" MyChildId="830">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective4</SimulationClass>
<TechReport Servos="10;Obj4 Correction1/60;Obj4 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective4.Correction1" DisplayName="Motorized Correction for Objective 4" DisplayName-de="Motorisierte Korrektur für Objektiv 4" MTBId="MTBObjective4Correction1" CANId="0x10" MyChildId="831">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective4.Correction2" DisplayName="Motorized Correction 2 for Objective 4" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 4" MTBId="MTBObjective4Correction2" CANId="0x20" MyChildId="832">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective4.Zoom" DisplayName="Motorized Zoom for Objective 4" DisplayName-de="Motorisiertes Zoom für Objektiv 4" MTBId="MTBObjective4Zoom" CANId="0x99" MyChildId="833">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective4TempSensor" DisplayName="Temperature Sensor Objective 4" DisplayName-de="Temperatursensor Objektiv 4" MTBId="MTBObjective4TempSensor" CANId="0x60" MyChildId="835">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective4CorrController" DisplayName="Correction Controller for Objective 4" DisplayName-de="Korrektur-Controller für Objektiv 4" MTBId="MTBObjective4CorrController" CANId="0x00" MyChildId="837">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective5Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="67" MyChildId="840">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective5</SimulationClass>
<TechReport Servos="10;Obj5 Correction1/60;Obj5 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective5.Correction1" DisplayName="Motorized Correction for Objective 5" DisplayName-de="Motorisierte Korrektur für Objektiv 5" MTBId="MTBObjective5Correction1" CANId="0x10" MyChildId="841">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective5.Correction2" DisplayName="Motorized Correction 2 for Objective 5" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 5" MTBId="MTBObjective5Correction2" CANId="0x20" MyChildId="842">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective5.Zoom" DisplayName="Motorized Zoom for Objective 5" DisplayName-de="Motorisiertes Zoom für Objektiv 5" MTBId="MTBObjective5Zoom" CANId="0x99" MyChildId="843">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="1" Max="4" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective5TempSensor" DisplayName="Temperature Sensor Objective 5" DisplayName-de="Temperatursensor Objektiv 5" MTBId="MTBObjective5TempSensor" CANId="0x60" MyChildId="845">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective5CorrController" DisplayName="Correction Controller for Objective 5" DisplayName-de="Korrektur-Controller für Objektiv 5" MTBId="MTBObjective5CorrController" CANId="0x00" MyChildId="847">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Class="MTBCtrlCorrObjectiveDevice,MTBKernelCAN29" Name="MotKorr.Objective6Control_Device" PortType="USB" PortNo="4097" PortBaudAddr="" RTSCTS="false" CANConnection="" CanNode="68" MyChildId="850">
<SimulationMode>false</SimulationMode>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimDeviceMotKorrObjective6</SimulationClass>
<TechReport Servos="10;Obj6 Correction1/60;Obj6 Temperature">ReportCAN29Node</TechReport>
<Components>
<Component Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective6.Correction1" DisplayName="Motorized Correction for Objective 6" DisplayName-de="Motorisierte Korrektur für Objektiv 6" MTBId="MTBObjective6Correction1" CANId="0x10" MyChildId="851">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlObjectiveCorrection,MTBKernelCAN29Servos" Name="Objective6.Correction2" DisplayName="Motorized Correction 2 for Objective 6" DisplayName-de="Motorisierte Korrektur 2 für Objektiv 6" MTBId="MTBObjective6Correction2" CANId="0x20" MyChildId="852">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="38000" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="%" Min="0" Max="100" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>3000</CmdSetTimeout>
</Component>
<Component Active="false" Class="MTBCtrlCan29ObjectiveZoom,MTBKernelCAN29Servos" Name="Objective6.Zoom" DisplayName="Motorized Zoom for Objective 6" DisplayName-de="Motorisiertes Zoom für Objektiv 6" MTBId="MTBObjective6Zoom" CANId="0x99" MyChildId="853">
<Motorization>2</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="10" Max="400" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="" Min="10.0" Max="40.0" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlObjectiveTemperatureSensor,MTBKernelCAN29Servos" Name="Castor.Objective6TempSensor" DisplayName="Temperature Sensor Objective 6" DisplayName-de="Temperatursensor Objektiv 6" MTBId="MTBObjective6TempSensor" CANId="0x60" MyChildId="855">
<Motorization>1</Motorization>
<SimulationClass>ZEISS.MTB.Simulation.MTBSimCAN29Servo</SimulationClass>
<Simulation>
<TypMovementTime>0.0001</TypMovementTime>
</Simulation>
<PositionScales>
<ADRange Min="1" Max="4095" MaxDeviation="5" TypDeviation="2" />
<ScaledRange Unit="°C" Min="-127.9375" Max="+127.9375" />
</PositionScales>
<SpeedScales>
<ADRange Min="1" Max="1" />
<ScaledRange Unit="" Min="1" Max="1" />
</SpeedScales>
<CmdSetTimeout>2000</CmdSetTimeout>
</Component>
<Component Class="MTBCtrlCan29ObjCorrController,MTBKernelCAN29" Name="Castor.Objective6CorrController" DisplayName="Correction Controller for Objective 6" DisplayName-de="Korrektur-Controller für Objektiv 6" MTBId="MTBObjective6CorrController" CANId="0x00" MyChildId="857">
<Motorization>2</Motorization>
<CmdSetTimeout>4000</CmdSetTimeout>
</Component>
</Components>
</Device>
<Device Active="false" Name="NoPiezofocus" DisplayName="No Piezo Focus" DisplayName-de="Kein Piezo-Fokus" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30020" />
<Device Active="false" Name="ApoTome.none" MyChildId="10025" />
<Device Active="false" Name="Stage.none" MyChildId="10005" />
<Device Active="false" Name="TIRF.none" MyChildId="9200" />
<Device Active="false" Name="Safety_Device.ImagerZ2None" DisplayName="No Microscope Safety Device" DisplayName-de="Kein Mikroskop Safety Device" PortType="USB" PortNo="4100" PortBaudAddr="" RTSCTS="false" CANConnection="" MyChildId="10011" />
<Device Active="false" Name="Incubation.AtmoTemp_none" MyChildId="14000" />
<Device Active="false" Name="Linkam.none" DisplayName="No Linkam Heating Stage" DisplayName-de="Kein Linkam Heiztisch" MyChildId="9914" />
<Device Active="false" Name="REOEM.none" MyChildId="10013" />
<Device Active="false" Name="NoFilterWheelsShutters" DisplayName="No Filter Wheels and Shutters" DisplayName-de="Keine Filterräder und Verschlüsse" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30050" />
<Device Active="false" Name="Shutters.Uniblitz.No" DisplayName="No Shutters" DisplayName-de="Keine Verschlüsse" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="30070" />
<Device Active="false" Name="IOCard.NoIOCard" DisplayName="No IOCard" DisplayName-de="Keine IO-Karte" PortType="RS232" PortNo="2" PortBaudAddr="9600" RTSCTS="true" MyChildId="25100" />
</Devices>
</MTBConfiguration>
</MTB2004Export>
\ No newline at end of file
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Debug\ZeissMicroscopeAPI.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Debug\ZeissMicroscopeAPI.pdb
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Debug\MTBApi.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Debug\ZeissMicroscopeAPI.csproj.AssemblyReference.cache
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Debug\ZeissMicroscopeAPI.csproj.CoreCompileInputs.cache
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Debug\ZeissMicroscopeAPI.csproj.CopyComplete
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Debug\ZeissMicroscopeAPI.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Debug\ZeissMicroscopeAPI.pdb
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")]
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Release\ZeissMicroscopeAPI.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Release\ZeissMicroscopeAPI.pdb
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\bin\Release\MTBApi.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Release\ZeissMicroscopeAPI.csproj.CoreCompileInputs.cache
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Release\ZeissMicroscopeAPI.csproj.CopyComplete
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Release\ZeissMicroscopeAPI.dll
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Release\ZeissMicroscopeAPI.pdb
D:\C_Shape\ZeissMicroscopeAPI\ZeissMicroscopeAPI\obj\Release\ZeissMicroscopeAPI.csproj.AssemblyReference.cache
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment