⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 program.cs

📁 VS2005下开发的基于C#版本的GPRS拨号软件,适用用华为和西门子的MODOEM
💻 CS
字号:
/// Copyright(c) Emtronix Inc.
/// 
/// 程序作者:李林 leeleen@emtronix.com
///                leeleen@sjtu.org
///                leeleen@263.net
/// 
/// 最后修改时间:2008-05-23 汶川8级地震余震期间
/// +86-28-86180660
/// 成都英创信息技术有限公司
/// Emtronix是英创公司的注册商标
/// 本程序免费提供给购买英创公司EM9000产品的客户使用
/// 未购买英创公司产品的客户或未获得英创授权的客户不得使用
/// 
/// 本程序注意事项:
/// (1)由于调用WIN32 API RASDial需要用到不安全代码,需要在『项目』—『属性』—『生成』里面选择“允许不安全代码”;
/// (2)上电过程需要调用EM9000_ISA_DLL.dll动态链接库,所以请将该动态链接库下载到目标平台的相关目录里;
/// (3)GPRS模块上电过程在Program.cs里面实现(调用ISA动态链接库),拨号过程在Form1.cs里面实现;
/// (4)本程序上电过程适用于华为GTM9000 GPRS模块。

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.Threading;

namespace EM9000_GPRS_Dial
{
    static class Program
    {
        #region ISA-DIO动态链接库函数声明

        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?InitEM9000ISA@@YAHXZ")]  ///使用Win32的DLL动态链接库EM9000_ISA_DLL.dll里的函数
        public static extern int InitEM9000ISA();
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?Swap2DIO@@YAHH@Z")]
        public static extern int Swap2DIO(int Port);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?Swap2ISA@@YAHH@Z")]
        public static extern int Swap2ISA(int Port);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_WRITE@@YAHHIE@Z")]
        public static extern int EM9000_WRITE(int nSeg, uint nOffset, byte Value);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_READ@@YAEHI@Z")]
        public static extern byte EM9000_READ(int nSeg, uint nOffset);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?SetPortDir@@YAHHH@Z")]
        public static extern int SetPortDir(int Port, int Mode);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?GetPortState@@YAHH@Z")]
        public static extern int GetPortState(int Port);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_INB@@YAEH@Z")]
        public static extern byte EM9000_INB(int Port);
        [DllImport("EM9000_ISA_DLL.dll", EntryPoint = "?EM9000_OUTB@@YAHHE@Z")]
        public static extern int EM9000_OUTB(int Port, byte Value);

        const int ISA_P1 = 1;   ///相当于VC里面的#define ISA_P1 1;
        const int ISA_P2 = 2;
        const int ISA_P3 = 3;
        const int ISA_P4 = 4;
        const int ISA_P5 = 5;
        const int ISA_CS0n = 0;
        const int ISA_CS1n = 1;
        #endregion
        /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [MTAThread]
        static void Main()
        {
            int i1 = InitEM9000ISA();
            if (i1 < 0)
            {
                MessageBox.Show("EM9000 ISA初始化失败!!!");
            }
            else
            {
                i1 = Swap2DIO(ISA_P4);		// P4设为IO模式
            }
            i1 = SetPortDir(ISA_P4, 0);   // set P4 Dout mode

            EM9000_OUTB(ISA_P4, 0);
            Thread.Sleep(2000);

            GPRS_Reset();
            Thread.Sleep(10000);

            Application.Run(new GPRS_FORM());
        }

        // GPRS_STB: P4 - D3  GPRS_AUX: P4 - D2
        static void GPRS_PowerOn()
        {
            EM9000_OUTB(ISA_P4, 0);
            EM9000_OUTB(ISA_P4, 0x08);
            Thread.Sleep(200);
            EM9000_OUTB(ISA_P4, 0);
            Thread.Sleep(200);
        }

        static void GPRS_PowerOff()
        {
            EM9000_OUTB(ISA_P4, 0x08);    // GPRS_STB
            Thread.Sleep(3000);
            EM9000_OUTB(ISA_P4, 0);    // GPRS_STB
        }

        static void GPRS_Reset()
        {
            EM9000_OUTB(ISA_P4, 0x04);    // GPRS_AUX  
            Thread.Sleep(200);
            EM9000_OUTB(ISA_P4, 0);
        }
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -