将C# 转换成Python3using System;using SystemCollectionsGeneric;using SystemLinq;using SystemText;using SystemThreadingTasks;using CASDK2;C Copyright KONICA MINOLTA INC All rights reserved 2017namespace pro
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
原文地址: https://www.cveoy.top/t/topic/eBxi 著作权归作者所有。请勿转载和采集!