当前位置: 首页 > ops >正文

正运动控制卡学习-网络连接

一.硬件介绍

使用正运动控制卡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("轴卡仍然连接中,请检查相应设施");}}}

五.效果显示

连接状态

断开状态

http://www.xdnf.cn/news/19798.html

相关文章:

  • Java 黑马程序员(进阶篇1)
  • 从BERT到RoBERTa、ALBERT:揭秘Encoder-only预训练模型的进化之路
  • 【常用SQL语句和语法总结】
  • 数据科学家如何更好地展示自己的能力
  • 项目中 Spring Boot 配置文件未生效该如何解决
  • JavaScript箭头函数与普通函数:两种工作方式的深度解析
  • 诊断服务器(Diagnostic Server)
  • Linux 字符设备驱动框架学习记录(三)
  • Spring Boot 全局异常处理问题分析与解决方案
  • PastePal for Mac 剪贴板历史记录管理器
  • prometheus+grafana搭建
  • 7.4Element Plus 分页与表格组件
  • js设计模式-装饰器模式
  • CI(持续集成)、CD(持续交付/部署)、CT(持续测试)、CICD、CICT
  • Few-Shot Prompting 实战:用5个例子让GPT-4学会复杂任务
  • (二)文件管理-基础命令-cd命令的使用
  • 中州养老:资源添加功能
  • gitlab推送失败,内存不足的处理
  • 深入浅出Spring IoC与DI:设计思想、实现方式与反射技术详解
  • Excel 电影名匹配图片路径教程:自动查找并写入系统全路径
  • PostgreSQL 中唯一索引的工作原理
  • 分布式AI算力系统番外篇-----超体的现实《星核》
  • Vue基础知识-重要的内置关系:vc实例.__proto__.__proto__ === Vue.prototype
  • 股指期货可以通过移仓长线持有吗?
  • AppInventor2 如何自定义包名?
  • 华为云云原生架构赋能:大腾智能加速业务创新步伐
  • 【深度学习新浪潮】视觉大模型在预训练方面有哪些关键进展?
  • 鸿蒙UI开发实战:解决布局错乱与响应异常
  • 企业实用——MySQL的备份详解
  • 基于机器学习的Backtrader波动性预测与管理