refined test

git-svn-id: http://moon:8086/svn/projects/HendiControl@213 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
2019-04-03 16:33:54 +00:00
parent b975cd9c6f
commit e3896d99a1
+73 -23
View File
@@ -15,6 +15,14 @@ class HendiCtrl():
self.ser.timeout = 1.000 self.ser.timeout = 1.000
self.prompt = b':' self.prompt = b':'
self.caps = {
"name" : self.getSoftwareIdentifier(),
"ver" : self.getSoftwareVersion(),
"pwr_watts_min" : 500,
"pwr_watts_max" : 3500,
"pwr_digits_min" : 4095,
"pwr_digits_max" : 0
}
def reset(self): def reset(self):
self.ser.dtr = True self.ser.dtr = True
@@ -85,19 +93,11 @@ class HendiCtrl():
return None return None
def getCapabilties(self): def getCapabilties(self):
caps = { return self.caps
"name" : self.getSoftwareIdentifier(),
"ver" : self.getSoftwareVersion(),
"pwr_watts_min" : 500,
"pwr_watts_max" : 3500,
"pwr_digits_min" : 4095,
"pwr_digits_max" : 0
}
return caps
def getInfo(self): def getInfo(self):
result = { result = {
'caps' : self.getCapabilties(), 'caps' : self.caps,
'state' : self.getState(), 'state' : self.getState(),
'pwr_digits' : self.getPowerDigits(), 'pwr_digits' : self.getPowerDigits(),
'Switch_state' : self.getSwitch() 'Switch_state' : self.getSwitch()
@@ -137,30 +137,80 @@ class HendiCtrl():
def getSwitch(self): def getSwitch(self):
return self.cmd("S?") return self.cmd("S?")
def setPowerWatts(self, power_watts):
pwr_watts_min = self.caps['pwr_watts_min']
pwr_watts_max = self.caps['pwr_watts_max']
pwr_digits_min = self.caps['pwr_digits_min']
pwr_digits_max = self.caps['pwr_digits_max']
pwr_watts_range = pwr_watts_max - pwr_watts_min
pwr_digits_range = pwr_digits_max - pwr_digits_min
digits_per_watt = pwr_digits_range/pwr_watts_range
pwr_digits = pwr_digits_min + digits_per_watt * (power_watts - pwr_watts_min)
max_digit = max(pwr_digits_max, pwr_digits_min)
min_digit = min(pwr_digits_max, pwr_digits_min)
pwr_digit = min(max_digit, max(min_digit, pwr_digits)) + 0.5
self.setPowerDigits(pwr_digits)
def getPowerWatts(self):
pwr_watts_min = self.caps['pwr_watts_min']
pwr_watts_max = self.caps['pwr_watts_max']
pwr_digits_min = self.caps['pwr_digits_min']
pwr_digits_max = self.caps['pwr_digits_max']
pwr_watts_range = pwr_watts_max - pwr_watts_min
pwr_digits_range = pwr_digits_max - pwr_digits_min
digits_per_watt = pwr_digits_range/pwr_watts_range
max_digit = max(pwr_digits_max, pwr_digits_min)
min_digit = min(pwr_digits_max, pwr_digits_min)
pwr_digit = int(self.getPowerDigits())
pwr_watts = (pwr_digit - pwr_digits_min)/digits_per_watt + pwr_watts_min
return int(pwr_watts)
if __name__ == '__main__': if __name__ == '__main__':
hendi = HendiCtrl('/dev/ttyUSB0', 115200) hendi = HendiCtrl('/dev/ttyUSB0', 115200)
hendi.firmware_update("HendiCtrl.srec") # hendi.firmware_update("HendiCtrl.srec")
hendi.reset() # hendi.reset()
time.sleep(0.5) time.sleep(10)
hendi.getState() hendi.getState()
hendi.getSoftwareIdentifier() hendi.getSoftwareIdentifier()
hendi.getSoftwareVersion() hendi.getSoftwareVersion()
hendi.setPower(1234)
hendi.setSwitch(1)
hendi.remoteEnable(True) try:
if hendi.isRemoteEnable(): hendi.remoteEnable(True)
switch_state = 1 hendi.setSwitch(1)
for p in range(0, 4000, 10): for pwr in range(500, 3500, 100):
hendi.setPowerDigits(p) hendi.setPowerWatts(pwr)
hendi.setSwitch(switch_state) time.sleep(0.1)
switch_state = not switch_state pw = hendi.getPowerWatts()
print("power_w", pw)
time.sleep(1.0)
hendi.remoteEnable(False) except:
pass
hendi.setSwitch(0)
hendi.remoteEnable(False)
if 0:
hendi.remoteEnable(True)
if hendi.isRemoteEnable():
hendi.setSwitch(True)
for p in range(0, 4096, 100):
hendi.setPowerDigits(p)
time.sleep(1)
hendi.setSwitch(False)
hendi.remoteEnable(False)
print ("End of program.") print ("End of program.")