def test_LayerTrigger_ExtruderTriggerWait(self): """Test wait on extruder""" position = Position(self.Settings, self.OctoprintPrinterProfile, False) # home the axis and send another command to make sure the previous instruction was homed position.Update("G28") position.Update("PreviousHomed") trigger = LayerTrigger(self.Settings) trigger.RequireZHop = False # no zhop required trigger.HeightIncrement = 0 # Trigger on every layer change #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = False # Use on extruding start for this test. trigger.ExtruderTriggers = ExtruderTriggers(True,None,None,None,None,None,None,None,None,None) position.Extruder.IsExtrudingStart = False position.IsLayerChange = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == True) # update again with no change trigger.Update(position) self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == True) # set the trigger and try again position.Extruder.IsExtrudingStart = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False)
def TestReset(self): """Test the reset function""" position = Position(self.Settings, self.OctoprintPrinterProfile, False) trigger = LayerTrigger(self.Settings) # test initial state self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == False) # set the flags to different valuse trigger.IsTriggered = True trigger.IsWaiting = True self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == False) # test the reset state trigger.Reset() self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == False)
def test_LayerTrigger_ExtruderTriggers(self): """Test All Extruder Triggers""" position = Position(self.Settings, self.OctoprintPrinterProfile, False) # home the axis position.Update("G28") trigger = LayerTrigger(self.Settings) trigger.RequireZHop = False # no zhop required trigger.HeightIncrement = 0 # Trigger on every layer change #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # Try on extruding start right after home, should fail trigger.ExtruderTriggers = ExtruderTriggers(True,None,None,None,None,None,None,None,None,None) position.Extruder.IsExtrudingStart = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == False) self.assertTrue(trigger.IsWaiting == True) # Try again, should trigger because the previous state was homed position.Update("m114"); position.Extruder.IsExtrudingStart = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on extruding trigger.ExtruderTriggers = ExtruderTriggers(None,True,None,None,None,None,None,None,None,None) position.Extruder.IsExtruding = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on primed trigger.ExtruderTriggers = ExtruderTriggers(None,None,True,None,None,None,None,None,None,None) position.Extruder.IsPrimed = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on retracting start trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,True,None,None,None,None,None,None) position.Extruder.IsRetractingStart = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on retracting trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,True,None,None,None,None,None) position.Extruder.IsRetracting = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on partially retracted trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,None,True,None,None,None,None) position.Extruder.IsPartiallyRetracted = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on retracted trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,None,None,True,None,None,None) position.Extruder.IsRetracted = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on detracting Start trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,None,None,None,True,None,None) position.Extruder.IsDetractingStart = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on detracting Start trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,None,None,None,None,True,None) position.Extruder.IsDetracting = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False) #Reset the extruder position.Extruder.Reset() position.Extruder.IsPrimed = False trigger.IsWaiting = True # try out on detracting Start trigger.ExtruderTriggers = ExtruderTriggers(None,None,None,None,None,None,None,None,None,True) position.Extruder.IsDetracted = True trigger.Update(position) self.assertTrue(trigger.IsTriggered == True) self.assertTrue(trigger.IsWaiting == False)