Skip to content

Commit 663a4a8

Browse files
committed
bridge -remove HAL pin code, get MDI commands working
1 parent 7b7098a commit 663a4a8

1 file changed

Lines changed: 38 additions & 60 deletions

File tree

lib/python/bridgeui/bridge.py

Lines changed: 38 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@
88
import signal
99

1010
import hal
11-
from qtvcp.qt_halobjects import Qhal
1211
from common.iniinfo import _IStat as IStatParent
1312
from 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

Comments
 (0)