towards python 3
This commit is contained in:
10
ESB_MX.subs
10
ESB_MX.subs
@@ -20,9 +20,9 @@
|
|||||||
|
|
||||||
file PPMACMotor.template {
|
file PPMACMotor.template {
|
||||||
pattern {DESC ,P ,M ,PORT ,ADDR ,DIR,VMAX,VELO,JVEL,HVEL,ACCL,JAR,MRES ,PREC,EGU ,DHLM,DLLM}
|
pattern {DESC ,P ,M ,PORT ,ADDR ,DIR,VMAX,VELO,JVEL,HVEL,ACCL,JAR,MRES ,PREC,EGU ,DHLM,DLLM}
|
||||||
{ "Rotation Y" ,"$(P_M)","MOTOR_ROT_Y1","$(PORT_M)","$(M1)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"deg",0 ,0}
|
{ "Rotation Y" ,"$(P_M)","MOTOR_ROT_Y1","$(PORT_M)","$(M1)",1 ,50 ,50 ,50 ,1 ,0.1 ,20 ,-0.001,3 ,"deg",0 ,0}
|
||||||
{ "Translation X","$(P_M)","MOTOR_X1" ,"$(PORT_M)","$(M2)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
{ "Translation X","$(P_M)","MOTOR_X1" ,"$(PORT_M)","$(M2)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
||||||
{ "Translation Y","$(P_M)","MOTOR_Y1" ,"$(PORT_M)","$(M3)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
{ "Translation Y","$(P_M)","MOTOR_Y1" ,"$(PORT_M)","$(M3)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
||||||
{ "TransBase X", "$(P_M)","MOTOR_AX" ,"$(PORT_M)","$(M7)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
{ "TransBase X", "$(P_M)","MOTOR_AX" ,"$(PORT_M)","$(M7)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
||||||
{ "TransBase Z", "$(P_M)","MOTOR_AZ" ,"$(PORT_M)","$(M8)",0 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
{ "TransBase Z", "$(P_M)","MOTOR_AZ" ,"$(PORT_M)","$(M8)",1 ,2 ,2 ,2 ,1 ,0.1 ,20 ,-0.001,3 ,"mm",0 ,0}
|
||||||
}
|
}
|
||||||
|
|||||||
2
Makefile
2
Makefile
@@ -3,7 +3,7 @@ MODULE = $(notdir $(shell pwd))
|
|||||||
BUILDCLASSES = Linux
|
BUILDCLASSES = Linux
|
||||||
ARCH_FILTER = eldk42% SL6-x86_64
|
ARCH_FILTER = eldk42% SL6-x86_64
|
||||||
EXCLUDE_VERSIONS = 3.14.8
|
EXCLUDE_VERSIONS = 3.14.8
|
||||||
SCRIPTS+=$(wildcard add_device*.cmd cfg/*.cfg cfg/*.py cfg/*.pbi qt/*.ui qt/*.jpg)
|
SCRIPTS+=$(wildcard add_device*.cmd cfg/*.cfg cfg/*.py cfg/*.pbi qt/*.ui qt/*.jpg python/*.py)
|
||||||
#SOURCES+=src/DHVSaSub.cpp
|
#SOURCES+=src/DHVSaSub.cpp
|
||||||
#DBDS+=src/DHVSaSub.dbd
|
#DBDS+=src/DHVSaSub.dbd
|
||||||
USR_CXXFLAGS+= -fno-operator-names
|
USR_CXXFLAGS+= -fno-operator-names
|
||||||
|
|||||||
50
Readme.md
50
Readme.md
@@ -4,6 +4,7 @@ Various motor documents
|
|||||||
|
|
||||||
Parker stage
|
Parker stage
|
||||||
------------
|
------------
|
||||||
|
```
|
||||||
- encoder is incremental encoder
|
- encoder is incremental encoder
|
||||||
25mm or 50mm travel stage
|
25mm or 50mm travel stage
|
||||||
Stall Current Continuous 0.8
|
Stall Current Continuous 0.8
|
||||||
@@ -14,7 +15,7 @@ Max.BuxVoltage V 80
|
|||||||
|
|
||||||
Continous Force 4N -> assume 1kg load -> acceleration=a=F/m=4m/s^2
|
Continous Force 4N -> assume 1kg load -> acceleration=a=F/m=4m/s^2
|
||||||
Weight top stage: 250g=2.5N
|
Weight top stage: 250g=2.5N
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Mecapion rot stage
|
Mecapion rot stage
|
||||||
@@ -27,15 +28,16 @@ http://www.parkem.ch/medien/produkte/direktantriebstechnik/pdf/MDM_Rundtisch_kat
|
|||||||
http://www.goto.si/wp-content/uploads/2016/kat/L7%20Series%20catalog.pdf
|
http://www.goto.si/wp-content/uploads/2016/kat/L7%20Series%20catalog.pdf
|
||||||
http://farasys.ir/wp-content/uploads/2015/Direct%20Drive%20Rotary%20Motors.pdf
|
http://farasys.ir/wp-content/uploads/2015/Direct%20Drive%20Rotary%20Motors.pdf
|
||||||
http://www.inmoco.co.uk/Upload/product/1037_DD_Series_Motors_79.pdf
|
http://www.inmoco.co.uk/Upload/product/1037_DD_Series_Motors_79.pdf
|
||||||
```
|
|
||||||
|
|
||||||
- encoder is biss 20 bit
|
- encoder is biss 20 bit
|
||||||
- Rated Current 1.46 Arms
|
- Rated Current 1.46 Arms
|
||||||
- Max Current 4.38 Arms
|
- Max Current 4.38 Arms
|
||||||
- 32 pole (16 einraster per rev)
|
- 32 pole (16 einraster per rev)
|
||||||
|
```
|
||||||
|
|
||||||
Servo Test Motor QBL 4208-41-04-006
|
Servo Test Motor QBL 4208-41-04-006
|
||||||
-----------------------------------
|
-----------------------------------
|
||||||
|
```
|
||||||
8 pole (4 lock position per rev)
|
8 pole (4 lock position per rev)
|
||||||
24 V rated voltage
|
24 V rated voltage
|
||||||
1.79 A rated phase current
|
1.79 A rated phase current
|
||||||
@@ -43,10 +45,12 @@ Servo Test Motor QBL 4208-41-04-006
|
|||||||
4000 rpm rated speed
|
4000 rpm rated speed
|
||||||
1.8 ohm line to line resistance
|
1.8 ohm line to line resistance
|
||||||
2.6 mH line to line inductance
|
2.6 mH line to line inductance
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
2Phase Stepper Test Motor Vextra PK244M
|
2Phase Stepper Test Motor Vextra PK244M
|
||||||
---------------------------------------
|
---------------------------------------
|
||||||
|
```
|
||||||
- 200 pole (100 einraster per rev)
|
- 200 pole (100 einraster per rev)
|
||||||
|
|
||||||
|
|
||||||
@@ -61,28 +65,31 @@ gpasciiCommander --host SAR-CPPM-EXPMX1 -i
|
|||||||
|
|
||||||
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python
|
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python
|
||||||
./shapepath.py -v255
|
./shapepath.py -v255
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Testing ServoFrq.
|
Testing ServoFrq.
|
||||||
-----------------
|
-----------------
|
||||||
|
```
|
||||||
!common(PhaseFreq=20000,PhasePerServo=4) -> 25000points, 20um error leads the trajectory in x
|
!common(PhaseFreq=20000,PhasePerServo=4) -> 25000points, 20um error leads the trajectory in x
|
||||||
!common(PhaseFreq=20000,PhasePerServo=2) -> 25000points, 6.6um error
|
!common(PhaseFreq=20000,PhasePerServo=2) -> 25000points, 6.6um error
|
||||||
!common(PhaseFreq=20000,PhasePerServo=1) -> 25000points, 6.1um error ossilates in y, x is quite good
|
!common(PhaseFreq=20000,PhasePerServo=1) -> 25000points, 6.1um error ossilates in y, x is quite good
|
||||||
|
|
||||||
-> the servo loop has to be optimized!
|
-> the servo loop has to be optimized!
|
||||||
|
```
|
||||||
|
|
||||||
Testing linear,pvt,spline moves
|
Testing linear,pvt,spline moves
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
```
|
||||||
|
|
||||||
Tested with shapepath.py: THE BEST TRAJECTORY RESULT IST WITH PVT MOTION
|
Tested with shapepath.py: THE BEST TRAJECTORY RESULT IST WITH PVT MOTION
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Optimize/Test Parameters with Parker Stage
|
Optimize/Test Parameters with Parker Stage
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
```
|
||||||
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/cfg
|
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/cfg
|
||||||
gpasciiCommander --host SAR-CPPM-EXPMX1 -i
|
gpasciiCommander --host SAR-CPPM-EXPMX1 -i
|
||||||
!mx-stage()
|
!mx-stage()
|
||||||
@@ -119,12 +126,12 @@ average error x 0.313575 um, y 0.461707 um, 0.629583 um
|
|||||||
|
|
||||||
./shapepath.py
|
./shapepath.py
|
||||||
average error x 0.371877 um, y 0.317152 um, 0.542073 um
|
average error x 0.371877 um, y 0.317152 um, 0.542073 um
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
Start motion on external signal
|
Start motion on external signal
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
```
|
||||||
open plc 1
|
open plc 1
|
||||||
Coord[1].DesTimeBase=0 // freezes timebase at boot
|
Coord[1].DesTimeBase=0 // freezes timebase at boot
|
||||||
while(1)
|
while(1)
|
||||||
@@ -144,3 +151,32 @@ close
|
|||||||
enable plc 1
|
enable plc 1
|
||||||
-> run motion program. press gpio 0 to run at 100%
|
-> run motion program. press gpio 0 to run at 100%
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
29.9.17 Testing in MX-LAB
|
||||||
|
-------------------------
|
||||||
|
```
|
||||||
|
Start the powerbrick. ioc is started automatically
|
||||||
|
zamofing_t@ganymede:~$ ssh x06mx-cons-1
|
||||||
|
|
||||||
|
caget SAR-ESB_MX:MOTOR_AX
|
||||||
|
cd /net/slsfs-crtl/export/sf/common/config/qt/
|
||||||
|
startDM -macro 'P=SAR-ESB_MX' ESB_MX_exp
|
||||||
|
press homing button
|
||||||
|
-> all axes can be moved.
|
||||||
|
|
||||||
|
(on thierrys laptop only)
|
||||||
|
cd /home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python
|
||||||
|
./shapepath.py
|
||||||
|
will execute the custom motion. No problems with EPICS
|
||||||
|
|
||||||
|
(on other machines)
|
||||||
|
module is installed in:
|
||||||
|
ls /net/slsfs-crtl/export/sf/ioc/modules/ESB_MX/zamofing_t/R3.14.12/
|
||||||
|
PATH=/net/slsfs-crtl/export/sf/controls/bin/:$PATH
|
||||||
|
source /opt/gfa/python-2.7/2.3.0/bin/activate xblpython > /dev/null 2>&1
|
||||||
|
cd /net/slsfs-crtl/export/sf/ioc/modules/ESB_MX/zamofing_t/R3.14.12/
|
||||||
|
./shapepath.py
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ Motor[1].pPhaseEnc=Acc84B[0].Chan[0].SerialEncDataA.a
|
|||||||
//Motor[1].pAbsPhasePos=Acc84B[0].Chan[0].SerialEncDataA.a
|
//Motor[1].pAbsPhasePos=Acc84B[0].Chan[0].SerialEncDataA.a
|
||||||
|
|
||||||
!motor_servo(mot=1,ctrl='ServoCtrl',Kp=0.8,Kvfb=20,Ki=0.001,Kvff=40,Kaff=0,MaxInt=1000)
|
!motor_servo(mot=1,ctrl='ServoCtrl',Kp=0.8,Kvfb=20,Ki=0.001,Kvff=40,Kaff=0,MaxInt=1000)
|
||||||
!motor(mot=1,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=1.5,IpfGain=0,IpbGain=3,JogSpeed=180.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./8192,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10)
|
!motor(mot=1,dirCur=0,contCur=1000,peakCur=2000,timeAtPeak=1,IiGain=1.5,IpfGain=0,IpbGain=3,JogSpeed=180.,numPhase=3,invDir=True,servo=None,PhasePosSf=1./8192,PhaseFindingDac=100,PhaseFindingTime=50,SlipGain=0,AdvGain=0,PwmSf=10000,FatalFeLimit=3000,WarnFeLimit=1000,InPosBand=10, HomeOffset=228987)
|
||||||
|
|
||||||
|
|
||||||
//Stage Y Parker MX80L
|
//Stage Y Parker MX80L
|
||||||
@@ -85,12 +85,14 @@ Motor[1].pPhaseEnc=Acc84B[0].Chan[0].SerialEncDataA.a
|
|||||||
|
|
||||||
!encoder_biss(enc=7,numBits=32,posSf=1./20)
|
!encoder_biss(enc=7,numBits=32,posSf=1./20)
|
||||||
!encoder_biss(enc=8,numBits=32,posSf=1./20)
|
!encoder_biss(enc=8,numBits=32,posSf=1./20)
|
||||||
!motor(mot=7,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8)
|
!motor(mot=7,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8,InPosBand=1,HomeOffset=39278)
|
||||||
!motor(mot=8,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8)
|
!motor(mot=8,current=200,JogSpeed=0.5,invDir=1,servoSf=204.8,InPosBand=1,HomeOffset=39736)
|
||||||
|
|
||||||
//turn off servon and inpos below ... user units (here 1um)
|
//turn off servon and inpos below ... user units (here 1um)
|
||||||
Motor[7].InPosBand=1;Motor[7].Servo.BreakPosErr=Motor[7].InPosBand
|
//Motor[7].InPosBand=1;Motor[7].Servo.BreakPosErr=Motor[7].InPosBand
|
||||||
Motor[8].InPosBand=1;Motor[8].Servo.BreakPosErr=Motor[8].InPosBand
|
//Motor[8].InPosBand=1;Motor[8].Servo.BreakPosErr=Motor[8].InPosBand
|
||||||
|
|
||||||
|
#1,7,8hmz
|
||||||
|
|
||||||
//holding current
|
//holding current
|
||||||
!holding_current(m7=[0,200],m8=[0,200])
|
!holding_current(m7=[0,200],m8=[0,200])
|
||||||
|
|||||||
@@ -64,7 +64,7 @@ class ShapePath:
|
|||||||
fh=open(args.cfg,'r')
|
fh=open(args.cfg,'r')
|
||||||
s=fh.read()
|
s=fh.read()
|
||||||
cfg=json.loads(s, object_hook=ConvUtf8)
|
cfg=json.loads(s, object_hook=ConvUtf8)
|
||||||
s=json.dumps(cfg, indent=2, separators=(',', ': '));print s
|
s=json.dumps(cfg, indent=2, separators=(',', ': '));print(s)
|
||||||
else:
|
else:
|
||||||
fn='/tmp/shapepath4'
|
fn='/tmp/shapepath4'
|
||||||
#fn='/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/data/'+time.strftime('%y-%m-%d-%H_%M_%S')
|
#fn='/home/zamofing_t/Documents/prj/SwissFEL/epics_ioc_modules/ESB_MX/python/data/'+time.strftime('%y-%m-%d-%H_%M_%S')
|
||||||
@@ -88,9 +88,11 @@ class ShapePath:
|
|||||||
cfg = {"sequencer": ['gen_grid_points(w=5,h=5,pitch=100,rnd=0.4)', 'sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'.npz")']}
|
cfg = {"sequencer": ['gen_grid_points(w=5,h=5,pitch=100,rnd=0.4)', 'sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'.npz")']}
|
||||||
#cfg = {"sequencer":['gen_rand_points(n=400, scale=1000)','sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=20,acq_per=10)','plot_gather("'+fn+'.npz")']}
|
#cfg = {"sequencer":['gen_rand_points(n=400, scale=1000)','sort_points()','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=20,acq_per=10)','plot_gather("'+fn+'.npz")']}
|
||||||
#cfg = {"sequencer": ['gen_swissfel_points(scale=300)','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=100,acq_per=10)', 'plot_gather("'+fn+'.npz")']}
|
#cfg = {"sequencer": ['gen_swissfel_points(scale=300)','gen_prog(file="'+fn+'.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=100,acq_per=10)', 'plot_gather("'+fn+'.npz")']}
|
||||||
cfg = {"sequencer": ['opt_pts("'+fn+'.npz")','gen_prog(file="'+fn+'_corr.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'_corr.npz")']}
|
#cfg = {"sequencer": ['opt_pts("'+fn+'.npz")','gen_prog(file="'+fn+'_corr.prg",host="SAR-CPPM-EXPMX1",mode=1,pt2pt_time=10,cnt=1)', 'plot_gather("'+fn+'_corr.npz")']}
|
||||||
#cfg = {"sequencer": ['opt_pts("'+fn+'.npz")','gen_prog(file="'+fn+'.prg",mode=1,pt2pt_time=10,cnt=1)']}
|
#cfg = {"sequencer": ['opt_pts("'+fn+'.npz")','gen_prog(file="'+fn+'.prg",mode=1,pt2pt_time=10,cnt=1)']}
|
||||||
|
|
||||||
|
#cfg = {"sequencer": ['gen_grid_points(w=5,h=5,pitch=100,rnd=0.4)', 'sort_points()','gen_prog(file="'+fn+'.prg",mode=1,pt2pt_time=10,cnt=1)']}
|
||||||
|
|
||||||
self.cfg=dotdict(cfg)
|
self.cfg=dotdict(cfg)
|
||||||
self.args=args
|
self.args=args
|
||||||
|
|
||||||
@@ -108,7 +110,7 @@ class ShapePath:
|
|||||||
else:
|
else:
|
||||||
dryrun=self.args.dryrun
|
dryrun=self.args.dryrun
|
||||||
for cmd in sequencer:
|
for cmd in sequencer:
|
||||||
print '>'*5+' '+cmd+' '+'<'*5
|
print('>'*5+' '+cmd+' '+'<'*5)
|
||||||
if not dryrun:
|
if not dryrun:
|
||||||
eval('self.' + cmd)
|
eval('self.' + cmd)
|
||||||
|
|
||||||
@@ -164,7 +166,7 @@ class ShapePath:
|
|||||||
ptsCorr=(pts-recPts[:,1:3]+recPts[:,4:6])
|
ptsCorr=(pts-recPts[:,1:3]+recPts[:,4:6])
|
||||||
self.points=pts
|
self.points=pts
|
||||||
self.ptsCorr=ptsCorr
|
self.ptsCorr=ptsCorr
|
||||||
print ptsCorr
|
print(ptsCorr)
|
||||||
|
|
||||||
def gen_prog(self,prgId=2,file=None,host=None,mode=0,**kwargs):
|
def gen_prog(self,prgId=2,file=None,host=None,mode=0,**kwargs):
|
||||||
'''
|
'''
|
||||||
@@ -221,7 +223,7 @@ class ShapePath:
|
|||||||
try:
|
try:
|
||||||
pt2pt_time=kwargs['pt2pt_time'] #how many ms to move to next point (pt2pt_time)
|
pt2pt_time=kwargs['pt2pt_time'] #how many ms to move to next point (pt2pt_time)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print 'missing pt2pt_time, use default=100ms'
|
print('missing pt2pt_time, use default=100ms')
|
||||||
pt2pt_time=100.
|
pt2pt_time=100.
|
||||||
try:
|
try:
|
||||||
cnt=kwargs['cnt'] #move path multiple times
|
cnt=kwargs['cnt'] #move path multiple times
|
||||||
@@ -273,7 +275,7 @@ class ShapePath:
|
|||||||
try:
|
try:
|
||||||
pt2pt_time=kwargs['pt2pt_time'] #how many ms to move to next point (pt2pt_time)
|
pt2pt_time=kwargs['pt2pt_time'] #how many ms to move to next point (pt2pt_time)
|
||||||
except KeyError:
|
except KeyError:
|
||||||
print 'missing pt2pt_time, use default=100ms'
|
print('missing pt2pt_time, use default=100ms')
|
||||||
pt2pt_time=100.
|
pt2pt_time=100.
|
||||||
pos=self.points
|
pos=self.points
|
||||||
pcor=np.ndarray(pos.shape,dtype=pos.dtype);pcor[:]=np.NaN
|
pcor=np.ndarray(pos.shape,dtype=pos.dtype);pcor[:]=np.NaN
|
||||||
@@ -302,13 +304,13 @@ class ShapePath:
|
|||||||
fh.close()
|
fh.close()
|
||||||
if host is not None:
|
if host is not None:
|
||||||
cmd ='gpasciiCommander --host '+host+' '+ file
|
cmd ='gpasciiCommander --host '+host+' '+ file
|
||||||
print cmd
|
print(cmd)
|
||||||
p = sprc.Popen(cmd, shell=True)#, stdout=sprc.PIPE, stderr=sprc.STDOUT)
|
p = sprc.Popen(cmd, shell=True)#, stdout=sprc.PIPE, stderr=sprc.STDOUT)
|
||||||
#res=p.stdout.readlines(); print res
|
#res=p.stdout.readlines(); print res
|
||||||
retval = p.wait()
|
retval = p.wait()
|
||||||
#gather -u /var/ftp/gather/out.txt
|
#gather -u /var/ftp/gather/out.txt
|
||||||
cmd ='PBGatherPlot -m24 -v7 --host '+host
|
cmd ='PBGatherPlot -m24 -v7 --host '+host
|
||||||
print cmd
|
print(cmd)
|
||||||
p = sprc.Popen(cmd, shell=True)#, stdout=sprc.PIPE, stderr=sprc.STDOUT)
|
p = sprc.Popen(cmd, shell=True)#, stdout=sprc.PIPE, stderr=sprc.STDOUT)
|
||||||
retval = p.wait()
|
retval = p.wait()
|
||||||
self.prg=prg
|
self.prg=prg
|
||||||
@@ -349,8 +351,8 @@ class ShapePath:
|
|||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def onclick(event):
|
def onclick(event):
|
||||||
print 'button=%s, x=%d, y=%d, xdata=%f, ydata=%f'%(
|
print('button=%s, x=%d, y=%d, xdata=%f, ydata=%f'%(
|
||||||
event.button, event.x, event.y, event.xdata, event.ydata)
|
event.button, event.x, event.y, event.xdata, event.ydata))
|
||||||
obj=event.canvas.figure.obj
|
obj=event.canvas.figure.obj
|
||||||
|
|
||||||
def plot_points(self,pts):
|
def plot_points(self,pts):
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<property name="windowTitle">
|
<property name="windowTitle">
|
||||||
<string>Form</string>
|
<string>Form</string>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="5,3,4,0,0,3">
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="5,3,4,0,0,0,3">
|
||||||
<property name="spacing">
|
<property name="spacing">
|
||||||
<number>2</number>
|
<number>2</number>
|
||||||
</property>
|
</property>
|
||||||
@@ -77,6 +77,26 @@
|
|||||||
</property>
|
</property>
|
||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<widget class="caLed" name="caled_3">
|
||||||
|
<property name="minimumSize">
|
||||||
|
<size>
|
||||||
|
<width>25</width>
|
||||||
|
<height>4</height>
|
||||||
|
</size>
|
||||||
|
</property>
|
||||||
|
<property name="channel" stdset="0">
|
||||||
|
<string notr="true">$(P):$(M).DMOV</string>
|
||||||
|
</property>
|
||||||
|
<property name="trueColor">
|
||||||
|
<color>
|
||||||
|
<red>0</red>
|
||||||
|
<green>85</green>
|
||||||
|
<blue>255</blue>
|
||||||
|
</color>
|
||||||
|
</property>
|
||||||
|
</widget>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="caLed" name="caled">
|
<widget class="caLed" name="caled">
|
||||||
<property name="minimumSize">
|
<property name="minimumSize">
|
||||||
|
|||||||
Reference in New Issue
Block a user