91丝袜人妻一区二区三区 - 91久久青青青国产免费 - 久久精品这里只有国产中文精品 - 日韩理论无码免费观看

杰維滑屏設(shè)備二次開發(fā)包(動態(tài)鏈接庫使用說明)

2020-05-26 18:04:19 管理員 214
文件版本 :1.0.2.0
立即下載




CCO4動態(tài)鏈接庫使用說明

 

(版本:1.0.2.0)

 

 

 

 

 

 

 

 

 

 

編寫:       王瑞恩       ?

審核                    ?

 

 

 

 

 

 

○二○年五月二十日


一、動態(tài)庫文件:

1、CC04Sdk.dll 動態(tài)庫主文件32位);

2、CC04Sdk.key 控制器授權(quán)文件;

* 調(diào)用時必須把兩個文件同時復(fù)制到項目主程序同一目錄下,否則動態(tài)庫將調(diào)用失敗。

 

二、函數(shù)說明:

1、函數(shù)名:OpenCom

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

函數(shù)原型:int __stdcall OpenCom(DWORD dwPort)

輸入?yún)?shù):dwPort:通信串口號(1~1024)

輸出參數(shù):無

值:0:初始化失敗

   1:初始化成功

 

2、函數(shù)名:CloseCom

功能說明:關(guān)閉通信串口

函數(shù)原型:void __stdcall CloseCom(void)

輸入?yún)?shù):無

輸出參數(shù):無

值:無

 

3、函數(shù)名:DllBind

功能說明:綁定控制器授權(quán)文件

函數(shù)原型:int __stdcall DllBind(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:1:綁定成功

  -1:通信串口未初始化

  -2:制器地址無效

  -3:控制器通信失敗

  -4:未找到授權(quán)文件

  -5:授權(quán)文件無效

  -6:授權(quán)文件與控制器不匹配

  -7:系統(tǒng)時間異常

  -8:授權(quán)文件已過期

 -99:未知錯誤

* 初始化通信串口后,必須先調(diào)用此函數(shù),綁定成功后,其他函數(shù)才能使用。

 

4、函數(shù)名:IsComOpen

功能說明:檢查通信串口是否初始化

函數(shù)原型:int __stdcall IsComOpen(void)

輸入?yún)?shù):無

輸出參數(shù):無

值:0:未初始化

   1:已初始化

 

5、函數(shù)名:SetDefault

功能說明:控制器恢復(fù)出廠設(shè)置

函數(shù)原型:int __stdcall SetDefault(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(0-16)[0為廣播模式,慎用!]

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

* nSlaver參數(shù)為0時,函數(shù)執(zhí)行為廣播模式,既連接在同一總線上的所有控制器將同時被恢復(fù)出廠設(shè)置;執(zhí)行此函數(shù)成功后,被恢復(fù)出廠設(shè)置的控制器地址同時被恢復(fù)為1。

 

6、函數(shù)名:GetSerial

功能說明:獲取控制器序列號

函數(shù)原型:int __stdcall GetSerial(unsigned int nSlaver,

   char** szID)

輸入?yún)?shù):nSlaver:控制器地址(1-16)   

輸出參數(shù):szID:控制器序列號

值:0:調(diào)用失敗

   1:調(diào)用成功

 

7、函數(shù)名:GetSwichState

功能說明:獲取控制器開關(guān)狀態(tài)

函數(shù)原型:int __stdcall GetSwichState(unsigned int nSlaver,

char** szSwichState)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):szSwichState:控制器開關(guān)狀態(tài)(順序:從“左→右” 對應(yīng)

  “開關(guān)1→開關(guān)6”;0:關(guān);1:開)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

8、函數(shù)名:GetRightExtremity

功能說明:獲取控制器右極限狀態(tài)

函數(shù)原型:int __stdcall GetRightExtremity(unsigned int nSlaver,

int* nLimit)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nLimit:控制器右極限狀態(tài)(0:斷開;1:閉合)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

9、函數(shù)名:GetLeftExtremity

功能說明:獲取控制器左極限狀態(tài)

函數(shù)原型:int __stdcall GetLeftExtremity(unsigned int nSlaver,

   int* nLimit)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nLimit:控制器左極限狀態(tài)(0:斷開;1:閉合)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

10、函數(shù)名:GetRightLimit

功能說明:獲取控制器右限狀態(tài)

函數(shù)原型:int __stdcall GetRightLimit(unsigned int nSlaver,

int* nLimit)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nLimit:控制器右限狀態(tài)(0:斷開;1:閉合)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

11、函數(shù)名:GetLeftLimit

功能說明:獲取控制器左限狀態(tài)

函數(shù)原型:int __stdcall GetLeftLimit(unsigned int nSlaver,

  int* nLimit)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nLimit:控制器左限狀態(tài)(0:斷開;1:閉合)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

12、函數(shù)名:GetRunState

功能說明:獲取控制器運行狀態(tài)

函數(shù)原型:int __stdcall GetRunState(unsigned int nSlaver,

 int* nRunState)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nRunState:控制器運行狀態(tài)(0-停止;1-自動;2-左移;3-右移)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

13、函數(shù)名:GetRemoteKeyState

功能說明:獲取控制器遙控器按鍵狀態(tài)

函數(shù)原型:int __stdcall GetRemoteKeyState(unsigned int nSlaver,

int* nKeyState)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):nKeyState:控制器按鍵狀態(tài)(0-無按鍵;1-后退鍵;2-前進鍵;

 3-自動鍵;4-停止鍵)

值:0:調(diào)用失敗

   1:調(diào)用成功

* 每次遙控器按鈕新狀態(tài)只存在3秒時間,3秒后自動恢復(fù)為0。

 

14、函數(shù)名:GetBiosDate

功能說明:獲取控制器BIOS日期

函數(shù)原型:int __stdcall GetBiosDate(unsigned int nSlaver,

 char** szDate)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):szDate:控制器BIOS日期

值:0:調(diào)用失敗

   1:調(diào)用成功

 

15、函數(shù)名:GetFactroyDate

功能說明:獲取控制器出廠日期

函數(shù)原型:int __stdcall GetFactroyDate(unsigned int nSlaver,

 char** szDate)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):szDate:控制器出廠日期

值:0:調(diào)用失敗

   1:調(diào)用成功

 

16、函數(shù)名:GetCurrentPoint

功能說明:獲取當(dāng)前坐標(biāo)(cm)

函數(shù)原型:int __stdcall GetCurrentPoint(unsigned int nSlaver,

  float* fPoint)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):fPoint:當(dāng)前坐標(biāo)(cm)

值:0:調(diào)用失敗

   1:調(diào)用成功

 

17、函數(shù)名:SetInit

功能說明:初始化控制器(開關(guān)全關(guān),停止移動)

函數(shù)原型:int __stdcall SetInit(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

18、函數(shù)名:SetMoveLeft

功能說明:發(fā)送向左移動指令

函數(shù)原型:int __stdcall SetMoveLeft(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

19、函數(shù)名:SetMoveRight

功能說明:發(fā)送向右移動指令

函數(shù)原型:int __stdcall SetMoveRight(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

20、函數(shù)名:SetMoveAuto

功能說明:發(fā)送自動移動指令

函數(shù)原型:int __stdcall SetMoveAuto(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

21、函數(shù)名:SetMoveStop

功能說明:發(fā)送停止移動指令

函數(shù)原型:int __stdcall SetMoveStop(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

22、函數(shù)名:SetSwichAllOff

功能說明:發(fā)送控制器開關(guān)全關(guān)指令

函數(shù)原型:int __stdcall SetSwichAllOff(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

23、函數(shù)名:SetSwichAllOn

功能說明:發(fā)送控制器開關(guān)全開指令

函數(shù)原型:int __stdcall SetSwichAllOn(unsigned int nSlaver)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

24、函數(shù)名:SetSwichState

功能說明:設(shè)置控制器開關(guān)狀態(tài)

函數(shù)原型:int __stdcall SetSwichState(unsigned int nSlaver,

unsigned int nSwich,

unsigned int nState)

輸入?yún)?shù):nSlaver:控制器地址(1-16)

nSwich:開關(guān)順序號(1-6)

nState:開關(guān)狀態(tài)(0:關(guān);1:開)

輸出參數(shù):無

值:0:調(diào)用失敗

   1:調(diào)用成功

 

 


三、動態(tài)庫調(diào)用流程:

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

2、綁定控制器授權(quán)文件(DllBind);

3、調(diào)用函數(shù)(…);

4、調(diào)用函數(shù)(…);

5、……

6、關(guān)閉通信串口(CloseCom)。

 

四、調(diào)用示例(C#

1、函數(shù)聲明:

 

[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、調(diào)用示例:

 

      var iRet = CC04Sdk.OpenCom(7);

      if (iRet != 1)

      {

        MessageBox.Show(@"通信串口初始化失?。?/span>", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

        return;

      }

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

 

      iRet = CC04Sdk.DllBind(1);

      if (iRet == 1)

      {

        timer1.Enabled = true;

        MessageBox.Show(@"綁定控制器授權(quán)文件成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"綁定控制器授權(quán)文件失敗!返回碼:" + iRet, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      iRet = CC04Sdk.SetInit(1);

      if (iRet == 1)

      {

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

      }

      else

      {

        MessageBox.Show(@"初始化控制器失?。?/span>", @"提示", 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(@"獲取控制器運行狀態(tài)成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

        MessageBox.Show(@"運行狀態(tài):" + iRun, @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"獲取控制器運行狀態(tài)失??!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      float fRet = 0;

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

      if (iRet == 1)

      {

        MessageBox.Show(@"獲取當(dāng)前坐標(biāo)成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

        MessageBox.Show(@"當(dāng)前坐標(biāo):" + fRet.ToString("0.0"), @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"獲取當(dāng)前坐標(biāo)失??!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveLeft(1);

      if (iRet == 1)

      {

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

      }

      else

      {

        MessageBox.Show(@"發(fā)送向左移動指令失敗!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveRight(1);

      if (iRet == 1)

      {

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

      }

      else

      {

        MessageBox.Show(@"發(fā)送向右移動指令失??!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveAuto(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"發(fā)送自動動指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"發(fā)送自動動指令失??!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

  iRet = CC04Sdk.SetMoveStop(1);

      if (iRet == 1)

      {

        MessageBox.Show(@"發(fā)送停止動指令成功!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

      }

      else

      {

        MessageBox.Show(@"發(fā)送停止動指令失敗!", @"提示", MessageBoxButtons.OK, MessageBoxIcon.Warning);

      }

 

      CC04Sdk.CloseCom();