예제 #1
0
        public CRobotStatus GetCopyOfRobotStatus()
        {
            CRobotStatus cRobotStatus = new CRobotStatus();

            cRobotStatus.SetAndCheckSWs(robotStatus.sw1, robotStatus.sw2);
            return(cRobotStatus);
        }
예제 #2
0
        private async Task <bool> ReadGeneralStatus()
        {
            await TaskEx.WaitUntil(isIdle);

            SetEvent("ReadGeneralStatus");

            bool  isError = false;
            short sw1 = -1, sw2 = -1;
            short ret = CMotocom.BscGetStatus(m_Handle, ref sw1, ref sw2);

            if (ret != 0)
            {
                isError = true;
                SetError("Error calling BscGetStatus");
            }
            else
            {
                if (robotStatus.SetAndCheckSWs(sw1, sw2))
                {
                    StatusChanged(this, null);
                }

                StringBuilder framename  = new StringBuilder("ROBOT"); // BASE  ROBOT
                int           formCode   = 0;
                short         isExternal = 0;
                short         toolNo     = 0;
                short         ret1       = CMotocom.BscGetCartPos(
                    //short ret1 = CMotocom.BscIsRobotPos(
                    m_Handle, framename, isExternal, ref formCode, ref toolNo, ref currentPosition[0]);

                if (ret1 == -1)
                {
                    isError = true;
                    SetError("Error executing BscGetCartPos");
                }
                else
                {
                    currentPosition[13] = formCode;
                    currentPosition[14] = toolNo;

                    DispatchCurrentPosition(this, null);

                    m_previousStatus_ms = DateTimeOffset.Now.ToUnixTimeMilliseconds();
                }
            }
            await SetEvent(EnumEvent.Idle);

            return(isError);
        }