- 博客(13)
- 收藏
- 关注
转载 WCF小结
1.WCF和之前通信技术的比较 WCF将现有的所有分布式技术统一起来,提供一个统一的应用编程接口。 Remoting不能提供跨平台的支持,仅仅提供服务端和客户端均处于.NET平台下的通信。 为了实现对跨平台的支持,微软在ASP.NET平台上开发出了Web服务。 消息队列,对离线通信方式的支持(当网络无法到达,消息可暂存于本地的消息队列中) 2.服务端配置 先定义服务契约...
2013-03-27 22:24:00
150
转载 多线程和异步模式
三种模式:Wait Until Done, Polling, Callback 最初是通过BeginInvoke和EndInvoke来实现 但用BackgroundWorker完全可以替代,且代码会更接近业务的思维方式: 通过RunWorkerAsync()开启异步线程 并调用了DoWorkEventHandler中定义的异步处理 当异步线程处理结束会触发RunWorke...
2013-03-15 15:59:00
139
转载 错误:不支持从调度程序线程以外的线程对其进行的更改
如图的错误: 解决办法: 1.创建线程同步上下文 private SynchronizationContext m_synContext; 2.构造函数中初始化 m_synContext = SynchronizationContext.Current; 3.把冲突的业务做成委托 SendOrPostCallback callback = delegate{…...
2013-03-11 21:24:00
438
转载 采集业务与显示业务
自上而下 采集业务:主线程-》串口(新建采集线程)-》采集器-》设备驱动程序 显示业务:采集中心-》局站-》设备-》信号 一个是提供实时数据一个是显示实时数据, 由于惯性,会自然的把这两个放在一起实现 其实没有任何必要 只会把本来清晰的业务逻辑交织在一起 实现: 显示模块通过WCF向采集模块要数据 然后显示 采集模块变为一个通用的提供数据的服务 以此为基...
2013-03-04 11:31:00
124
转载 数据采集时不可忽视的次序问题
这是个很小很小以至于通常都不会出现的问题 使用系统默认的次序 采集端和被采集端总还是一致的 但这次实现中,出现了极少数信号量错位的问题 查找了很长时间才定位 这是个教训: 在使用数组进行数据交换时 一定要显式的指定排列次序 这样,即使出现了次序问题 也马上对比出在哪缺了什么信号 由此引出:在分步处理数据时,保证操作的一致性。转载于:https://ww...
2013-03-04 10:27:00
149
转载 数据采集的进化--主动上报
对于常规的数据采集系统, 通常系统根据自己的采集周期,主动向设备要实时数据 由于通常的工业自动化多采用串口 故为了串口的稳定性, 采集的间隔都会设置延时 这极大的影响了采集的效率。 尤其是对大规模设备的采集时 需要启动多个采集系统,再汇总数据 为了改变这种现状 尤其是简化采集业务,分散采集的工作量 出现了一种智能采集设备 自己采集下挂的所有设备,并主动上报给采...
2013-03-03 16:27:00
303
转载 采集过程的聚合
经典的采集过程: 串口下挂多个智能设备,每个设备有对应于串口的序号(设备ID),同时每条信号也有对应于设备的序号(通道号)。 这时,轮询此串口的下挂设备列表,在确保串口通信正常(串行,延时)的情况下,逐个下发采集命令。 此时,时间主要消耗在串口命令之间的延时上(50ms~100ms) 当下挂有庞大设备群时,时间的消耗是巨大的。 1000/50=20(1秒包含的...
2013-03-03 14:00:00
175
转载 监控主机功能整理
三大处理逻辑:1.数据采集 2.数据处理 3.数据上报 数据采集:通过相应设备的驱动程序与采集器或智能设备进行通信。 数据处理:根据本地配置库中的告警条件,存储周期和存储阈值对采集数据进行判断 (告警数据,历史数据和 模拟信号一天内的最大最小平均值-》统计数据) 数据上报: 1.告警数据-》上报服务器由实时监控台通知值班人员。 2.实时数据-》监控主机显示...
2013-02-28 13:03:00
215
转载 单元测试的隔离框架
在单元测试的编写中,不可避免的会碰到对象的依赖。 这时为了完成测试功能 首先,需要先把下层的依赖类实现;其次,只能等待结果返回即使会很耗时;最后,此测试用例已不仅仅反映是该函数功能的正误(还包含了依赖对象的逻辑)。 而这些和待测逻辑无关,却需要花大量时间在上面 通过使用隔离框架(如Rhino Mocks) 引入 mock object(模拟对象)/stub object(...
2013-02-28 09:59:00
228
转载 爱情摘录
干什么都行,没有爱情可千万不要结婚------《傲慢与偏见》 爱情的规则也简单:两个自由的人相爱,他们结合之后,仍然是两个自由人。这样人格不矮化、精神不猥琐的婚姻,两人的能力增长、强弱互补,一起往前走,有付出、有劳动、有收获,是非常有趣、非常值得期待的人生旅途。 ——连岳转载于:https://www.cnblogs.com/LionX/archive/2013/02/24/...
2013-02-24 23:19:00
104
转载 数据流采集的任务分解
最近在做一个数据采集系统,基于已有十几年前的C++程序,重新以C#来实现。 这里首先要做的是任务分解:1.数据采集系统,2.控制系统,3,数据处理 单独把数据采集功能抽出来实现,并考虑之后把它做成一个服务,需要数据的模块通过WCF向它要。 其中一个重要目的就是从上层的功能框架到下层的类的实现,尽可能消除耦合! 数据采集说白了就是返回信号的当前值,参照之前业务: 以每一个串...
2013-02-24 10:16:00
360
转载 TreeView使用
整理一下对TreeView的使用: 1.TreeView是作为一个容器控件,一般会在其内放入TreeViewItem控件,当然也可以放入Button等控件。 2.当需要在某些层展开,后面的收起时,需要配合TreeViewItem的Header和ItemsSource来使用。前面展开的部分都使用Header赋内容,后面收起的则使用ItemsSource统一赋值。不恰当的比喻是类似于if...
2013-02-24 08:28:00
116
转载 GridSplitter例子
今天找了一个GridSplitter 例子,看了半天才整明白这里的一个道道,暂时记下来: 1.代码中的<ColumnDefinition Width="0"/>并没有起任何作用,估计是用来占位的。 2.GridSplitter 和ListView 挂在一个单元格下,节省单独GridSplitter 占的界面空间,更显得紧凑。 3.Grid行列都是从0开始计数。 ...
2013-02-22 18:12:00
125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅