【10】VisionMaster入门到精通——脚本打印日志到本地(获取条码和二维码信息)
文章目录
- 1 获取条码信息----脚本打印日志到本地
- 1.1 案例介绍
- 1.2 添加及编辑脚本
- 2 获取二维码信息----脚本打印日志到本地
1 获取条码信息----脚本打印日志到本地
案例目的是为了通过编写脚本打印日志到本地,脚本模块使用的是C#语言。
1.1 案例介绍
案例步骤如下:
1,用GetStringValue函数分别获取条码信息;
2,通过FileStream类操作流写入信息到本地;
3,并通过SetstringValue函数输出打印日志的状态信息,给到下一个模块。
1.2 添加及编辑脚本
添加一个脚本模块,双击打开,在原有的脚本 模板上添加代码
双击打开,在原有的脚本 模板上添加代码
代码编辑如下;
注意需要引用 命名空间
using System.IO;
using System;
using System.Text;
using System.Windows.Forms;
using System.IO;
using Script.Methods;
public partial class UserScript:ScriptMethods,IProcessMethods
{//********输入变量**********string Barcode; //条码 //*******输出变量**********string writeSucceedOrFailed; //日志写入状态;/// <summary>/// 预编译时变量初始化/// </summary>public void Init(){//变量初始化,其余变量可在该函数中添加}/// <summary>/// Enter the process function when running code once/// 流程执行一次进入Process函数/// </summary>/// <returns></returns>public bool Process(){//每次执行将进入该函数,此处添加所需的逻辑流程处理 GetStringValue("barcode",ref Barcode); //获取条码信息try{using(FileStream fsWrite = new FileStream(@"E:\VM_4.3\Samples\软件功能展示\脚本\打印日志\Log.txt",FileMode.Append,FileAccess.Write)){string str= "条码信息:"+ Barcode ;byte[] buffer=Encoding.Default.GetBytes(str+"\r\n"); fsWrite.Write(buffer,0,buffer.Length); }writeSucceedOrFailed="写入OKAY"; }catch{writeSucceedOrFailed="写入失败";}SetStringValue("stateOutput",writeSucceedOrFailed); //输出日志打印状态return true;}
}
运行后在指定路径 "E:\VM_4.3\Samples\软件功能展示\脚本\打印日志\Log.txt"
下产生了 Log.txt
文件夹,并记录了条码信息
2 获取二维码信息----脚本打印日志到本地
脚本修改如下
using System;
using System.Text;
using System.Windows.Forms;
using Script.Methods;
using System.IO;
/************************************
Shell Module default code: using .NET Framwwork 4.6.1
*************************************/
public partial class UserScript:ScriptMethods,IProcessMethods
{//二维码String TowD_Code;//日志写入状态String writeSucceedOrFailed;/// <summary>/// Initialize the field's value when compiling/// 预编译时变量初始化/// </summary>public void Init(){//You can add other global fields here//变量初始化,其余变量可在该函数中添加}/// <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//每次执行将进入该函数,此处添加所需的逻辑流程处理GetStringValue("towD_Code",ref TowD_Code);//获取二维码信息try{using(FileStream fsWrite = new FileStream(@"E:\VM_4.3\Samples\软件功能展示\脚本\打印日志\Log2.txt",FileMode.Append,FileAccess.Write)){string str = "二维码信息:" + TowD_Code;byte[] buffer = Encoding.Default.GetBytes(str+"\r\n");fsWrite.Write(buffer,0,buffer.Length);}writeSucceedOrFailed = "Write OK";}catch {writeSucceedOrFailed = "Write Failed";}SetStringValue("stateOutput",writeSucceedOrFailed);//输出日志写入状态return true;}
}
运行后在指定路径 "E:\VM_4.3\Samples\软件功能展示\脚本\打印日志\Log2.txt"
下产生了 Log2.txt
文件夹,并记录了二维码信息
案例中有两个流程:获取条码和二维码信息,可以同时执行的;
执行一次,条码和二维码信息都被保存本地了。