project joee 开发日志(九)——相机增益和灯光控制插件
在SerialDevice插件中添加相机增益和光照自动控制功能 以下为实现方式 首先定义串口设备抽象类,为该类设置基本属性和构造函数 12345678910111213141516171819202122232425262728293031323334353637class SerialDevice{ //串口设备 public SerialPort serialPort; public ModbusSerialMaster master; //串口参数 public string portname; public int baunrate; public int databits = 8; public Parity parity = Parity.None; public StopBits stopbits = StopBits.One; //设备参数 public string DeviceName; public SerialDevice() { serial...
project joee 开发日志(八)——换卷截断绘图实现
在开发日志(七)中实现了换卷绘图的前置功能, 接下来实现具体绘图。 首先实现接口 12345678910//定义事件和处理函数public EvtHanlder hanlder{ get { EvtHanlder h = new EvtHanlder(); //添加相应处理事件 h.ReelChangeEvent += ReelChangeHandler; return h; } } 定义换卷处理事件 1234567public void ReelChangeHandler(object sender, CustomEventArgs Args) { //换卷事件处理 Console.WriteLine("Chart: Event ReelChange"); double line = (double)Args.msg; AddLineH(line);} 其中绘制横线函数 12345678910111213pr...
project joee 开发日志(七)——数据相关问题
需求 具体描述 (待)实现方式(/思路) 图表添加切割线条 添加横向线条来指示每次换卷的截断位置 换卷事件中添加相应处理,并且使用图表控件的对应方法画出线条 先前添加了插件中的换卷事件处理。 换卷的处理函数中修改了数据库,而当该函数被外部插件(监听串口的线程)或者用户按钮事件调用时,如果任务不是处于暂停状态,会与数据处理线程的插入行函数(InsertRow)产生冲突,两个线程会在相近的时间内访问数据库连接对象,相应的打开和关闭数据库过程会产生异常。 因为涉及到委托调用数据库更新操作,在主程序对数据库进行操作时,可能会出现冲突的情况,因此需要加上数据库的访问锁 12//数据库访问互斥readonly static object _locker_db = new object(); 在创建数据库之后的所有对数据库操作添加如下互斥访问方式 12345//互斥访问数据库对象lock (_locker_db){ do();} 在主程序进行数据库插入时进行检测是否换卷 ++以上操作无效。++ 经过大量debug跟踪发现,出现异常的原因为数据库连接Db...
Novel AI元素法典
https://docs.qq.com/pdf/DZWdGeWtTdkhVYnVr
project joee 开发日志(六)——自定义事件
++之后开发日志不再按照日期命名++ 某个功能需求要求插件实现在主程序满足特定条件时触发函数调用,因此需要在框架和接口中添加自定义事件处理,通过事件触发的方式来在主程序中插入插件的功能函数。 自定义事件处理 定义 添加定义事件类 EvtHanlder 在插件接口类中添加属性EvtHanlder: handler 1public EvtHanlder hanlder{get;} 添加事件处理机制,添加CustomEvent枚举类,用来描述主窗体的自定义事件,并将相应设置相应触发器,使得插件可以执行对应的事件handler。 123456789101112131415//事件委托public delegate void DefaultEventHanlder(object sender, CustomEventArgs Args);public delegate void ReelChangeHandler(object sender, CustomEventArgs Args);public delegate void ...;//事件枚举类型public en...
project joee 开发日志 10.17
需求 具体描述 (待)实现方式(/思路) 图表添加指示线条 添加竖向可移动的线条来指出瑕疵落点位置 使用对应的控件方法处理 实现方案: (插件实现)对图表控件添加事件控制逻辑 使用如下变量来存储状态信息和选中的线条对象 123456789//鼠标状态bool MouseDown = false;//命中状态bool StripSelected = false;bool AxisXSelected = false;bool AxisYSelected = false;//当前被选中的线条StripLine SelectedLine; 在MouseMove事件中的逻辑: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586MainWnd.ActiveControl = chart;HitTes...
project joee 开发日志 10.15
需求 具体描述 (待)实现方式(/思路) 不同相机工作状态指示灯 字母代表不同的相机,相机工作对应的指示灯变为绿色 采集卡API检测相机状态 查阅采集卡的开发文档,对应API 12345678910111213141516171819202122232425262728293031IKapGetCameraStatus 获取当前相机状态c++:int IKapGetCameraStatus(HANDLE hDev, int* npValue)对应c#:int IKapGetCameraStatus(IntPtr hDev, ref int npValue);参数说明hDev 设备句柄npValue 相机当前状态返 回 值0:调用失败1:调用成功说 明用户可以在任意时刻调用该函数查询当前相机状态判断采集发生异常的原因。如果返回 0 或相机状态 npValue 为 0xFFFFFFFF,则采集卡获取相机信号失败,用户可以在间隔一段时间后(e.g.100ms),重新调用该函数获取相机状态。相机状态 npValue 可能是下列比特位的异或组合:0x00000001:...
高级软件体系结构分析课程作业,资料整理
概述 高级软件体系结构课程作业是找一个现成的软件来分析架构,需要: 1.制作相应PPT并且演讲 2.写6000-8000字小论文来描述该软件架构 本着面向搜索引擎 的分析方法,成功找到如下案例: 分析一个大型软件体系结构——爱奇艺 link:https://blog.csdn.net/Wsk1234567/article/details/102697419 开始针对相应内容进行资料收集和整理,并恶补相关知识和内容。 info 其他相关资料爱奇艺微服务标准技术架构实践 https://cloud.tencent.com/developer/article/1796751?from=article.detail.1896541 爱奇艺的架构到底有多牛逼?https://zhuanlan.zhihu.com/p/146119034 爱奇艺移动业务后台系统架构设计 https://wenku.baidu.com/view/7e25fc4fb42acfc789eb172ded630b1c58ee9b63.html 爱奇艺推荐系统架构与实践 https://blog.csdn....
高级软件体系结构知识点
第一章 构件 一般认为,构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和实现代码的复合体。 有的可以独立工作,有的需要与其他配合工作;使用和开发生产无关,只要按照标准来生产; 软件重用 是指在两次或多次不同的软件开发过程中重复使用相同或相似软件元素的过程。 可以分为三个层次: 代码重用、设计结果重用、分析结果重用 可重用构件 可重用构件表示在软件重用过程中,可重用的软件构件元素。 相对于普通的软件产品,对可重用构件的特殊要求: 可重用构件应该具有++功能上的独立性与完整性;有较高的通用性;较高的灵活;严格的质量保证;较高的标准化程;++ 基于构件的软件开发 优势:基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用。 困难和挑战: 在同一系统中采用多个开发商提供的构件,它们之间的兼容性可能是开发过程中所要面对的一个严峻问题。 采用随处可以购买到的构件可能会使开发出来的软件产品丧失技术上的独创性和市场的竞争力; ...



