Skip to content

Commit ac2b96a

Browse files
authored
Merge pull request #2765 from LinuxCNC/pncconf_fix_missing_ssport
pncconf -fix HAL load command for 2 serialports
2 parents 1d79d2f + 4b43058 commit ac2b96a

1 file changed

Lines changed: 24 additions & 21 deletions

File tree

src/emc/usr_intf/pncconf/pncconf.py

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -5250,9 +5250,9 @@ def make_name(bname,bnum):
52505250
elif not "5i25" in board1 and not '7i90' in board1:
52515251
firmstring1 = "firmware=hm2/%s/%s.BIT " % (directory1, firm1)
52525252

5253-
# TODO fix this hardcoded hack: only one serialport
5254-
ssconfig0 = ssconfig1 = resolver0 = resolver1 = temp = ""
5255-
if self.d.mesa0_numof_sserialports:
5253+
ssport0 = ssport1 = resolver0 = resolver1 = ""
5254+
for p in range(0, self.d.mesa0_numof_sserialports):
5255+
temp = ""
52565256
for i in range(1,_PD._NUM_CHANNELS+1):
52575257
if i <= self.d.mesa0_numof_sserialchannels:
52585258
# m number in the name signifies the required sserial mode
@@ -5263,19 +5263,22 @@ def make_name(bname,bnum):
52635263
else: temp = temp + "0" # default case
52645264
else:
52655265
temp = temp + "x"
5266-
ssconfig0 = " sserial_port_0=%s"% temp
5267-
if self.d.number_mesa == 2 and self.d.mesa1_numof_sserialports:
5268-
for i in range(1,_PD._NUM_CHANNELS+1):
5269-
if i <= self.d.mesa1_numof_sserialchannels:
5270-
# m number in the name signifies the required sserial mode
5271-
for j in ("123456789"):
5272-
if ("m"+j) in self.d["mesa1sserial0_%dsubboard"% (i-1)]:
5273-
temp = temp + j
5274-
break
5275-
else: temp = temp + "0" # default case
5276-
else:
5277-
temp = temp + "x"
5278-
ssconfig1 = " sserial_port_0=%s"% temp
5266+
ssport0 += " sserial_port_{}={}".format(p, temp)
5267+
5268+
if self.d.number_mesa == 2:
5269+
for p in range(0, self.d.mesa01numof_sserialports):
5270+
for i in range(1,_PD._NUM_CHANNELS+1):
5271+
if i <= self.d.mesa1_numof_sserialchannels:
5272+
# m number in the name signifies the required sserial mode
5273+
for j in ("123456789"):
5274+
if ("m"+j) in self.d["mesa1sserial0_%dsubboard"% (i-1)]:
5275+
temp = temp + j
5276+
break
5277+
else: temp = temp + "0" # default case
5278+
else:
5279+
temp = temp + "x"
5280+
ssport1 += " sserial_port_{}={}".format(p, temp)
5281+
52795282
if self.d.mesa0_numof_resolvers:
52805283
resolver0 = " num_resolvers=%d"% self.d.mesa0_numof_resolvers
52815284
if self.d.mesa1_numof_resolvers:
@@ -5289,25 +5292,25 @@ def make_name(bname,bnum):
52895292
load_cmnds.append( """loadrt%s%s%s config="%snum_encoders=%d num_pwmgens=%d%s num_stepgens=%d%s%s" """ % (
52905293
driver0, board0_ip, mesa0_ioaddr,
52915294
firmstring0, self.d.mesa0_numof_encodergens, self.d.mesa0_numof_pwmgens, mesa0_3pwm, self.d.mesa0_numof_stepgens,
5292-
ssconfig0, resolver0))
5295+
ssport0, resolver0))
52935296
elif self.d.number_mesa == 2 and (driver0 == driver1):
52945297
loadstring = """loadrt%s%s%s%s%s config="%snum_encoders=%d num_pwmgens=%d%s num_stepgens=%d%s%s,""" % (
52955298
driver0, board0_ip, board1_ip, mesa0_ioaddr, mesa1_ioaddr,
52965299
firmstring0, self.d.mesa0_numof_encodergens, self.d.mesa0_numof_pwmgens, mesa0_3pwm, self.d.mesa0_numof_stepgens,
5297-
ssconfig0, resolver0)
5300+
ssport0, resolver0)
52985301
loadstring += """ %snum_encoders=%d num_pwmgens=%d%s num_stepgens=%d%s%s" """ % (
52995302
firmstring1, self.d.mesa1_numof_encodergens, self.d.mesa1_numof_pwmgens, mesa1_3pwm, self.d.mesa1_numof_stepgens,
5300-
ssconfig1, resolver1)
5303+
ssport1, resolver1)
53015304
load_cmnds.append(loadstring)
53025305
elif self.d.number_mesa == 2:
53035306
load_cmnds.append( """loadrt%s%s%s config="%snum_encoders=%d num_pwmgens=%d%s num_stepgens=%d%s%s" """ % (
53045307
driver0, board0_ip, mesa0_ioaddr,
53055308
firmstring0, self.d.mesa0_numof_encodergens, self.d.mesa0_numof_pwmgens, mesa0_3pwm, self.d.mesa0_numof_stepgens,
5306-
ssconfig0, resolver0 ))
5309+
ssport0, resolver0 ))
53075310
load_cmnds.append( """loadrt%s%s%s config="%snum_encoders=%d num_pwmgens=%d%s num_stepgens=%d%s%s" """ % (
53085311
driver1, board1_ip, mesa1_ioaddr,
53095312
firmstring1, self.d.mesa1_numof_encodergens, self.d.mesa1_numof_pwmgens, mesa1_3pwm, self.d.mesa1_numof_stepgens,
5310-
ssconfig1, resolver1 ))
5313+
ssport1, resolver1 ))
53115314
for boardnum in range(0,int(self.d.number_mesa)):
53125315
if boardnum == 1 and (board0 == board1):
53135316
halnum = 1

0 commit comments

Comments
 (0)