用于通讯:连接,读写,断开
通讯模块的【开,关,收,发,环回】功能,
一般是底层模块继承,高层模块是做个属性【或者在构造函数内】,
这样上层收发数据,底层可以随便替换模块。
例:
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