using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;

namespace WagweiCSharpDIO_AWP_ASB
{
public class Wagwei_asbDio
{
//**************************************************************
//asbDioInitialize
[DllImport("asbDio.dll")]
public static extern int asbDioInitialize();

public const string asbDioInitializeRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-2 ASBDIO_RESOURCE_ERROR
//-3 ASBDIO_TIMEOUT_ERROR
//-5 ASBDIO_DRIVER_ERROR
//-7 ASBDIO_THREAD_ERROR
//-8 ASBDIO_NO_TARGET_BOARD
//-9 ASBDIO_NOT_SUPPORT_FPGA";

//asbDioFinalize
[DllImport("asbDio.dll")]
public static extern int asbDioFinalize();

public const string asbDioFinalizeRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-5 ASBDIO_DRIVER_ERROR
//-6 ASBDIO_EVENT_ERROR
//-7 ASBDIO_THREAD_ERROR";

//**************************************************************
//asbDioGetDeviceInfo
[DllImport("asbDio.dll")]
public static extern int asbDioGetDeviceInfo(out DEVICE_INFO pDevInfo);

public struct DEVICE_INFO
{
long FpgaVer;
long BoardRev;
long DriverVer;
long LibraryVer;
long BitMax;
}

public const string asbDioGetDeviceInfoRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-4 ASBDIO_INVALID_PARAMETER
//-5 ASBDIO_DRIVER_ERROR";

//**************************************************************
//asbDioRead
[DllImport("asbDio.dll")]
public static extern int asbDioRead(out uint pRdata);

//pRdata LPDWORD

public const string asbDioReadRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioWrite
[DllImport("asbDio.dll")]
public static extern int asbDioWrite(uint Wdata, uint Mask);

//Wdata DWORD
//Mask DWORD

//事例
//DWORD Wdata (0 << 2) | (1 << 1) | (1 << 0); //0,1为High;2为Low
//DWORD Mask (1 << 2) | (1 << 1) | <1 << 0); //0,1,2有效

public const string asbDioWriteRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioReadBack
[DllImport("asbDio.dll")]
public static extern int asbDioReadBack(out uint pRdata);

//pRdata LPDWORD

public const string asbDioReadBackRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//**************************************************************
//asbDioSetIntMask
[DllImport("asbDio.dll")]
public static extern int asbDioSetIntMask(uint SetMask);

//SetMask DWORD

public const string asbDioSetIntMaskRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioGetIntMask
[DllImport("asbDio.dll")]
public static extern int asbDioGetIntMask(out uint pGetMask);

//pGetMask LPWORD

public const string asbDioGetIntMaskRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioSetIntPolarity
[DllImport("asbDio.dll")]
public static extern int asbDioSetIntPolarity(uint SetPolarity);

//SetPolarity DWORD

public const string asbDioSetIntPolarityRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioGetIntPolarity
[DllImport("asbDio.dll")]
public static extern int asbDioGetIntPolarity(out uint pGetPolarity);

//pGetPolarity LPDWORD

public const string asbDioGetIntPolarityRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioRegistCallback
[DllImport("asbDio.dll")]
public static extern int asbDioRegistCallback(UserCallBack HookFunc);

public const string asbDioRegistCallbackRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST";

public delegate void UserCallBack(INT_BUFFER intBuffer);

public struct INT_BUFFER
{
ulong ulPin;
ulong ulPort;
ulong ulTime;
}

//**************************************************************
//asbDioReadOnBoardTimer
[DllImport("asbDio.dll")]
public static extern int asbDioReadOnBoardTimer(out uint pTimerCount);

//pTimerCount LPDWORD

public const string asbDioReadOnBoardTimerRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//**************************************************************
//asbDioSetDigitalFilter
[DllImport("asbDio.dll")]
public static extern int asbDioSetDigitalFilter(uint SetFilter);

//SetFilter DWORD

public const string asbDioSetDigitalFilterRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

//asbDioGetDigitalFilter
[DllImport("asbDio.dll")]
public static extern int asbDioGetDigitalFilter(out uint pGetFilter);

//pGetFilter LPDWORD

public const string asbDioGetDigitalFilterRtn = @"
// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER";

// 0 ASBDIO_NO_ERROR
//-1 ASBDIO_INVALID_REQUEST
//-2 ASBDIO_RESOURCE_ERROR
//-3 ASBDIO_TIMEOUT_ERROR
//-4 ASBDIO_INVALID_PARAMETER
//-5 ASBDIO_DRIVER_ERROR
//-6 ASBDIO_EVENT_ERROR
//-7 ASBDIO_THREAD_ERROR
//-8 ASBDIO_NO_TARGET_BOARD
//-9 ASBDIO_NOT_SUPPORT_FPGA

}
}

asbDio (asbDio.dll)的更多相关文章

  1. dll文件32位64位检测工具以及Windows文件夹SysWow64的坑

    自从操作系统升级到64位以后,就要不断的需要面对32位.64位的问题.相信有很多人并不是很清楚32位程序与64位程序的区别,以及Program Files (x86),Program Files的区别 ...

  2. C#创建dll类库

    类库让我们的代码可复用,我们只需要在类库中声明变量一次,就能在接下来的过程中无数次地使用,而无需在每次使用前都要声明它.这样一来,就节省了我们的内存空间.而想要在类库添加什么类,还需取决于类库要实现哪 ...

  3. 关于Linux和Windows下部署mysql.data.dll的注册问题

    mysql ado.net connector下载地址: http://dev.mysql.com/downloads/connector/net/ 选择版本: Generally Available ...

  4. Windows平台Go调用DLL的坑

    最近的项目中,使用了GO来开发一些服务中转程序.业务比较简单,但是有一些业务需要复用原有C++开发的代码.而在WINDOWS,用CGO方式来集成C/C++代码并不是太方便.所以用DLL把C++的代码封 ...

  5. C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁

    系列文章 C#开发奇技淫巧一:调试windows系统服务 C#开发奇技淫巧二:根据dll文件加载C++或者Delphi插件 C#开发奇技淫巧三:把dll放在不同的目录让你的程序更整洁 程序目录的整理 ...

  6. .Net使用Newtonsoft.Json.dll(JSON.NET)对象序列化成json、反序列化json示例教程

    JSON作为一种轻量级的数据交换格式,简单灵活,被很多系统用来数据交互,作为一名.NET开发人员,JSON.NET无疑是最好的序列化框架,支持XML和JSON序列化,高性能,免费开源,支持LINQ查询 ...

  7. 使用Newtonsoft.Json.dll(JSON.NET)动态解析JSON、.net 的json的序列化与反序列化(一)

    在开发中,我非常喜欢动态语言和匿名对象带来的方便,JSON.NET具有动态序列化和反序列化任意JSON内容的能力,不必将它映射到具体的强类型对象,它可以处理不确定的类型(集合.字典.动态对象和匿名对象 ...

  8. ILMerge合并多个DLL

    序言 如果你的项目要提供多个dll给别人用,那么不妨让你的dll合并为一个,让别人看起来简洁,引用起来不会过于繁琐. 本篇比较少,但也算是比较实用吧. 下载微软的辅助工具ILMerge Imerge下 ...

  9. VS2010中dll不可用问题

    最近做项目的时候,深圳那边提供了一个算法.算法在那边跑的好的很,但是在我这边怎么跑都跑不起来,总是报错:说找不到dll. 1.第一种想法:找不到dll,是不是dll放的位置不对.找了一下目录,导入的路 ...

随机推荐

  1. Union-Find 并查集算法

    一.动态连通性(Dynamic Connectivity) Union-Find 算法(中文称并查集算法)是解决动态连通性(Dynamic Conectivity)问题的一种算法.动态连通性是计算机图 ...

  2. django--JWT认证

    目录 JWT认证 JWT简介 安装 djang-jwt开发 配置 手动签发jwt token 基于django_restframework-jwt的全局认证 全局启用 局部启用禁用:任何一个cbv类首 ...

  3. ES6 对象的拓展(三)

    一.对象中的属性及方法1.属性属性简写:当对象属性名与属性值变量相同可以简写eg: let [name,age]=['nzc','18']; let obj = { name:name, age:ag ...

  4. 攻防世界 高手进阶区 web cat

    php cURL CURLOPT_SAFE_UPLOAD django DEBUG mode Django使用的是gbk编码,超过%F7的编码不在gbk中有意义 当 CURLOPT_SAFE_UPLO ...

  5. B端产品经理的金字塔能力模型

    工作这几年,时长思考,作为B端产品经理自己应该具备什么样的能力? 虽然工作依旧在有条不紊的进行,但是时常会陷入到对知识或者能力的焦虑当中.特别时是工作三五年,产品经理进阶门槛时. 虽然产品经理的能力是 ...

  6. Hyper-v,装XP的时候没有驱动上不了网,装这个集成服务(vmguest.iso )就可以了

    Win10自带的Hyper-v,装XP的时候没有驱动上不了网,装这个集成服务(vmguest.iso )就可以了 安装后无法识别显卡及网卡设备,不能与虚拟网络通讯,设备管理器中显示三个未知设备. 在X ...

  7. 线上IIS应用程序池自动关闭

    事情的经过是这样的: 下午下班的铃声已经敲响,我已经整装待发.突然同事说某水司的微信公众号不能正常访问了.点击营业厅,直接提示Service Unavailable. 立马远程服务器查看,IIS微信公 ...

  8. MySQL索引(九)

    一.索引介绍 1.1 什么是索引 索引就好比一本书的目录,它会让你更快的找到内容. 让获取的数据更有目的性,从而提高数据库检索数据的性能. 分为以下四种: BTREE:B+树索引(基本上都是使用此索引 ...

  9. C语言实现归并排序

    #include<stdio.h> #define MAXN 100 //A[p,q] A[q+1,r]是两个有序数组,想办法把他们结合成一个有序数组 void merge(int A[] ...

  10. 简述 asynio模块的作用和应用场景。

    asyncio是Python 3.4版本引入的标准库,直接内置了对异步IO的支持. asyncio的编程模型就是一个消息循环.我们从asyncio模块中直接获取一个EventLoop的引用, 然后把需 ...