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();
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        /// <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);
        }