一.硬件介紹
使用正運動控制卡ECI1408進行學習,使用正運動函數庫進行設置,并參考網絡視頻等進行學習記錄,侵權刪除.
二.使用C#創建連接界面
三.創建運動卡類
3.1.創建IP連接字段
private string IP; //連接IP
public Inptr IPHandle;//創建正運動控制卡網絡連接句柄
3.2.創建操作類
創建操作成功與否操作類,對操作結果進行記錄
public class OperationResult
{//創建屬性public bool IsSucess{get;set;}public string ErrorMsg{get{return ErrorMsg;}set{ErrorMsg=string.Empty}}//創建成功的信息,類中創建靜態資源,可以通過類名直接調用,不用進行實例化對象public static OperationResult CreateSuccessResult(){ return new OperationResult(){IsSucess=true;ErrorMsg="sucess";}}//創建失敗的信息public static OperationResult CreateFailResult(){ return new OperationResult(){IsSucess=false;ErrorMsg="Fail";}}}
3.4創建IP搜索、IP連接和斷開函數
創建一個Zmotion類,用來記錄正運動控制卡相關操作:
public partial class Zmotion{/// <summary>/// 創建板卡IP搜索和IP連接/// </summary>//創建IP連接所需要的內容private string IP;public IntPtr IPHandle; //創建連接句柄// public bool CardNet;public bool initedOk; //判斷是否板卡是否連接}
創建IP連接相關函數;
//創建IP搜索函數public List<string> SearchIpList(){//存在多個IP,建立一個存儲IP的容器,因為IP長度未知,則建立一個StringBuilder類StringBuilder IpList = new StringBuilder();//創建一個存在IP錯開的容器List<string> SearchList = new List<string>();//正運動內置搜索IP函數,搜索成功返回值為0int error = ZAux_SearchEthlist(IpList, 1024, 10); if(error==0){ //清除IPList 后面的空格,網絡連接中間有空格和后面有空格string ipString = IpList.ToString().Trim();//判斷是否有多個IP var Ips=ipString.split(“ ”);foreach (var ip in Ips){SearchList.add(ip);}}else{MessageBox.Show("沒有搜索到IP,請檢查網絡連接");}retrun SearchList;}//創建IP連接函數public OperationResult LinkIp(string IP){//正運動控制卡中自帶函數庫int Error = ZAux_OpenEth(IP, out IPHandle);//連接成功返回值為0,且句柄不為0if (Error == 0 && IPHandle != IntPtr.Zero){initedOk = true;return OperationResult.CreateSuccessResult();}else{return OperationResult.CreateFailResult();}}//創建IP關閉函數
public OperationResult ClassCard()
{if ( IPHandle != IntPtr.Zero){//正運動自帶板卡int Error = ZAux_Close(IPHandle);if (Error == 0){initedOk = false;return OperationResult.CreateSuccessResult();}else{ return OperationResult.CreateFailResult(); }}else{MessageBox.Show("網絡沒有連接,請檢查網絡接口");return new OperationResult() { IsSuccess = false, ErrorMsg = "Fail" };}}
四.和UI界面進行連接
4.1 IP搜索
private void IPScanBtn_Click(object sender, EventArgs e)
{foreach (string ip in motion.SearchIpList()){IPComoBox.Items.Add(ip);}}
4.1 IP連接
private void LinkIpBtn_Click(object sender, EventArgs e){if (object.Equals(LinkIpBtn.Text, "連接軸卡")){//使用正運動類中函數if (motion.LinkIp(IPComoBox.Text.ToString()).IsSuccess){motion.CardNet = true;LinkIpBtn.Text = "斷開軸卡";LinkShowLbl.BackColor = Color.Green;MessageBox.Show("軸卡連接成功");}else{motion.CardNet = false;MessageBox.Show("IP信息錯誤,無法連接軸卡");}}else if (Equals(LinkIpBtn.Text, "斷開軸卡")){if (!motion.CloseCard().IsSuccess){motion.CardNet = false;LinkIpBtn.Text = "連接軸卡";LinkShowLbl.BackColor = Color.Red;}else{motion.CardNet = true;MessageBox.Show("軸卡仍然連接中,請檢查相應設施");}}}
五.效果顯示
連接狀態
斷開狀態