refined test
git-svn-id: http://moon:8086/svn/projects/HendiControl@213 fda53097-d464-4ada-af97-ba876c37ca34
This commit is contained in:
+69
-19
@@ -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,29 +137,79 @@ 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)
|
|
||||||
|
|
||||||
|
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)
|
||||||
|
|
||||||
|
except:
|
||||||
|
pass
|
||||||
|
|
||||||
|
hendi.setSwitch(0)
|
||||||
|
hendi.remoteEnable(False)
|
||||||
|
|
||||||
|
if 0:
|
||||||
hendi.remoteEnable(True)
|
hendi.remoteEnable(True)
|
||||||
if hendi.isRemoteEnable():
|
if hendi.isRemoteEnable():
|
||||||
switch_state = 1
|
hendi.setSwitch(True)
|
||||||
for p in range(0, 4000, 10):
|
for p in range(0, 4096, 100):
|
||||||
hendi.setPowerDigits(p)
|
hendi.setPowerDigits(p)
|
||||||
hendi.setSwitch(switch_state)
|
time.sleep(1)
|
||||||
switch_state = not switch_state
|
|
||||||
|
|
||||||
|
hendi.setSwitch(False)
|
||||||
hendi.remoteEnable(False)
|
hendi.remoteEnable(False)
|
||||||
|
|
||||||
print ("End of program.")
|
print ("End of program.")
|
||||||
|
|||||||
Reference in New Issue
Block a user