VisionMaster 动态修改存图路径

本文介绍了一种在VisionMaster中根据SN码和检测结果动态修改图像存储路径的方法,通过使用脚本工具模块来更改输出图像模块的参数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在VisionMaster 中,一般使用输出图像模块来进行图像存储,但是,存图文件夹路径是写死的,不能每次修改存图路径,那么如何实现根据SN码和OK NG 结果来动态修改存图路径呢?

我们只需要在输出图像模块前面,放一个脚本工具模块即可,在脚本工具模块中,修改输出图像1模块的存图文件夹路径。

脚本工具输入:

 脚本代码:

using System;
using System.IO;
using System.Text;
using System.Windows.Forms;
using Script.Methods;


public partial class UserScript : ScriptMethods, IProcessMethods
{
    //the count of process
    //执行次数计数
    int processCount;

    /// <summary>
    /// Initialize the field's value when compiling
    /// 预编译时变量初始化
    /// </summary>
    public void Init()
    {
        //You can add other global fields here
        //变量初始化,其余变量可在该函数中添加
        processCount = 0;

    }

    /// <summary>
    /// Enter the process function when running code once
	/// 流程执行一次进入Process函数
    /// </summary>
    /// <returns></returns>
    public bool Process()
    {
        //You can add your codes here, for realizing your desired function
        //每次执行将进入该函数,此处添加所需的逻辑流程处理
        //MessageBox.Show("Process Success");
        string moduleName = "输出图像1";

        string SN = "";
        GetStringValue("SN", ref SN);

        string ImageName = "";
        GetStringValue("ImageName", ref ImageName);
        SetStringValue("outImageName", ImageName);

        int IfOK = 0;
        GetIntValue("IfOk", ref IfOK);

        string OkNgDir = "OK";
        if (IfOK!=1)
        {
            OkNgDir = "NG";
        }
        string SaveOrgDir = "D:\\Image Data\\Org\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\\" + OkNgDir + "\\" + SN;
        string SaveRenDir = "D:\\Image Data\\Ren\\" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + "\\" + OkNgDir + "\\" + SN;
 

        //设置模块参数
        CurrentProcess.GetModule(moduleName).SetValue("OriginImgPath", SaveOrgDir);
        CurrentProcess.GetModule(moduleName).SetValue("RenderImgPath", SaveRenDir);

        return true;
    }
}

### VisionMaster 动态库加载失败解决方案 当遇到VisionMaster动态库加载失败的情况时,通常是因为缺少必要的共享库文件或这些文件的版本不匹配。具体来说,如果操作系统确实没有包含所需的共享库(`lib*.so.*` 文件),或者共享库版本不符合要求,则会出现此类错误[^4]。 #### 检查依赖项 为了确保所有必需的库都已正确安装,在命令行工具中输入如下指令来验证是否在缺失的依赖关系: ```bash ldd /path/to/visionmaster_executable ``` 这条命令会列出程序启动所需的所有共享对象及其位置。对于任何标记为“not found”的条目,都需要单独处理并安装相应的库文件。 #### 获取正确的库文件 一旦确认了哪些具体的`.so`文件丢失之后,可以从官方渠道下载对应版本的库文件,并将其放置于系统的标准搜索路径内,比如 `/usr/lib/` 或者 `/usr/local/lib/` 下面;也可以通过设置环境变量 `LD_LIBRARY_PATH` 来临时指定额外的查找目录: ```bash export LD_LIBRARY_PATH=/custom/path/to/libs:$LD_LIBRARY_PATH ``` 此外,某些情况下可能需要重新编译应用程序以适应新的库版本。这涉及到调整项目的构建配置,使它能够识别新加入的外部资源。 #### 更新现有库至兼容版本 假如本地已经在相似名称但是不同版本号的目标库,那么应当考虑升级它们到与当前使用的VisionMaster相适配的新版次。可以通过包管理器更新软件包的方式实现这一点,例如在基于Debian的Linux发行版上可以这样做: ```bash sudo apt-get update && sudo apt-get install --only-upgrade libexample.so ``` 请注意替换上述例子中的`libexample.so`为你实际要操作的那个特定库的名字。 #### 测试修复效果 完成以上步骤后再次尝试运行VisionMaster应用,观察问题是否得到解决。如果仍然无法正常使用,建议查阅更详细的日志信息寻找线索,或是联系技术支持寻求进一步的帮助。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值