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:
parent
48cc0124ed
commit
6089d24bd1
|
|
@ -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*\\)")
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue