import sys import clr clr.AddReference('CASDK2')

from System import * from System.Linq import * from CASDK2 import *

class multi: MAX_COUNT = 10 err = 0 ca_count = 1 objCa200 = CASDK2Ca200() objCas = None objCa = None objProbes = None objOutputProbes = None objProbe = None objMemory = None

def __init__(self, count):
    if count < 1:
        self.ca_count = 1
    elif count > self.MAX_COUNT:
        self.ca_count = self.MAX_COUNT
    else:
        self.ca_count = count
    self.objCa = [None] * self.ca_count
    self.objProbes = [None] * self.ca_count
    self.objOutputProbes = [None] * self.ca_count
    self.objProbe = [None] * self.ca_count
    self.objMemory = [None] * self.ca_count

def __del__(self):
    self.Discconect()

def MultiConnect(self):
    for ca in range(self.ca_count):
        self.GetErrorMessage(self.objCa200.SetConfiguration(ca + 1, "1", 0, 38400, 0))
    self.err = self.objCa200.get_Cas(self.objCas)
    for ca in range(self.ca_count):
        self.GetErrorMessage(self.objCas.get_Item(ca + 1, self.objCa[ca]))
        self.GetErrorMessage(self.objCa[ca].get_Probes(self.objProbes[ca]))
        self.GetErrorMessage(self.objCa[ca].get_OutputProbes(self.objOutputProbes[ca]))
        self.GetErrorMessage(self.objCa[ca].get_Memory(self.objMemory[ca]))
        self.GetErrorMessage(self.objProbes[ca].get_Item(1, self.objProbe[ca]))
        self.GetErrorMessage(self.objOutputProbes[ca].AddAll())
        self.GetErrorMessage(self.objOutputProbes[ca].get_Item(1, self.objProbe[ca]))

def Discconect(self):
    self.GetErrorMessage(self.objCa200.DisconnectAll())

def MultiSetting(self):
    freqmode = 4   # SyncMode : INT 
    freq = 60.0    # frequency = 60.0Hz
    speed = 1      # Measurement speed : FAST
    Lvmode = 1     # Lv : cd/m2
    for ca in range(self.ca_count):
        self.GetErrorMessage(self.objCa[ca].CalZero())                      #Zero-Calibration
        self.GetErrorMessage(self.objCa[ca].put_DisplayProbe("P1"))         #Set display probe to P1
        self.GetErrorMessage(self.objCa[ca].put_SyncMode(freqmode, freq))   #Set sync mode and frequency
        self.GetErrorMessage(self.objCa[ca].put_AveragingMode(speed))       #Set measurement speed
        self.GetErrorMessage(self.objCa[ca].put_BrightnessUnit(Lvmode))     #Set Brightness unit

def MultiMeasurement(self):
    for ca in range(self.ca_count):
        self.GetErrorMessage(self.objCa[ca].put_DisplayMode(0))     #Set Lvxy mode
    self.GetErrorMessage(self.objCas.SendMsr())         #Measure
    self.GetErrorMessage(self.objCas.ReceiveMsr())      #Get results
    Lv = [0.0] * self.ca_count
    sx = [0.0] * self.ca_count
    sy = [0.0] * self.ca_count
    X = [0.0] * self.ca_count
    Y = [0.0] * self.ca_count
    Z = [0.0] * self.ca_count
    for ca in range(self.ca_count):
        self.GetErrorMessage(self.objProbe[ca].get_Lv(Lv[ca]))
        self.GetErrorMessage(self.objProbe[ca].get_sx(sx[ca]))
        self.GetErrorMessage(self.objProbe[ca].get_sy(sy[ca]))
        self.GetErrorMessage(self.objProbe[ca].get_X(X[ca]))
        self.GetErrorMessage(self.objProbe[ca].get_Y(Y[ca]))
        self.GetErrorMessage(self.objProbe[ca].get_Z(Z[ca]))
        print("Lv:{} x:{} y:{}".format(Lv[ca], sx[ca], sy[ca]))
        print("X:{} Y:{} Z:{}".format(X[ca], Y[ca], Z[ca]))

def GetErrorMessage(self, errornum):
    errormessage = ""
    if errornum != 0:
        err = GlobalFunctions.CASDK2_GetLocalizedErrorMsgFromErrorCode(0, errornum, errormessage)
        print(errormessage)

class singleDPmultiprobe: MAX_COUNT = 10 err = 0 probe_count = 0 IsEnablePort = [False] * MAX_COUNT port = "" objCa200 = CASDK2Ca200() objCas = None objCa = None objProbes = None objOutputProbes = None objProbe = None objMemory = None

def __init__(self, connectprobe):
    self.objProbe = [None] * self.MAX_COUNT
    for probe in range(self.MAX_COUNT):
        self.IsEnablePort[probe] = connectprobe[probe]
    self.createstring()

def __del__(self):
    self.sDPDisconnect()

def createstring(self):
    portbuf = "0"
    for probe in range(self.MAX_COUNT):
        if self.IsEnablePort[probe]:
            if portbuf == "0":
                portbuf = ""
            else:
                portbuf += " "
            portbuf += str(probe + 1)
            self.probe_count += 1
    self.port = portbuf

def sDPConnect(self):
    self.GetErrorMessage(self.objCa200.SetConfiguration(1, self.port, 0, 38400, 0))
    self.err = self.objCa200.get_Cas(self.objCas)
    self.GetErrorMessage(self.objCas.get_Item(1, self.objCa))
    self.GetErrorMessage(self.objCa.get_Probes(self.objProbes))
    self.GetErrorMessage(self.objCa.get_OutputProbes(self.ob
将C# 转换成Python3using System;using SystemCollectionsGeneric;using SystemLinq;using SystemText;using SystemThreadingTasks;using CASDK2;C Copyright KONICA MINOLTA INC All rights reserved 2017namespace pro

原文地址: https://www.cveoy.top/t/topic/eBxi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录