当前位置: 代码迷 >> C# >> C# 串口通信 控件使用解决方法
  详细解决方案

C# 串口通信 控件使用解决方法

热度:107   发布时间:2016-05-05 04:04:54.0
C# 串口通信 控件使用
在做串口通信的过程中,导师要求,能将多个子设备分为同一个组,实现统一发送命令。原理如图所示:

有子设备A、B、C与串口进行通信,我们可以分别给A、B、C发送命令,为了能一次统一发送命令,要求把A、B、C划分为一个组,如发送字符串001122,则是给组下面的每个成员发送的001122。
请问使用什么控件可以实现以上功能,用ListView或ListBox可以实现分组吗???

多谢回答,感激不尽!!!
------解决思路----------------------
winform + socket的问题让 拉灯同学来回答,我不擅长这个……
------解决思路----------------------
按组应该不是你这个意思吧,指令发送到组,这样指令和具体设备之间就没有了关系,然后组将指令依次发到各个子设备,很典型的观察者啊
------解决思路----------------------
public class Group
    {
        private List<Device> _list = new List<Device>();
        public bool SendMessage(string message)
        {
            foreach (var device in this._list)
            {
                device.SocketSend(message);
            }
            throw new NotImplementedException();
        }
        /// <summary>  
        /// 添加被通知者  
        /// </summary>  
        public void Attach(Device device)
        {
            if (!this._list.Any(d => d.Name == device.Name))
            {
                this._list.Add(device);
            }
        }
        /// <summary>  
        /// 移除被通知者  
        /// </summary>  
        public void Detch(Device device)
        {
            var dv = this._list.FirstOrDefault(d => d.Name == device.Name);
            if (dv != null)
            {
                this._list.Remove(dv);
            }
        }
    }
    public class Device
    {
        /// <summary>
        /// 设备名称
        /// </summary>
        public string Name { get; private set; }
        public Device(string name)
        {
            this.Name = name;
        }
        public bool SocketSend(string message)
        {
            //Socket部分编码
            throw new NotImplementedException();
        }
    }

给你相关的代码……
然后用起来就是
Group gpA = new Group();
gpA.Attach(new Device("A"));
gpA.Attach(new Device("AA"));
Group gpB = new Group();
gpA.SendMessage("demo");

------解决思路----------------------


楼主呀,你应把分楼搞到100分,我就能看到了。我一般只关注100分的贴子,
不过你很幸运。今天我尽然看25分的贴子。。。
------解决思路----------------------
这个问题网上问的人很多,但是貌似没有啥解决办法,有没有大神啊!
  相关解决方案