必赢亚洲手机app下载


怎么国外程序员爱用苹果

766net必赢亚洲手机版暗藏加密文书的Windows工具Folder

通用数据搜集平台

须要境况复原

境内某二线城市某科学技术公司,项目、产品五花八门,软硬件通吃。硬件大牛H,软件新人S,研发BOSS:

H:BOSS,那二日恰好搞出个采访电参数的模块,能依然不能够安顿人做个简单的测试程序,就是一个串口,电脑上看一下多少就行,很粗略的;

BOSS:可以,徐熙娣女士(英文名:Elephant Dee),你把老H这么些意义完毕下,在自我原来的不得了XXX串口程序基础上改一下就行了;

S:我在全部网站,没时间啊?

电脑软件,BOSS:那个大概,改一下显示就行了;

S:行,听你的(无奈!!)

然后S把BOSS原来的次序COPY一份,开改打开串口—>收多少—->分析数据—>展现—>关闭串口,丫的还要改程序名字等等

X月过后:

H:BOSS,我整了个XX控制器,须求用电脑软件控制一下就行,就发八个控制指令,然后看到控制结果就行,很粗略的;

BOSS:老H,你干的不错呀,徐熙娣女士(Elephant Dee),你有空把那一个控制落到实处一下,就在您上次丰盛采集程序基础上改一下就行了;

S:我上次那网站还没整完呀?客户吹的紧呀?

BOSS:这一个简单,就多少个控制指令,算你半天工作量

S:(内心:简单?简单$%$$####%^)

然后S把原本的采集程序COPY一份,开改打开串口—>发控制指令—>收多少—->分析数据—>展现—>关闭串口,丫的还要改程序名字等等

又是X月过后:

H:BOSS呀,有个客户那边说大家的商议不好使,要用国标的商议,能无法把共商稍微改一下,很粗略的;

BOSS:嗯,客户首先嘛,徐熙娣(英文名:Elephant Dee)女士,耶…徐熙娣女士…徐熙娣(英文名:Elephant Dee)女士…小S(Elephant Dee)…小S(英文名:Elephant Dee)…

S:老大,我是真没空呀,让老H自己改吗,很简短的,把XX工程打开,改XX文件XX行

H:……

   

心想的恶化

   
搞硬件的老H能改?他掌握突显界面怎么委托?开玩笑,他也许都不知底哪些是类;

   
还有为啥老是拿在此之前的顺序来改?因为大家需求往日的串口读写程序,新写的话太费时间,你说自己可以打包好点,让别人调用方便点,这如故得调用呀,若是换成网络TCP怎么做?再换成其余的如何做?

    大家对底层依赖的太严重了!大家应有把那种着重倒置(徐熙娣(英文名:Elephant Dee)(Elephant Dee):不就是依靠倒置嘛,切!!BOSS:#@¥%,理论害死人呀,你丫知道你不执行)。我们要做一个平台,无论什么样协议,无论什么样串口、网络,甚至别的通信形式,还有WINFORM界面显示自己都把它预先处理好,让只会简单C语言的老H只关怀她清楚的商议; 于是就应运而生上面那些框架:

 

电脑软件 1

   
肉色代表原本数据包的流向意况,平台自己处理所有与硬件通讯作用,所有的情商放在模块中用户自己处理。   

    平台形成开发后,提供一个接口定义的模块,比如下边这几个接口:

namespace IDataMonitor
{
    public abstract class DllBase
    {
        /// <summary>
        /// 接收数据处理函数
        /// </summary>
        /// <param name="buffer">收到的原始数据</param>
        /// <returns>返回一个字符串,用于采集平台界面显示</returns>
        public abstract string OnReceive(byte[] buffer);

        /// <summary>
        /// 模块加载的时候执行,禁止在该函数里编写长时间执行的代码,如果需要可以用线程代替
        /// </summary>
        public abstract void DllLoad();

        /// <summary>
        /// 在主程序退出时执行
        /// </summary>
        public abstract void DllUnload();

        /// <summary>
        /// 可以通过该委托发送查询/控制指令
        /// </summary>
        public Func<byte[], bool> SendFunc;

    }
}

 

   
公司之中或其余公司开发人员得到接口定义模块后,就足以按照它支付达成自己的商议模块(DLL方式),然后放置在凉台指定的文书夹下即可,无需再一次修改数据通讯平台的代码,真正落到实处公司数目搜集平台的通用。

 

用户使用

阳台搭建完成后,老H只须求新建一个类库工程,添加接口文件的引用,然后如下处理自己的协议即可:

namespace TestDll
{
    public class Class1 : DllBase
    {
        private volatile bool _bListen = true;
        public override string OnReceive(byte[] buffer)
        {
            //这里测试,原包返回
            return Encoding.Default.GetString(buffer);
        }

        public override void DllLoad()
        {
            var thread = new Thread(Query);
            thread.Start();
        }

        public override void DllUnload()
        {
            _bListen = false;
        }

        public void Query()
        {
            while (_bListen)
            {
                string test = "this datas come from test dll";
                SendFunc(Encoding.Default.GetBytes(test));
                Thread.Sleep(1000);
            }
        }
    }
}

   

   
然后老H把变化的DLL文件放置在阳台运行文件夹下,不难部署一下遥相呼应的现实网络(或串口):
电脑软件 2

 

自身为了有利于,把测试的串口和网络都对应到TestDll处理了,运行的效益如下:

电脑软件 3

 

   
通过代码可以观察,无需驾驭任何winform、TCP或串口编程知识,甚至足以毫不知道怎么着是TCP,什么是串口,只须求把收到的数额解析出来就行了。徐熙娣(Elephant Dee)女士泪流满面,BOSS清静了!!

 

链接

平台主文件DataMonitor工程及连锁的接口测试:https://datamonitor.codeplex.com/

 

相关文章

No Comments, Be The First!
近期评论
    功能
    网站地图xml地图