public string[] xyzwpr(string ip)
        {
            msubInit(ip);


            string[] strTmp = new string[9];


            Array xyzwpr    = new float[9];
            Array config    = new short[7];
            Array joint     = new float[9];
            short intUF     = 0;
            short intUT     = 0;
            short intValidC = 0;
            short intValidJ = 0;



            mobjDataTable.Refresh();

            {
                mobjCurPos2.GetValue(ref xyzwpr, ref config, ref joint, ref intUF, ref intUT, ref intValidC, ref intValidJ);


                for (int ii = 0; ii <= 8; ii++)
                {
                    strTmp[ii] = xyzwpr.GetValue(ii).ToString();
                }
            }


            msubDisconnected();

            return(strTmp);
        }
Ejemplo n.º 2
0
        //refresh datatable1
        private void refresh_dt1()
        {
            //init
            short  intLine = 0, intState = 0;
            object vntValue = null, jobValue = null, nameValue = null;
            string strProg = "", strParentProg = "";
            Array  lngAI        = new int[2];
            bool   validRefresh = false;

            var dtTemp = dt_Selected.Clone();

            //datatable gets refreshed
            validRefresh = objDataTable1.Refresh();

            //if refresh failed, disconnect
            if (validRefresh == false)
            {
                objCore.Disconnect();
                Console.WriteLine("Disconnecting - refresh failed");
                return;
            }

            //DATA FORMATTING
            //NUMERIC REGISTERS
            for (int i = 0; i <= objSelectedReg.Length - 1; i++)
            {
                if (objSelectedReg[i].GetValue(selectedRegArr[i], ref vntValue) == true)
                {
                    //add data to return-datatable  {id,regnr,value,bool}
                    dtTemp.Rows.Add(new object[] { selectedRegArr[i], selectedRegArr[i], vntValue, false });
                }
                else
                {
                    dtTemp.Rows.Add(new object[] { selectedRegArr[i], selectedRegArr[i], null, false });
                }
            }
            dt_Selected = dtTemp;


            //TASKS
            for (int i = objTaskList.GetLowerBound(0); i <= objTaskList.GetUpperBound(0); i++)
            {
                if (objTaskList[i].GetValue(ref strProg, ref intLine, ref intState, ref strParentProg))
                {
                    //if empty, exit to outer loop
                    if (strProg == "")
                    {
                        break;
                    }
                    taskArr[i] = "TASK " + objTaskList[i].Index + "  -  Program: " + strProg + "  -  Line: " + intLine + "  -  State: " + intState + "  -  Parent: " + strParentProg;
                }
                else
                {
                    taskArr[i] = "TASK " + objTaskList[i].Index + "  -  ERROR";
                }
            }

            //ANALOG IO
            //read AnalogOut - offset 1000 to get AO as in FANUC documentation
            {
                //read AnalogIn - offset 1000 to get AI as in FANUC documentation
                if (objCore.ReadGI(1000 + 1, ref lngAI, 2) == false)
                {
                    Console.WriteLine("Disconnected - read AI fail");
                    objCore.Disconnect();
                    return;
                }
                voltage = (int)lngAI.GetValue(1);
                amp     = (int)lngAI.GetValue(0);
            }

            //TASKNR of total tasks & NAME
            if (numRegJob.GetValue(0, ref jobValue) == true)
            {
                job = "" + jobValue;
            }
            if (numRegofJob.GetValue(0, ref jobValue) == true)
            {
                ofJob = "" + jobValue;
            }
            if (objRobotName.GetValue(0, ref nameValue) == true)
            {
                robotName = "" + nameValue;
            }
        }