示例#1
0
 protected List <byte> rxbuf  = new List <byte>();            //串口接收缓冲
 public virtual void ini(TX_CB tx, RX_CB rx, RX_BIN_CB rxbin) //初始化,注册回调函数
 {
     tx_cb     = tx;
     rx_cb     = rx;
     rx_bin_cb = rxbin;
     //有插件,可做额外初始化
     //……
 }
示例#2
0
        static public DataSrc factory(Dictionary <string, object> v, RX_CB cb)       //简单工厂
        {
            string s = (string)v["type"];
            Type   t = Type.GetType("cslib.DataSrc_" + s);           //数据源类的命名规则
            var    r = Activator.CreateInstance(t, cb) as DataSrc;

            r.fromDict(v);             //初始化对象
            return(r);
        }
示例#3
0
        static public DataSrc factory(DSType t, RX_CB cb) //工厂方法
        {
            switch (t)
            {
            case DSType.uart:
                return(new DataSrc_uart(cb));

            case DSType.udp:
                return(new DataSrc_udp(cb));
            }
            return(null);
        }
示例#4
0
 public DataSrc_uart(RX_CB cb) : base(cb)
 {
     uart.DataReceived += (sender, e) =>
     {
         int    n   = 0;
         byte[] buf = new byte[0];
         try
         {
             n   = uart.BytesToRead;
             buf = new byte[n];
             uart.Read(buf, 0, n);
         }
         catch
         { }
         rx_event(buf);
     };
 }
示例#5
0
 public IPEndPoint rmt_addr = new IPEndPoint(0, 0);       //接收到数据后,对方的地址
 public DataSrc_udp(RX_CB cb) : base(cb)
 {
 }
示例#6
0
 public string name = "";         //数据源的名称,如果是串口,则为串口号
 public DataSrc(RX_CB cb)
 {
     rx_event = cb;
 }
示例#7
0
 static public DataSrc cur_ds;                                                           //当前数据源
 static public void ini(RX_CB cb)                                                        //初始化默认的串口数据源
 {
     cur_ds = factory(DSType.uart, cb);
     dsdict[DSType.uart] = cur_ds;
 }
示例#8
0
 public DataSrc_file(RX_CB cb) : base(cb)
 {
     name = "文件";
 }
示例#9
0
 public DataSrc_replay(RX_CB cb) : base(cb)
 {
     name = "回放";
 }