Beispiel #1
0
        int GetRegisterData(int addr, EYMCDataType type, uint RegisterDataNumber, out Int16[] Reg_ShortData, out Int32[] Reg_LongData)
        {
            Debug.Assert(INPUT_ORIGIN <= addr && addr <= OUTPUT_END);
            Reg_ShortData = new Int16[RegisterDataNumber];
            Reg_LongData  = new Int32[RegisterDataNumber];
#if SIMULATION_IO
            return(SUCCESS);
#endif

            uint hDataHandle;
            int  iResult = GetRegisterDataHandle(addr, type, out hDataHandle);
            if (iResult != SUCCESS)
            {
                return(iResult);
            }

            UInt32 ReadDataNumber = 0;                 // Number of obtained registers
            //UInt32 RegisterDataNumber = 1;             // Number of read-in registers
            //Int16[] Reg_ShortData = new Int16[1];      // W or B size register data storage variable
            //Int32[] Reg_LongData = new Int32[1];       // L size register data storage variable
            uint rc;

            if (type == EYMCDataType.B || type == EYMCDataType.W)
            {
                rc = CMotionAPI.ymcGetRegisterData(hDataHandle, RegisterDataNumber, Reg_ShortData, ref ReadDataNumber);
            }
            else
            {
                rc = CMotionAPI.ymcGetRegisterData(hDataHandle, RegisterDataNumber, Reg_LongData, ref ReadDataNumber);
            }

            if (rc != CMotionAPI.MP_SUCCESS)
            {
                string str = $"Error ymcGetRegisterData MB \nErrorCode [ 0x{rc.ToString("X")} ]";
                WriteLog(str, ELogType.Debug, ELogWType.Error, true);
                return(GenerateErrorCode(ERR_YMC_FAIL_GET_DATA));
            }

            return(SUCCESS);
        }
Beispiel #2
0
        private void bt_Click_Get(object sender, RoutedEventArgs e)
        {
            UInt32 hRegisterML01000 = 0x00000000;
            UInt32 hRegisterML01002 = 0x00000000;

            UInt32[] dataML          = new UInt32[1];
            UInt32   pReadDataNumber = 0;

            r = CMotionAPI.ymcGetRegisterDataHandle("ML01000", ref hRegisterML01000);
            if (r != CMotionAPI.MP_SUCCESS)
            {
                MessageBox.Show(String.Format("获取寄存器引用错误 \n错误码 [ 0x{0} ]", r.ToString("X")));
                return;
            }
            r = CMotionAPI.ymcGetRegisterDataHandle("ML01002", ref hRegisterML01002);
            if (r != CMotionAPI.MP_SUCCESS)
            {
                MessageBox.Show(String.Format("获取寄存器引用错误 \n错误码 [ 0x{0} ]", r.ToString("X")));
                return;
            }

            CMotionAPI.ymcGetRegisterData(hRegisterML01000, 1, dataML, ref pReadDataNumber);
            if (r != CMotionAPI.MP_SUCCESS)
            {
                MessageBox.Show(String.Format("获取寄存器值错误 \n错误码 [ 0x{0} ]", r.ToString("X")));
                return;
            }
            G_ML01000.Text = dataML[0].ToString();
            CMotionAPI.ymcGetRegisterData(hRegisterML01002, 1, dataML, ref pReadDataNumber);
            if (r != CMotionAPI.MP_SUCCESS)
            {
                MessageBox.Show(String.Format("获取寄存器值错误 \n错误码 [ 0x{0} ]", r.ToString("X")));
                return;
            }
            G_ML01002.Text = dataML[0].ToString();
        }