configtool: revert homing order

currently this part is buggy and need some rework.
Looks like it is more simple to write it new instead of find the bugs
This commit is contained in:
Nico Tonnhofer 2019-01-10 22:48:45 +01:00
parent 48cc0124ed
commit 6089d24bd1
3 changed files with 2 additions and 131 deletions

View File

@ -95,9 +95,3 @@ defineValueFormat = "#define %-24s %s\n"
defineBoolFormat = "#define %s\n"
defineHeaterFormat = "#define HEATER_%s HEATER_%s\n"
defineDCExtruderFormat = "#define %-24s HEATER_%s\n"
reHomingOpts = re.compile("^\s*//\s*#define\s+HOMING_OPT\s+(\w+)")
reStartHoming = re.compile("^\s*//\s*DEFINE_HOMING_START")
reEndHoming = re.compile("^\s*//\s*DEFINE_HOMING_END")
reDefHoming = re.compile("\s*(DEFINE_HOMING\\([^)]*\\))")
reHoming4 = re.compile(".*\\(\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*,\s*(\w+)\s*\\)")

View File

@ -39,13 +39,6 @@ class MechanicalPage(wx.Panel, Page):
self.kinematicsKeys = ["KINEMATICS_STRAIGHT", "KINEMATICS_COREXY"]
self.homingKeys = [
("HOMING_STEP1", 2),
("HOMING_STEP2", 2),
("HOMING_STEP3", 2),
("HOMING_STEP4", 2),
]
self.labels = {
"STEPS_PER_M_X": "X:",
"STEPS_PER_M_Y": "Y:",
@ -70,21 +63,9 @@ class MechanicalPage(wx.Panel, Page):
"E_ABSOLUTE": "Absolute E Coordinates",
"KINEMATICS_STRAIGHT": "Straight",
"KINEMATICS_COREXY": "CoreXY",
"HOMING_STEP1": "Step 1:",
"HOMING_STEP2": "Step 2:",
"HOMING_STEP3": "Step 3:",
"HOMING_STEP4": "Step 4:",
"none": "-",
"x_negative": "X min",
"x_positive": "X max",
"y_negative": "Y min",
"y_positive": "Y max",
"z_negative": "Z min",
"z_positive": "Z max",
}
labelWidth = 40
labelWidthHoming = 60
sz = wx.GridBagSizer()
sz.Add((10, 10), pos=(0, 0))
@ -159,11 +140,11 @@ class MechanicalPage(wx.Panel, Page):
sbox.Add(rb, 1, wx.LEFT + wx.RIGHT, 16)
sbox.Add((5, 5))
vsz.Add(sbox, 1, wx.LEFT, 10)
vsz.Add(sbox, 1, wx.LEFT, 40)
cb = self.addCheckBox("E_ABSOLUTE", self.onCheckBox)
vsz.Add(cb, 1, wx.LEFT, 10)
vsz.Add(cb, 1, wx.LEFT, 40)
sz.Add(vsz, pos=(3, 1))
@ -186,17 +167,6 @@ class MechanicalPage(wx.Panel, Page):
sz.Add(bsz, pos=(1, 3))
b = wx.StaticBox(self, wx.ID_ANY, "Homing Order")
b.SetFont(font)
sbox = wx.StaticBoxSizer(b, wx.VERTICAL)
sbox.Add((5, 5))
for k, ctype in self.homingKeys:
if ctype == 2:
tc = self.addChoice(k, [], 0, labelWidthHoming, self.onChoice)
sbox.Add(tc)
sbox.Add((5, 5))
sz.Add(sbox, pos=(3, 3))
self.enableAll(False)
self.SetSizer(sz)
@ -233,37 +203,17 @@ class MechanicalPage(wx.Panel, Page):
for k in self.kinematicsKeys:
self.radioButtons[k].SetToolTip(ht["KINEMATICS"])
def prepareHomingValues(self, name, i, cfgValues):
self.choices[name].Clear()
for p in cfgValues["HOMING_OPTS"]:
self.choices[name].Append(self.labels[p])
i = cfgValues["HOMING_OPTS"].index(cfgValues[name])
self.choices[name].SetSelection(i)
def insertValues(self, cfgValues):
Page.insertValues(self, cfgValues)
self.prepareHomingValues("HOMING_STEP1", 0, cfgValues)
self.prepareHomingValues("HOMING_STEP2", 1, cfgValues)
self.prepareHomingValues("HOMING_STEP3", 2, cfgValues)
self.prepareHomingValues("HOMING_STEP4", 3, cfgValues)
for tag in self.kinematicsKeys:
if tag in cfgValues.keys() and cfgValues[tag]:
self.radioButtons[tag].SetValue(True)
def getHomingValue(self, name, result):
return (self.labels.keys()[self.labels.values().index(result[name][0])], True)
def getValues(self):
result = Page.getValues(self)
for tag in self.kinematicsKeys:
result[tag] = self.radioButtons[tag].GetValue()
result["HOMING_STEP1"] = self.getHomingValue("HOMING_STEP1", result)
result["HOMING_STEP2"] = self.getHomingValue("HOMING_STEP2", result)
result["HOMING_STEP3"] = self.getHomingValue("HOMING_STEP3", result)
result["HOMING_STEP4"] = self.getHomingValue("HOMING_STEP4", result)
return result

View File

@ -16,11 +16,6 @@ from configtool.data import (
reDefQSm2,
reDefBool,
reDefBoolBL,
reHomingOpts,
reStartHoming,
reEndHoming,
reDefHoming,
reHoming4,
)
@ -102,12 +97,6 @@ class Printer:
ln = prevLines + ln
prevLines = ""
if self.parseCandidateValues(ln):
continue
if self.parseHoming(ln):
continue
self.parseDefineName(ln)
self.parseDefineValue(ln)
@ -140,12 +129,6 @@ class Printer:
ln = prevLines + ln
prevLines = ""
if self.parseCandidateValues(ln):
continue
if self.parseHoming(ln):
continue
self.parseDefineValue(ln)
# Parsing done. All parsed stuff is now in these array and dicts.
@ -167,40 +150,6 @@ class Printer:
return False
def parseCandidateValues(self, ln):
m = reHomingOpts.match(ln)
if m:
t = m.groups()
if len(t) == 1:
if "HOMING_OPTS" in self.cfgValues:
if t[0] not in self.cfgValues["HOMING_OPTS"]:
self.cfgValues["HOMING_OPTS"].append(t[0])
else:
self.cfgValues["HOMING_OPTS"] = [t[0]]
return True
def parseHoming(self, ln):
m = reDefHoming.search(ln)
if m:
t = m.groups()
if len(t) == 1:
n = reHoming4.search(t[0])
if n:
u = n.groups()
if len(u) == 4:
t2 = []
for x in u:
t2.append(x)
self.cfgValues["HOMING_STEP1"] = t2[0]
self.cfgValues["HOMING_STEP2"] = t2[1]
self.cfgValues["HOMING_STEP3"] = t2[2]
self.cfgValues["HOMING_STEP4"] = t2[3]
return True
return None
return True
def parseDefineValue(self, ln):
m = reDefQS.search(ln)
if m:
@ -260,29 +209,7 @@ class Printer:
fp = file(path, "w")
self.configFile = path
skipToHomingEnd = False
for ln in self.cfgBuffer:
m = reStartHoming.match(ln)
if m:
fp.write(ln)
sstr = "%s, %s, %s, %s" % (
(values["HOMING_STEP1"]),
(values["HOMING_STEP2"]),
(values["HOMING_STEP3"]),
(values["HOMING_STEP4"]),
)
fp.write("DEFINE_HOMING(%s)\n" % sstr)
skipToHomingEnd = True
continue
if skipToHomingEnd:
m = reEndHoming.match(ln)
if m:
fp.write(ln)
skipToHomingEnd = False
continue
m = reDefine.match(ln)
if m:
t = m.groups()