杰维滑屏设备二次开发包(动态链接库使用说明)

2020-05-26 18:04:19 管理员 165
文件版本 :1.0.2.0
立即下载




CCO4动态链接库使用说明

 

(版本:1.0.2.0)

 

 

 

 

 

 

 

 

 

 

编写:       王瑞恩       

审核                    

 

 

 

 

 

 

○二○年五月二十日


一、动态库文件:

1、CC04Sdk.dll 动态库主文件32位)

2、CC04Sdk.key 控制器授权文件;

* 调用时必须把两个文件同时复制到项目主程序同一目录下,否则动态库将调用失败。

 

二、函数说明:

1、函数名:OpenCom

功能说明:初始化通信串口

函数原型:int __stdcall OpenCom(DWORD dwPort)

输入参数:dwPort:通信串口号(1~1024)

输出参数:无

值:0:初始化失败

   1:初始化成功

 

2、函数名:CloseCom

功能说明:关闭通信串口

函数原型:void __stdcall CloseCom(void)

输入参数:无

输出参数:无

值:无

 

3、函数名:DllBind

功能说明:绑定控制器授权文件

函数原型:int __stdcall DllBind(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:1:绑定成功

  -1:通信串口未初始化

  -2:制器地址无效

  -3:控制器通信失败

  -4:未找到授权文件

  -5:授权文件无效

  -6:授权文件与控制器不匹配

  -7:系统时间异常

  -8:授权文件已过期

 -99:未知错误

* 初始化通信串口后,必须先调用此函数,绑定成功后,其他函数才能使用。

 

4、函数名:IsComOpen

功能说明:检查通信串口是否初始化

函数原型:int __stdcall IsComOpen(void)

输入参数:无

输出参数:无

值:0:未初始化

   1:已初始化

 

5、函数名:SetDefault

功能说明:控制器恢复出厂设置

函数原型:int __stdcall SetDefault(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(0-16)[0为广播模式,慎用!]

输出参数:无

值:0:调用失败

   1:调用成功

* nSlaver参数为0时,函数执行为广播模式,既连接在同一总线上的所有控制器将同时被恢复出厂设置;执行此函数成功后,被恢复出厂设置的控制器地址同时被恢复为1。

 

6、函数名:GetSerial

功能说明:获取控制器序列号

函数原型:int __stdcall GetSerial(unsigned int nSlaver,

   char** szID)

输入参数:nSlaver:控制器地址(1-16)   

输出参数:szID:控制器序列号

值:0:调用失败

   1:调用成功

 

7、函数名:GetSwichState

功能说明:获取控制器开关状态

函数原型:int __stdcall GetSwichState(unsigned int nSlaver,

char** szSwichState)

输入参数:nSlaver:控制器地址(1-16)

输出参数:szSwichState:控制器开关状态(顺序:从“左→右” 对应

  “开关1→开关6”;0:关;1:开)

值:0:调用失败

   1:调用成功

 

8、函数名:GetRightExtremity

功能说明:获取控制器右极限状态

函数原型:int __stdcall GetRightExtremity(unsigned int nSlaver,

int* nLimit)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nLimit:控制器右极限状态(0:断开;1:闭合)

值:0:调用失败

   1:调用成功

 

9、函数名:GetLeftExtremity

功能说明:获取控制器左极限状态

函数原型:int __stdcall GetLeftExtremity(unsigned int nSlaver,

   int* nLimit)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nLimit:控制器左极限状态(0:断开;1:闭合)

值:0:调用失败

   1:调用成功

 

10、函数名:GetRightLimit

功能说明:获取控制器右限状态

函数原型:int __stdcall GetRightLimit(unsigned int nSlaver,

int* nLimit)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nLimit:控制器右限状态(0:断开;1:闭合)

值:0:调用失败

   1:调用成功

 

11、函数名:GetLeftLimit

功能说明:获取控制器左限状态

函数原型:int __stdcall GetLeftLimit(unsigned int nSlaver,

  int* nLimit)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nLimit:控制器左限状态(0:断开;1:闭合)

值:0:调用失败

   1:调用成功

 

12、函数名:GetRunState

功能说明:获取控制器运行状态

函数原型:int __stdcall GetRunState(unsigned int nSlaver,

 int* nRunState)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nRunState:控制器运行状态(0-停止;1-自动;2-左移;3-右移)

值:0:调用失败

   1:调用成功

 

13、函数名:GetRemoteKeyState

功能说明:获取控制器遥控器按键状态

函数原型:int __stdcall GetRemoteKeyState(unsigned int nSlaver,

int* nKeyState)

输入参数:nSlaver:控制器地址(1-16)

输出参数:nKeyState:控制器按键状态(0-无按键;1-后退键;2-前进键;

 3-自动键;4-停止键)

值:0:调用失败

   1:调用成功

* 每次遥控器按钮新状态只存在3秒时间,3秒后自动恢复为0。

 

14、函数名:GetBiosDate

功能说明:获取控制器BIOS日期

函数原型:int __stdcall GetBiosDate(unsigned int nSlaver,

 char** szDate)

输入参数:nSlaver:控制器地址(1-16)

输出参数:szDate:控制器BIOS日期

值:0:调用失败

   1:调用成功

 

15、函数名:GetFactroyDate

功能说明:获取控制器出厂日期

函数原型:int __stdcall GetFactroyDate(unsigned int nSlaver,

 char** szDate)

输入参数:nSlaver:控制器地址(1-16)

输出参数:szDate:控制器出厂日期

值:0:调用失败

   1:调用成功

 

16、函数名:GetCurrentPoint

功能说明:获取当前坐标(cm)

函数原型:int __stdcall GetCurrentPoint(unsigned int nSlaver,

  float* fPoint)

输入参数:nSlaver:控制器地址(1-16)

输出参数:fPoint:当前坐标(cm)

值:0:调用失败

   1:调用成功

 

17、函数名:SetInit

功能说明:初始化控制器(开关全关,停止移动)

函数原型:int __stdcall SetInit(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

18、函数名:SetMoveLeft

功能说明:发送向左移动指令

函数原型:int __stdcall SetMoveLeft(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

19、函数名:SetMoveRight

功能说明:发送向右移动指令

函数原型:int __stdcall SetMoveRight(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

20、函数名:SetMoveAuto

功能说明:发送自动移动指令

函数原型:int __stdcall SetMoveAuto(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

21、函数名:SetMoveStop

功能说明:发送停止移动指令

函数原型:int __stdcall SetMoveStop(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

22、函数名:SetSwichAllOff

功能说明:发送控制器开关全关指令

函数原型:int __stdcall SetSwichAllOff(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

23、函数名:SetSwichAllOn

功能说明:发送控制器开关全开指令

函数原型:int __stdcall SetSwichAllOn(unsigned int nSlaver)

输入参数:nSlaver:控制器地址(1-16)

输出参数:无

值:0:调用失败

   1:调用成功

 

24、函数名:SetSwichState

功能说明:设置控制器开关状态

函数原型:int __stdcall SetSwichState(unsigned int nSlaver,

unsigned int nSwich,

unsigned int nState)

输入参数:nSlaver:控制器地址(1-16)

nSwich:开关顺序号(1-6)

nState:开关状态(0:关;1:开)

输出参数:无

值:0:调用失败

   1:调用成功

 

 


三、动态库调用流程:

1、初始化通信串口(OpenCom);

2、绑定控制器授权文件(DllBind);

3、调用函数(…);

4、调用函数(…);

5、……

6、关闭通信串口(CloseCom)。

 

四、调用示例(C#

1、函数声明:

 

[DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "OpenCom")]

public static extern int OpenCom(int iPort);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "CloseCom")]

    public static extern void CloseCom();

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "DllBind")]

    public static extern int DllBind(uint iSlaver);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "IsComOpen")]

    public static extern int IsComOpen();

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "GetSerial")]

    public static extern int GetSerial(uint iSlaver, ref string strId);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "GetRunState")]

    public static extern int GetRunState(uint iSlaver, ref int iRunState);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "GetCurrentPoint")]

    public static extern int GetCurrentPoint(uint iSlaver, ref float fPoint);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "SetInit")]

    public static extern int SetInit(uint iSlaver);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "SetMoveLeft")]

    public static extern int SetMoveLeft(uint iSlaver);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "SetMoveRight")]

    public static extern int SetMoveRight(uint iSlaver);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "SetMoveAuto")]

    public static extern int SetMoveAuto(uint iSlaver);

 

    [DllImport("CC04Sdk.dll", CharSet = CharSet.Ansi, EntryPoint = "SetMoveStop")]

    public static extern int SetMoveStop(uint iSlaver);

 

2、调用示例:

 

      var iRet = CC04Sdk.OpenCom(7);

      if (iRet != 1)

      {

        MessageBox.Show(@"通信串口初始化失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

        return;

      }

      MessageBox.Show(@"通信串口初始化成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

 

      iRet = CC04Sdk.DllBind(1);

      if (iRet == 1)

      {

        timer1.Enabled = true;

        MessageBox.Show(@"绑定控制器授权文件成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"绑定控制器授权文件失败!返回码:" + iRet, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      iRet = CC04Sdk.SetInit(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"初始化控制器成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"初始化控制器失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      var  str = "";

      iRet = CC04Sdk.GetSerial(1, ref str);

      if (iRet == 1)

      {

        MessageBox.Show(@"获取控制器序列号成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

        MessageBox.Show(@"序列号:" + str, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"获取控制器序列号失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      var iRun = -1;

      iRet = CC04Sdk.GetRunState(1, ref iRun);

      if (iRet == 1)

      {

        MessageBox.Show(@"获取控制器运行状态成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

        MessageBox.Show(@"运行状态:" + iRun, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"获取控制器运行状态失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      float fRet = 0;

 iRet = CC04Sdk.GetCurrentPoint(1, ref fRet);

      if (iRet == 1)

      {

        MessageBox.Show(@"获取当前坐标成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

        MessageBox.Show(@"当前坐标:" + fRet.ToString("0.0"), @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"获取当前坐标失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveLeft(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"发送向左移动指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"发送向左移动指令失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveRight(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"发送向右移动指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"发送向右移动指令失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveAuto(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"发送自动动指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"发送自动动指令失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveStop(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"发送停止动指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"发送停止动指令失败!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      CC04Sdk.CloseCom();