通讯接口Help_RTX

用于通讯:连接,读写,断开

通讯模块的【开,关,收,发,环回】功能,
一般是底层模块继承,高层模块是做个属性【或者在构造函数内】,
这样上层收发数据,底层可以随便替换模块。

例:
USB_CAN can = new USB_CAN();
USB_RJ45 rj45 = new USB_RJ45();
Modbus rtu;

switch(case_NUM)// 通讯模块选择
{
  case 1 : rtu = new Modbus(rj45);// 这样写,rtu发的命令用以太网。
                                   break;
  case 2 : rtu = new Modbus(can); // 这样写,rtu发的命令用can总线。
                                   break;
}
而我只需要关心 rtu 怎么操作就可以了,这写法是不是很方便。
rtu.Set_TX("大家好,我是维修电工!");

功能:【开,关,收,发,环回】

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace help
{
    public  interface Help_RTX
    {
        /// <summary>
        /// 连接
        /// </summary>
        /// <typeparam name="T">连接</typeparam>
        /// <param name="a">ip地址</param>
        /// <param name="b">端口</param>
        /// <returns></returns>
        bool connect<T>(T a,T b);

        /// <summary>
        /// 断开
        /// </summary>
        /// <returns></returns>
        bool Close();

        /// <summary>
        /// 接收事件
        /// </summary>
        /// <returns></returns>
        int RXs(ref object obj);  // object RXs();

        /// <summary>
        /// 只发送
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        int TXs(string cmd);

        /// <summary>
        /// 发和收
        /// </summary>
        /// <param name="cmd"></param>
        /// <returns></returns>
        object sendAndReceive(string cmd);

    }
}

功能:【开,关,收,发,轮询】

更新2024/3/8

   #region 【通讯接口】:声明,全局类型
   /// <summary>
   /// 【通讯接口】开,关,收,发,轮询
   /// </summary>
   public interface IFace_RTX  // 开,关,收,发,轮询
   {//更新2024/3/8
       /// <summary>
       /// 【有人CAN模块】"192.168.0.3","502"
       /// </summary>
       /// <typeparam name="T"></typeparam>
       /// <param name="a"></param>
       /// <param name="b"></param>
       /// <returns></returns>
       bool Open<T>(T a, T b);// 开 

       /// <summary>
       /// 断开
       /// </summary>
       /// <returns></returns>
       bool Close();// 关

       /// <summary>
       /// 只收
       /// </summary>
       /// <returns></returns>
       int RXD(ref object obj);// 收
       //int RXs<T>(ref T obj);//测试

       /// <summary>
       /// 只发,格式148字节报文08123456781122334455667788
       /// </summary>
       /// <param name="cmd"></param>
       /// <returns></returns>
       int TXD(string cmd);// 发

       /// <summary>
       /// 【轮询】
       /// </summary>
       /// <typeparam name="T"></typeparam>
       /// <param name="cmd"></param>
       /// <param name="t"></param>
       /// <returns></returns>
       int RTX<T>(string cmd, ref T t);//【轮询】万物皆文本

   }
   #endregion

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值