88import signal
99
1010import hal
11- from qtvcp .qt_halobjects import Qhal
1211from common .iniinfo import _IStat as IStatParent
1312from common import logger
1413
@@ -59,7 +58,7 @@ def __init__(self, readAddress = "tcp://127.0.0.1:5690",
5958 signal .signal (signal .SIGTERM , self .shutdown )
6059 signal .signal (signal .SIGINT , self .shutdown )
6160
62- self .init_hal ()
61+ self .init ()
6362 if ZMQ :
6463 self .init_read ()
6564 self .init_write ()
@@ -72,48 +71,14 @@ def update(self, *arg):
7271 self .writeMsg ('set_selected_axis' ,'Y' )
7372 self .activeJoint .set (10 )
7473
75- def init_hal (self ):
76- self .comp = h = hal . component ( "bridge" )
77- QHAL = Qhal ( comp = self .comp , hal = hal )
74+ def init (self ):
75+ self .jogRate = 0
76+ self .jogRateAngular = 0
7877
79- self .jogRate = QHAL .newpin ("jog-rate" , hal .HAL_FLOAT , hal .HAL_OUT )
80- self .jogRateIn = QHAL .newpin ("jog-rate-in" , hal .HAL_FLOAT , hal .HAL_IN )
81- self .jogRateIn .pinValueChanged .connect (self .pinChanged )
78+ self .jogIncrement = 0
79+ self .jogIncrementAngular = 0
8280
83- self .jogRateAngular = QHAL .newpin ("jog-rate-angular" , hal .HAL_FLOAT , hal .HAL_OUT )
84- self .jogRateAngularIn = QHAL .newpin ("jog-rate-angular-in" , hal .HAL_FLOAT , hal .HAL_OUT )
85- self .jogRateAngularIn .pinValueChanged .connect (self .pinChanged )
86-
87- self .jogIncrement = QHAL .newpin ("jog-increment" , hal .HAL_FLOAT , hal .HAL_OUT )
88- self .jogIncrementAngular = QHAL .newpin ("jog-increment-angular" , hal .HAL_FLOAT , hal .HAL_OUT )
89- self .activeJoint = QHAL .newpin ('joint-selected' , hal .HAL_S32 , hal .HAL_OUT )
90-
91- for i in (self .INFO .AVAILABLE_AXES ):
92- let = i .lower ()
93- # input
94- self ['axis{}Select' .format (let )] = QHAL .newpin ('axis-%s-select' % let , hal .HAL_BIT , hal .HAL_IN )
95- self ['axis{}Select' .format (let )].pinValueChanged .connect (self .pinChanged )
96- # output
97- self ['Axis{}IsSelected' .format (let )] = QHAL .newpin ('axis-%s-is-selected' % let , hal .HAL_BIT , hal .HAL_OUT )
98-
99- self .cycle_start = QHAL .newpin ('cycle-start-in' ,QHAL .HAL_BIT , QHAL .HAL_IN )
100- self .cycle_start .pinValueChanged .connect (self .pinChanged )
101- self .cycle_pause = QHAL .newpin ('cycle-pause-in' ,QHAL .HAL_BIT , QHAL .HAL_IN )
102- self .cycle_pause .pinValueChanged .connect (self .pinChanged )
103-
104- for i in self .INFO .MDI_COMMAND_DICT :
105- LOG .debug ('{} {}' .format (i ,self .INFO .MDI_COMMAND_DICT .get (i )))
106- self [i ] = QHAL .newpin ('ini-mdi-cmd-{}' .format (i ),QHAL .HAL_BIT , QHAL .HAL_IN )
107- self [i ].pinValueChanged .connect (self .runMacroChanged )
108-
109- for i in self .INFO .INI_MACROS :
110- name = i .split ()[0 ]
111- LOG .debug ('{} {}' .format (name ,i ))
112- self [name ] = QHAL .newpin ('ini-macro-cmd-{}' .format (name ),QHAL .HAL_BIT , QHAL .HAL_IN )
113- self [name ].pinValueChanged .connect (self .runMacroChanged )
114-
115- QHAL .setUpdateRate (100 )
116- h .ready ()
81+ self .activeJoint = 0
11782
11883 def init_write (self ):
11984 context = zmq .Context ()
@@ -141,19 +106,19 @@ def readMsg(self, msg):
141106 y = json .loads (data )
142107 self . action (y .get ('MESSAGE' ),y .get ('ARGS' ))
143108
144- # set our output HAL pins from messages from hal_glib
109+ # set our variables from messages from hal_glib
145110 def action (self , msg , data ):
146111 LOG .debug ('{} {}' .format (msg , data ))
147112 if msg == 'jograte-changed' :
148- self .jogRate . set ( float (data [0 ]) )
113+ self .jogRate = float (data [0 ])
149114 elif msg == 'jograte-angular-changed' :
150- self .jogRateAngular . set ( float (data [0 ]) )
115+ self .jogRateAngular = float (data [0 ])
151116 elif msg == 'jogincrements-changed' :
152- self .jogIncrement . set ( float (data [0 ][0 ]) )
117+ self .jogIncrement = float (data [0 ][0 ])
153118 elif msg == 'jogincrement-angular-changed' :
154- self .jogIncremtAngular . set ( float (data [0 ][0 ]) )
119+ self .jogIncremtAngular = float (data [0 ][0 ])
155120 elif msg == 'joint-selection-changed' :
156- self .activeJoint . set ( int (data [0 ]) )
121+ self .activeJoint = int (data [0 ])
157122 elif msg == 'axis-selection-changed' :
158123 flag = 1
159124 for i in (self .INFO .AVAILABLE_AXES ):
@@ -163,7 +128,6 @@ def action(self, msg, data):
163128 flag = 0
164129 else :
165130 state = False
166- self ['Axis{}IsSelected' .format (i .lower ())].set (state )
167131 self .axesSelected [i ] = int (state )
168132 if flag :
169133 self .currentSelectedAxis = 'None'
@@ -183,8 +147,7 @@ def writeMsg(self, msg, data):
183147 # callback from HAL input pins
184148 def pinChanged (self , pinObject , value ):
185149 LOG .debug ('Pin name:{} changed value to {}' .format (pinObject .text (), value ))
186- #print(type(value))
187- # Axis selction change request
150+ # Axis selection change request
188151 if 'select' in pinObject .text ():
189152 if bool (value ) == False :
190153 pass
@@ -220,26 +183,41 @@ def pinChanged(self, pinObject, value):
220183 else :
221184 self .writeMsg (pinObject .text (),value )
222185
223- # callback; request to run a specific macro
224- def runMacroChanged (self , pinObject , value ):
225- LOG .debug ('Macro Pin name:{} changed value to {}' .format (pinObject .text (), value ))
226- #LOG.debug(type(value))
227- name = pinObject .text ().strip ('macro-cmd-' )
228- if value :
229- self .writeMsg ('request_macro_call' , name )
230186
231187 def shutdown (self ,signum = None ,stack_frame = None ):
232188 LOG .debug ('shutdown' )
233189 global app
234190 app .quit ()
235191
192+ def getMdiName (self , num ):
193+ if num > len (self .INFO .MDI_COMMAND_DICT )- 1 :
194+ return 'None'
195+ temp = list (self .INFO .MDI_COMMAND_DICT .keys ())[num ]
196+ LOG .debug ('{} {}' .format (num ,temp ))
197+ return temp
198+
199+ def getMacroNames (self ):
200+ for i in self .INFO .INI_MACROS :
201+ name = i .split ()[0 ]
202+ LOG .debug ('{} {}' .format (name ,i ))
203+
204+ def runIndexedMacro (self , num ):
205+ name = self .getMdiName (num )
206+ LOG .debug ('Macro name:{} ,index: {}' .format (name , num ))
207+ if name != 'None' :
208+ self .writeMsg ('request_macro_call' , name )
209+
210+ def getMdiCount (self ):
211+ print (len (self .INFO .MDI_COMMAND_DICT ))
212+ return len (self .INFO .MDI_COMMAND_DICT )
213+
236214 def getJogRate (self ):
237- return self .jogRate . get ()
215+ return self .jogRate
238216 def setJogRate (self , value ):
239217 self .writeMsg ('set_jograte' , value )
240218
241219 def getJogRateAngular (self ):
242- return self .jogRateAngular . get ()
220+ return self .jogRateAngular
243221 def setJogRateAngular (self , value ):
244222 self .writeMsg ('set_jograte_angular' , value )
245223
0 commit comments