project joee 开发日志 10.07 (及项目工程目录解释)
发表于|更新于|开发日志
|浏览量:
文章作者: Awei
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 阿伟又在打电动!
相关推荐

2022-11-08
project joee 开发日志(十)——串口设备配置
接上回串口识别和保存部分 串口配置项 可行性验证 先完成串口配置的保存,以便在配置文件中修改串口信息 首先在Config.cs中添加相应项 12//硬件串口号public Dictionary<string,string> DEVICE_COM = new Dictionary<string, string>(); 1234567public class Settings{ ...; //串口号 public Dictionary<string, string> DEVICE_COM; ...;} 12345678910//读取配置文件 加载各类参数public void load(string file = "./config.toml"){ if (file.Length > 0 && File.Exists(file)) { ...; DEVICE_COM = settings.DEVICE_C...
2022-10-23
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...

2022-09-25
project joee 开发日志 09.25
project joee 开发日志 09.25 需求 将原本采集卡连接单个摄像头的方案修改为:采集卡连接两个摄像头,并且将两个摄像头采集到的图像信息合并成一张图像。 -part1-需求分析 1.驱动调用 首先要修改采集卡调用部分的代码,使得采集卡Devices::Grabber部分能够接收和区分不同摄像头的句柄,并且调用相关API时加以区分这部分应该不难实现。 2.回调处理 其次当采集卡产生回调时,应根据不同摄像头相同序号的帧进行帧同步,标识出两个相同时刻的帧,问题在于,两个摄像头产生的缓冲区图像能否保证是在同一时刻产生的,以及采集卡缓冲区应该设置为多大。 查阅开发手册: 2.1.图像缓冲区的三种状态: Empty 空状态,意味着当前缓冲区没有相机采集到的图像数据 Full 满状态,意味着当前缓冲区已经被相机采集到的图像数据填满 Transfer 传输状态,意味着相机正在向该缓冲区内传输数据 用户可以通过 IKapGetBufferStatus 来获取指定传输缓冲区的状态。 2.2.图像缓冲区的状态切换...

2022-10-19
project joee 开发日志(七)——数据相关问题
需求 具体描述 (待)实现方式(/思路) 图表添加切割线条 添加横向线条来指示每次换卷的截断位置 换卷事件中添加相应处理,并且使用图表控件的对应方法画出线条 先前添加了插件中的换卷事件处理。 换卷的处理函数中修改了数据库,而当该函数被外部插件(监听串口的线程)或者用户按钮事件调用时,如果任务不是处于暂停状态,会与数据处理线程的插入行函数(InsertRow)产生冲突,两个线程会在相近的时间内访问数据库连接对象,相应的打开和关闭数据库过程会产生异常。 因为涉及到委托调用数据库更新操作,在主程序对数据库进行操作时,可能会出现冲突的情况,因此需要加上数据库的访问锁 12//数据库访问互斥readonly static object _locker_db = new object(); 在创建数据库之后的所有对数据库操作添加如下互斥访问方式 12345//互斥访问数据库对象lock (_locker_db){ do();} 在主程序进行数据库插入时进行检测是否换卷 ++以上操作无效。++ 经过大量debug跟踪发现,出现异常的原因为数据库连接Db...

2022-10-18
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...

2022-11-20
project joee 开发日志(十三)——DebugConsole实现插件参数的加载和修改
由于修改了参数配置的实现,Debug Console中加载配置参数会出现问题,因此需要修改相应的逻辑实现。 实现思路 在onload()事件中(执行onload的时候所有插件都已经完成初始化init(),所以会在对应的Attributes中包含需要保存的参数),读取主程序和各个插件的 Attributes,然后找出bool类型的变量,将其加入到开关字典switches<string,object>中,并且根据读取到的变量列表 l_MainWnd、l_cfg、l_plugin 来生成checkbox控件,最后定义其点击事件,在事件中将对应键值与checkbox的 Checked属性进行绑定,最终实现点击选择框修改对应的变量。 该思路的核心部分在于读入插件参数并创建控件的过程,其实现如下: 12345678910111213141516171819202122232425262728293031323334353637383940414243//根据反射获取属性字典 动态添加开关控件private void CreateContorls(Form f) { ...
评论
公告
这里主要记录 AI / HPC / LLM 论文阅读、模型部署实践和一些项目开发日志。
