Example #1
0
        public int Close()
        {
            int nRet = XWin32Hilscher.DevSetHostState(0, XWin32Hilscher.HOST_NOT_READY, 0);

            if (nRet != XWin32Hilscher.DRV_NO_ERROR)
            {
                LogTextOut(String.Format("DeviceNet, DevSetHostState() Error({0})", nRet));
                return(nRet);
            }

            nRet = XWin32Hilscher.DevExitBoard(0);
            if (nRet != XWin32Hilscher.DRV_NO_ERROR)
            {
                LogTextOut(String.Format("DeviceNet, DevExitBoard() Error({0})", nRet));
                return(nRet);
            }

            nRet = XWin32Hilscher.DevCloseDriver(0);
            if (nRet != XWin32Hilscher.DRV_NO_ERROR)
            {
                LogTextOut(String.Format("DeviceNet, DevCloseDriver() Error({0})", nRet));
                return(nRet);
            }

            // Set Open Flag
            bOpen = false;

            return(1);
        }
Example #2
0
        public int Open(ushort usMaxInputAddress, ushort usMaxOutputAddress)
        {
            if (IsOpen())
            {
                LogTextOut("DeviceNet, Open(), Already, Board is Opened");

                return(-1000);
            }

            int nRet = -2000;

            try
            {
                nRet = XWin32Hilscher.DevOpenDriver(0);
                if (nRet != XWin32Hilscher.DRV_NO_ERROR)
                {
                    LogTextOut(String.Format("DeviceNet, DevOpenDriver() Error({0})", nRet));
                    return(nRet);
                }

                XWin32Hilscher.BOARD_INFO tBoardInfo = new XWin32Hilscher.BOARD_INFO();
                nRet = XWin32Hilscher.DevGetBoardInfo(0, (ushort)Marshal.SizeOf(tBoardInfo), out tBoardInfo);
                if (nRet != XWin32Hilscher.DRV_NO_ERROR)
                {
                    LogTextOut(String.Format("DeviceNet, DevGetBoardInfo() Error({0})", nRet));
                    return(nRet);
                }

                XWin32Hilscher.BOARD[] tBoardList = new XWin32Hilscher.BOARD[XWin32Hilscher.MAX_DEV_BOARDS] {
                    tBoardInfo.tBoard0, tBoardInfo.tBoard1, tBoardInfo.tBoard2, tBoardInfo.tBoard3
                };
                for (int i = 0; i < XWin32Hilscher.MAX_DEV_BOARDS; i++)
                {
                    if (tBoardList[i].usAvailable != 0)
                    {
                        nRet = XWin32Hilscher.DevInitBoard(tBoardList[i].usBoardNumber, IntPtr.Zero);
                        if (nRet != XWin32Hilscher.DRV_NO_ERROR)
                        {
                            LogTextOut(String.Format("DeviceNet, DevInitBoard() Error(){0}", nRet));
                            return(nRet);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                LogTextOut(String.Format("DeviceNet, DevInitBoard() Error(){0}", ex.Message));
                return(nRet);
            }
            #region аж╪╝
            nRet = XWin32Hilscher.DevReset(0, XWin32Hilscher.COLDSTART, 8000);
            if (nRet != XWin32Hilscher.DRV_NO_ERROR)
            {
                MessageBox.Show("DeviceNet, Open(), DevReset() Error");
                return(nRet);
            }

            nRet = XWin32Hilscher.DevSetHostState(0, XWin32Hilscher.HOST_READY, 0);
            if (nRet != XWin32Hilscher.DRV_NO_ERROR)
            {
                MessageBox.Show("DeviceNet, Open(), DevSetHostState() Error");
                return(nRet);
            }
            #endregion
            this.usMaxInputAddress = usMaxInputAddress;
            usInputBuffer          = new ushort[usMaxInputAddress / 2 + 1];

            this.usMaxOutputAddress = usMaxOutputAddress;
            usOutputBuffer          = new ushort[usMaxOutputAddress / 2 + 1];

            bOpen = true;

            return(1);
        }