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" defineBoolFormat = "#define %s\n"
defineHeaterFormat = "#define HEATER_%s HEATER_%s\n" defineHeaterFormat = "#define HEATER_%s HEATER_%s\n"
defineDCExtruderFormat = "#define %-24s 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.kinematicsKeys = ["KINEMATICS_STRAIGHT", "KINEMATICS_COREXY"]
self.homingKeys = [
("HOMING_STEP1", 2),
("HOMING_STEP2", 2),
("HOMING_STEP3", 2),
("HOMING_STEP4", 2),
]
self.labels = { self.labels = {
"STEPS_PER_M_X": "X:", "STEPS_PER_M_X": "X:",
"STEPS_PER_M_Y": "Y:", "STEPS_PER_M_Y": "Y:",
@ -70,21 +63,9 @@ class MechanicalPage(wx.Panel, Page):
"E_ABSOLUTE": "Absolute E Coordinates", "E_ABSOLUTE": "Absolute E Coordinates",
"KINEMATICS_STRAIGHT": "Straight", "KINEMATICS_STRAIGHT": "Straight",
"KINEMATICS_COREXY": "CoreXY", "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 labelWidth = 40
labelWidthHoming = 60
sz = wx.GridBagSizer() sz = wx.GridBagSizer()
sz.Add((10, 10), pos=(0, 0)) 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(rb, 1, wx.LEFT + wx.RIGHT, 16)
sbox.Add((5, 5)) 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) 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)) sz.Add(vsz, pos=(3, 1))
@ -186,17 +167,6 @@ class MechanicalPage(wx.Panel, Page):
sz.Add(bsz, pos=(1, 3)) 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.enableAll(False)
self.SetSizer(sz) self.SetSizer(sz)
@ -233,37 +203,17 @@ class MechanicalPage(wx.Panel, Page):
for k in self.kinematicsKeys: for k in self.kinematicsKeys:
self.radioButtons[k].SetToolTip(ht["KINEMATICS"]) 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): def insertValues(self, cfgValues):
Page.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: for tag in self.kinematicsKeys:
if tag in cfgValues.keys() and cfgValues[tag]: if tag in cfgValues.keys() and cfgValues[tag]:
self.radioButtons[tag].SetValue(True) 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): def getValues(self):
result = Page.getValues(self) result = Page.getValues(self)
for tag in self.kinematicsKeys: for tag in self.kinematicsKeys:
result[tag] = self.radioButtons[tag].GetValue() 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 return result

View File

@ -16,11 +16,6 @@ from configtool.data import (
reDefQSm2, reDefQSm2,
reDefBool, reDefBool,
reDefBoolBL, reDefBoolBL,
reHomingOpts,
reStartHoming,
reEndHoming,
reDefHoming,
reHoming4,
) )
@ -102,12 +97,6 @@ class Printer:
ln = prevLines + ln ln = prevLines + ln
prevLines = "" prevLines = ""
if self.parseCandidateValues(ln):
continue
if self.parseHoming(ln):
continue
self.parseDefineName(ln) self.parseDefineName(ln)
self.parseDefineValue(ln) self.parseDefineValue(ln)
@ -140,12 +129,6 @@ class Printer:
ln = prevLines + ln ln = prevLines + ln
prevLines = "" prevLines = ""
if self.parseCandidateValues(ln):
continue
if self.parseHoming(ln):
continue
self.parseDefineValue(ln) self.parseDefineValue(ln)
# Parsing done. All parsed stuff is now in these array and dicts. # Parsing done. All parsed stuff is now in these array and dicts.
@ -167,40 +150,6 @@ class Printer:
return False 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): def parseDefineValue(self, ln):
m = reDefQS.search(ln) m = reDefQS.search(ln)
if m: if m:
@ -260,29 +209,7 @@ class Printer:
fp = file(path, "w") fp = file(path, "w")
self.configFile = path self.configFile = path
skipToHomingEnd = False
for ln in self.cfgBuffer: 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) m = reDefine.match(ln)
if m: if m:
t = m.groups() t = m.groups()