摘要: 1.WCF和之前通信技术的比较 WCF将现有的所有分布式技术统一起来,提供一个统一的应用编程接口。 Remoting不能提供跨平台的支持,仅仅提供服务端和客户端均处于.NET平台下的通信。 为了实现对跨平台的支持,微软在ASP.NET平台上开发出了Web服务。 消息队列,对离线通信方式的支持(当网络无法到达,消息可暂存于本地的消息队列中) 2.服务端配置 先定义服务契约(应用Se... 阅读全文
posted @ 2013-03-27 22:24 LionX 阅读(158) 评论(0) 推荐(0)
摘要: 三种模式:Wait Until Done, Polling, Callback 最初是通过BeginInvoke和EndInvoke来实现 但用BackgroundWorker完全可以替代,且代码会更接近业务的思维方式: 通过RunWorkerAsync()开启异步线程 并调用了DoWorkEventHandler中定义的异步处理 当异步线程处理结束会触发RunWorkerComp... 阅读全文
posted @ 2013-03-15 15:59 LionX 阅读(178) 评论(0) 推荐(0)
摘要: 如图的错误: 解决办法: 1.创建线程同步上下文 private SynchronizationContext m_synContext; 2.构造函数中初始化 m_synContext = SynchronizationContext.Current; 3.把冲突的业务做成委托 SendOrPostCallback callback = delegate{…} 4.... 阅读全文
posted @ 2013-03-11 21:24 LionX 阅读(315) 评论(0) 推荐(0)
摘要: 自上而下 采集业务:主线程-》串口(新建采集线程)-》采集器-》设备驱动程序 显示业务:采集中心-》局站-》设备-》信号 一个是提供实时数据一个是显示实时数据, 由于惯性,会自然的把这两个放在一起实现 其实没有任何必要 只会把本来清晰的业务逻辑交织在一起 实现: 显示模块通过WCF向采集模块要数据 然后显示 采集模块变为一个通用的提供数据的服务 以此为基础 也便... 阅读全文
posted @ 2013-03-04 11:31 LionX 阅读(220) 评论(0) 推荐(0)
摘要: 这是个很小很小以至于通常都不会出现的问题 使用系统默认的次序 采集端和被采集端总还是一致的 但这次实现中,出现了极少数信号量错位的问题 查找了很长时间才定位 这是个教训: 在使用数组进行数据交换时 一定要显式的指定排列次序 这样,即使出现了次序问题 也马上对比出在哪缺了什么信号 由此引出:在分步处理数据时,保证操作的一致性。 阅读全文
posted @ 2013-03-04 10:27 LionX 阅读(190) 评论(0) 推荐(0)
摘要: 对于常规的数据采集系统, 通常系统根据自己的采集周期,主动向设备要实时数据 由于通常的工业自动化多采用串口 故为了串口的稳定性, 采集的间隔都会设置延时 这极大的影响了采集的效率。 尤其是对大规模设备的采集时 需要启动多个采集系统,再汇总数据 为了改变这种现状 尤其是简化采集业务,分散采集的工作量 出现了一种智能采集设备 自己采集下挂的所有设备,并主动上报给采集系统 ... 阅读全文
posted @ 2013-03-03 16:27 LionX 阅读(382) 评论(0) 推荐(0)
摘要: 经典的采集过程: 串口下挂多个智能设备,每个设备有对应于串口的序号(设备ID),同时每条信号也有对应于设备的序号(通道号)。 这时,轮询此串口的下挂设备列表,在确保串口通信正常(串行,延时)的情况下,逐个下发采集命令。 此时,时间主要消耗在串口命令之间的延时上(50ms~100ms) 当下挂有庞大设备群时,时间的消耗是巨大的。 1000/50=20(1秒包含的间隔数) ... 阅读全文
posted @ 2013-03-03 14:00 LionX 阅读(255) 评论(0) 推荐(0)
摘要: 三大处理逻辑:1.数据采集 2.数据处理 3.数据上报 数据采集:通过相应设备的驱动程序与采集器或智能设备进行通信。 数据处理:根据本地配置库中的告警条件,存储周期和存储阈值对采集数据进行判断 (告警数据,历史数据和 模拟信号一天内的最大最小平均值-》统计数据) 数据上报: 1.告警数据-》上报服务器由实时监控台通知值班人员。 2.实时数据-》监控主机显示,实时监控... 阅读全文
posted @ 2013-02-28 13:03 LionX 阅读(285) 评论(0) 推荐(0)
摘要: 在单元测试的编写中,不可避免的会碰到对象的依赖。 这时为了完成测试功能 首先,需要先把下层的依赖类实现;其次,只能等待结果返回即使会很耗时;最后,此测试用例已不仅仅反映是该函数功能的正误(还包含了依赖对象的逻辑)。 而这些和待测逻辑无关,却需要花大量时间在上面 通过使用隔离框架(如Rhino Mocks) 引入 mock object(模拟对象)/stub object(桩对象) ... 阅读全文
posted @ 2013-02-28 09:59 LionX 阅读(197) 评论(0) 推荐(0)
摘要: 干什么都行,没有爱情可千万不要结婚------《傲慢与偏见》 爱情的规则也简单:两个自由的人相爱,他们结合之后,仍然是两个自由人。这样人格不矮化、精神不猥琐的婚姻,两人的能力增长、强弱互补,一起往前走,有付出、有劳动、有收获,是非常有趣、非常值得期待的人生旅途。 ——连岳 阅读全文
posted @ 2013-02-24 23:19 LionX 阅读(134) 评论(0) 推荐(0)