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.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):
self.ser.dtr = True
@@ -85,19 +93,11 @@ class HendiCtrl():
return None
def getCapabilties(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
return self.caps
def getInfo(self):
result = {
'caps' : self.getCapabilties(),
'caps' : self.caps,
'state' : self.getState(),
'pwr_digits' : self.getPowerDigits(),
'Switch_state' : self.getSwitch()
@@ -137,30 +137,80 @@ class HendiCtrl():
def getSwitch(self):
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__':
hendi = HendiCtrl('/dev/ttyUSB0', 115200)
hendi.firmware_update("HendiCtrl.srec")
hendi.reset()
time.sleep(0.5)
# hendi.firmware_update("HendiCtrl.srec")
# hendi.reset()
time.sleep(10)
hendi.getState()
hendi.getSoftwareIdentifier()
hendi.getSoftwareVersion()
hendi.setPower(1234)
hendi.setSwitch(1)
hendi.remoteEnable(True)
if hendi.isRemoteEnable():
switch_state = 1
for p in range(0, 4000, 10):
hendi.setPowerDigits(p)
hendi.setSwitch(switch_state)
switch_state = not switch_state
try:
hendi.remoteEnable(True)
hendi.setSwitch(1)
for pwr in range(500, 3500, 100):
hendi.setPowerWatts(pwr)
time.sleep(0.1)
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.")