明华读卡器工具类

这个代码段定义了一个C#类MwTOOLS,包含了多个DllImport方法,用于调用MWRF32.dll中的函数,如初始化读卡器设备(rf_init)、获取设备状态(rf_request,rf_request_std,rf_anticoll,rf_select等)以及执行读写和控制操作。
摘要由CSDN通过智能技术生成

 public   class MwTOOLS
    {
        [DllImport("mwrf32.dll", EntryPoint = "rf_init", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false, CallingConvention = CallingConvention.StdCall)]
        //初始化读卡器设备
        public static extern int rf_init(Int16 port, int baud);
        [DllImport("mwrf32.dll", EntryPoint = "rf_request", SetLastError = true,    CharSet = CharSet.Auto, ExactSpelling = false,    CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_request(int icdev, int mode, out UInt16 tagtype);

        [DllImport("mwrf32.dll", EntryPoint = "rf_request_std", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_request_std(int icdev, int mode, out UInt16 tagtype);

        [DllImport("mwrf32.dll", EntryPoint = "rf_anticoll", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_anticoll(int icdev, int bcnt, out uint snr);

        [DllImport("mwrf32.dll", EntryPoint = "rf_select", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_select(int icdev, uint snr, out byte size);
            //说明蜂鸣
        public static extern Int16 rf_beep(int icdev, int msec);
        [DllImport("mwrf32.dll", EntryPoint = "rf_authentication", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_authentication(int icdev, int mode, int secnr);

        [DllImport("mwrf32.dll", EntryPoint = "rf_authentication_2", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_authentication_2(int icdev, int mode, int keynr, int blocknr);

        [DllImport("mwrf32.dll", EntryPoint = "rf_read", SetLastError = true, CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_read(int icdev, int blocknr, [MarshalAs(UnmanagedType.LPArray)] byte[] databuff);

        [DllImport("mwrf32.dll", EntryPoint = "rf_read_hex", SetLastError = true,
        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_read_hex(int icdev, int blocknr, [MarshalAs(UnmanagedType.LPArray)] byte[] databuff);

        [DllImport("mwrf32.dll", EntryPoint = "rf_write_hex", SetLastError = true,
        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_write_hex(int icdev, int blocknr, [MarshalAs(UnmanagedType.LPArray)] byte[] databuff);

        [DllImport("mwrf32.dll", EntryPoint = "rf_write", SetLastError = true,
        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_write(int icdev, int blocknr, [MarshalAs(UnmanagedType.LPArray)] byte[] databuff);

        [DllImport("mwrf32.dll", EntryPoint = "rf_halt", SetLastError = true,
        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_halt(int icdev);

        [DllImport("mwrf32.dll", EntryPoint = "rf_initval", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_initval(int icdev, int blocknr, uint val);

        [DllImport("mwrf32.dll", EntryPoint = "rf_readval", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_readval(int icdev, int blocknr, out uint val);

        [DllImport("mwrf32.dll", EntryPoint = "rf_increment", SetLastError = true,
        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_increment(int icdev, int blocknr, uint val);

        [DllImport("mwrf32.dll", EntryPoint = "rf_decrement", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_decrement(int icdev, int blocknr, uint val);

        [DllImport("mwrf32.dll", EntryPoint = "rf_restore", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_restore(int icdev, int blocknr);

        [DllImport("mwrf32.dll", EntryPoint = "rf_transfer", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_transfer(int icdev, int blocknr);

        [DllImport("mwrf32.dll", EntryPoint = "rf_reset", SetLastError = true,        CharSet = CharSet.Auto, ExactSpelling = false,
        CallingConvention = CallingConvention.StdCall)]
        //说明: 返回设备当前状态
        public static extern Int16 rf_reset(int icdev, int msec);

    }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值