public RealTimeStatusValvePrintheadViewModel(RealTimeStatusValvePrintheadModel RealTimeStatusValvePrintheadModel) : base(RealTimeStatusValvePrintheadModel) { _realTimeStatusValvePrintheadModel = RealTimeStatusValvePrintheadModel; base._imageSource = "/Resources/General/ValvePrinthead.png"; UpdateProperties(); }
/// <summary> /// Record the parameters from a Valve Printhead Print With Movement command. /// </summary> /// <param name="xStepsTaken"></param> /// <param name="yStepsTaken"></param> /// <param name="zStepsTaken"></param> public void RecordValvePrintWithMovement(int xStepsTaken, int yStepsTaken, int zStepsTaken) { double xmmPerStep = _printerModel.AxisModelList[0].MmPerStep; double ymmPerStep = _printerModel.AxisModelList[1].MmPerStep; double zmmPerStep = _printerModel.FindAxis(_zRealTimeStatusAxisModel.Name).MmPerStep; //Record data. RealTimeStatusValvePrintheadModel valvePrinthead = (RealTimeStatusValvePrintheadModel)_activePrintheadModel; //Unsed parameter. valvePrinthead.IsValveOn = false; if (xStepsTaken != 0) { _xRealTimeStatusAxisModel.Position += (_printerModel.AxisModelList[0].IsDirectionInverted == false) ? (double)(xStepsTaken * xmmPerStep) : (double)(xStepsTaken * -1 * xmmPerStep); _xRealTimeStatusAxisModel.LimitSwitchStatus = LimitSwitchStatus.NoLimit; } if (yStepsTaken != 0) { _yRealTimeStatusAxisModel.Position += (_printerModel.AxisModelList[1].IsDirectionInverted == false) ? (double)(yStepsTaken * ymmPerStep) : (double)(yStepsTaken * -1 * ymmPerStep); _yRealTimeStatusAxisModel.LimitSwitchStatus = LimitSwitchStatus.NoLimit; } if (zStepsTaken != 0) { _zRealTimeStatusAxisModel.Position += (_printerModel.FindAxis(_zRealTimeStatusAxisModel.Name).IsDirectionInverted == false) ? (double)(zStepsTaken * zmmPerStep) : (double)(zStepsTaken * -1 * zmmPerStep); _zRealTimeStatusAxisModel.LimitSwitchStatus = LimitSwitchStatus.NoLimit; } //Notify other classes. OnRecordValvePrintWithMovementExecuted(); }
/// <summary> /// Record the parameters from a Valve Printhead Close command. /// </summary> public void RecordValveClose() { RealTimeStatusValvePrintheadModel realTimeStatusValvePrintheadModel = (RealTimeStatusValvePrintheadModel)_activePrintheadModel; realTimeStatusValvePrintheadModel.IsValveOn = false; //Notify other classes. OnRecordValveCloseExecuted(); }
/// <summary> /// Record the parameters from a Valve Printhead Print without Movement command. /// </summary> /// <param name="openTime"></param> public void RecordValvePrintWithoutMovement(double openTime) { //Record data. if (_activePrintheadType == PrintheadType.Valve) { RealTimeStatusValvePrintheadModel realTimeStatusValvePrintheadModel = (RealTimeStatusValvePrintheadModel)_activePrintheadModel; //With a parameter value of zero, the valve should be open until the close command is executed. //Otherwise, the valve will have opened for a set time and have been closed by the time this message is received. if (openTime == 0) { realTimeStatusValvePrintheadModel.IsValveOn = true; } else { realTimeStatusValvePrintheadModel.IsValveOn = false; } } //Notify other classes. OnRecordValvePrintWithoutMovementExecuted(); }
/// <summary> /// Translates raw task queued message for a Valve Printhead Print without Movement command into a readable phrase. /// Sets the Real Time Status based on the message. /// </summary> /// <param name="incomingMessage"></param> public void InterpretValvePrintWithoutMovementQueued(string incomingMessage) { string taskQueuedMessage = "Valve Print Without Movement:"; //Return string. double[] parameterValues = ParseDoubleArray(incomingMessage); //Array of numerical values in incomingMessage. RealTimeStatusValvePrintheadModel realTimeStatusValvePrintheadModel = (RealTimeStatusValvePrintheadModel)_realTimeStatusDataModel.ActivePrintheadModel; int openTime = (parameterValues.Length > 0) ? (int)parameterValues[0] : 0; if (openTime > 0) //Valve is opening for a set period of time. { realTimeStatusValvePrintheadModel.IsValveOn = true; taskQueuedMessage += " " + openTime.ToString() + " us"; } else if (openTime == 0) //Valve is about to open until further commands. { taskQueuedMessage += " Open Valve"; } _realTimeStatusDataModel.RecordTaskQueued(taskQueuedMessage); }
/// <summary> /// Translates raw task queued message for a Valve Printhead Print With Movement command into a readable phrase. /// Sets the Real Time Status based on the message. /// </summary> /// <param name="incomingMessage"></param> public void InterpretValvePrintWithMovementQueued(string incomingMessage) { string taskQueuedMessage = "Valve Print With Movement:"; //Return string. double[] parameterValues = ParseDoubleArray(incomingMessage); //Array of numerical values in incomingMessage. RealTimeStatusValvePrintheadModel realTimeStatusValvePrintheadModel = (RealTimeStatusValvePrintheadModel)_realTimeStatusDataModel.ActivePrintheadModel; int xStepsTaken = (int)parameterValues[0]; int yStepsTaken = (int)parameterValues[1]; int zStepsTaken = (int)parameterValues[2]; bool isXYZMove = ((xStepsTaken != 0) || (yStepsTaken != 0) || (zStepsTaken != 0)) ? true : false; if (isXYZMove == true) { realTimeStatusValvePrintheadModel.IsValveOn = true; } taskQueuedMessage += " X" + xStepsTaken.ToString(); //X taskQueuedMessage += " Y" + yStepsTaken.ToString(); //Y taskQueuedMessage += " Z" + zStepsTaken.ToString(); //Z _realTimeStatusDataModel.RecordTaskQueued(taskQueuedMessage); }