上海格西信息科技有限公司,上海格西信息科技有限公司格西调试精灵

代码 6
用户手册 版本3.0 格西调试精灵
2 目录
1.简介
4 1.1关于
4 1.2功能特性
4 1.3系统要求
5 1.4产品版本和许可
5 1.5产品支持
6 2.软件入门
7 2.1启动软件
7 2.2用户界面
7 2.2.1主界面
7 2.2.2应用程序菜单
7 2.2.3工具栏
9 2.2.4状态栏 11 2.2.5控制台 11 2.2.6数据区 13 2.3软件设置 14 2.3.1常规设置 14 2.3.2显示设置 15 2.3.3激励工程设置 16 2.3.4插件信息 16 2.4软件激活 17 2.4.1加密锁授权 17 2.4.2离线授权 17 2.4.3在线授权 18
3.直接激励项目 19 3.1简介 19 3.2基本操作 19 3.2.1新建直接激励项目 19 3.2.2打开直接激励项目 19 3.2.3关闭直接激励项目 20 3.2.4保存直接激励项目 20 3.2.5修改直接激励项目属性 20 3.2.6添加直接激励项 20 3.2.7删除直接激励项 20 3.2.8激励 21 3.2.9停止激励 21 3.3用途 21
4.协议激励项目 22 4.1简介 22 4.2基本操作 22 4.2.1新建协议激励项目 22 4.2.2打开协议激励项目 22 4.2.3关闭协议激励项目 22 2021上海格西信息科技有限公司 格西调试精灵
3 4.2.4保存协议激励项目 22 4.2.5修改协议激励项目属性 22 4.2.6添加协议集 23 4.2.7添加协议项 24 4.2.8激励 25 4.2.9停止激励 25 4.3协议帧 25 4.4协议脚本 27 4.4.1脚本界面 27 4.4.2脚本结构 28 4.4.3脚本参数BSCaseContext类 29 4.4.4串口参数BSComStreamParameters类 45 4.4.5网口参数BSNetStreamParameters类 49 4.4.6脚本中使用插件 50
5.插件 51 5.1托管代码与非托管代码 51 5.2编写插件 51 5.3使用托管代码的第三方库 51 5.4使用非托管代码的第三方库 51
6.工具箱 52 6.1校验和计算器 52 6.2CRC计算器 52 6.3DES计算器 53 6.4哈希值计算器 54 6.5ASCII码对照表 55 6.6字符编码转换器 56
7.应用技巧 57 7.1分类组织协议激励项目的协议项 57 7.2运行多个软件实例 57
8.FAQ 58 8.1进行“反馈”或者“注册软件”操作时,为什么出现Unknownerror(0x80041002)错 误?58 8.2进行协议激励时,从动方已经发出正确的帧,为什么主动激励方却返回失败? 58 2021上海格西信息科技有限公司 格西调试精灵
4 用户手册
1.简介 1.1关于 格西调试精灵是一款强大的通信协议调试和测试软件,主要解决电子研发过程中调试和测试软件定制化过多的问题,能够快捷地定制任意通信协议,使得通信软件能够应付快速多变的通信测试环境,可以让企业产品研发的调试和测试工具统一化、标准化,帮助企业降低测试工具的开发成本、学习成本和维护成本! 格西调试精灵的优势:快捷的测试激励定制-入门级的技能需求,专业级的工作成果直观的测试数据呈现-强大的数据分类、存储、统计和显示功能灵活的测试流程控制-支持循环测试和组合测试、支持主动设备和从动设备模拟、支持单工和双 工工作模式、支持直接激励和协议激励单独测试或者混合测试 格西调试精灵主要适用于:电子产品研发、测试和生产企业电子产品研发、测试人员 1.2功能特性 1)基本功能1.1)支持以文本或16进制方式接收和显示数据;1.2)支持串口,自动寻找系统支持的串口,150~256000常见的波特率,支持自定义任意波特率;1.3)支持网络接口,支持UDP、TCP客户端、TCP服务器协议类型;1.4)支持自动保存测试数据。
2)直接激励功能2.1)支持16进制、字符串、文件3种格式的数据发送;2.2)支持循环激励;2.3)支持保存为文件,方便测试项目的统一管理和重复使用。
3)协议激励功能3.1)支持主动设备(即主动发起请求、接收响应的设备)和从动设备(即被动等待请求、发送响应的 设备)的激励仿真;3.2)支持任意的帧格式定制,最小解析单位为1Bit,可直观地显示任意帧格式,不需要再为不同的协 议定制软件;3.3)支持自定义协议类型,支持测试结果分类存储和显示;3.4)支持使用C#、VB和JScript脚本语言控制测试运行,调用第三方DLL完成复杂的计算和测试任务, 具有强大的扩展性;3.5)支持循环激励和激励统计报告;3.6)支持保存为工程文件,方便测试项目的统一管理和重复使用。
4)支持常用的计算工具4.1)支持CS、BCC、LRC校验和计算器; 2021上海格西信息科技有限公司 格西调试精灵
5 4.2)支持DES/3DES计算器,支持64位、128位和196位密钥;4.3)支持CRC8/CRC16/CRC32计算器,支持各项参数自定义,支持16进制、字符串和文件3种数据计算,附带常用CRC标准算法表供选择使用;4.4)支持MD5/SHA1/SHA256/SHA384/SHA512哈希值计算器,支持16进制、字符串和文件3种数据计算。
4.5)支持ASCII码对照表。
4.6)支持编码(ASCII、UTF8、UNICODE等)和Hex互转转换器。
1.3系统要求 支持的操作系统:WindowsVistaSP2(x86和x64)Windows7SP1(x86和x64)Windows8(x86和x64)Windows8.1(x86和x64)WindowsServer2008SP2(x86和x64)WindowsServer2008R2SP1(x64)WindowsServer2012(x64)WindowsServer2012R2(x64)Windows10(x86和x64) 硬件要求:建议的最低要求:1GHz或更快,1GBRAM或更大最小磁盘空间:300MB 必备组件:Microsoft.NETFramework4.8 1.4产品版本和许可本产品的授权方式有两种,完全版和免费版。
其中完全版采用加密锁授权、离线授权和在线授权三种方式进行许可,免费版不需要许可。
完全版功能:支持基本功能;支持直接激励功能;支持协议激励功能。
免费版功能:支持基本功能;支持直接激励功能。
完全版许可细则:一把加密锁或一个在线授权帐号同一时间只能授权一台电脑;离线授权和电脑绑定,一经授权,不能解绑,请谨慎!授权的电脑可以同时运行本产品多个实例;加密锁不支持虚拟机授权。
2021上海格西信息科技有限公司 格西调试精灵
6 1.5产品支持 您在使用本软件的过程中遇到问题或者希望获得产品的支持信息,可以通过我们的网站、电子邮件等方式与我们联系。
支持网站:电子邮件:support@QQ:979464 2021上海格西信息科技有限公司 格西调试精灵
7 2.软件入门 2.1启动软件本软件安装成功之后,会在Windows的【开始菜单】中创建菜单项,同时关联直接激励项目文件 (.bsp)和协议激励项目文件(.bcp)。
启动软件有两种方法: 方法1:Windows【开始菜单】->“程序”-->“格西调试精灵”-->“格西调试精灵”。
方法2:鼠标双击打开直接激励项目文件(.bsp)或者协议激励项目文件(.bcp)。
2.2用户界面2.2.1主界面 2.2.2应用程序菜单2021上海格西信息科技有限公司 格西调试精灵
8 命令 新建-->协议激励项目新建-->直接激励项目打开-->协议激励项目打开-->直接激励项目关闭保存另存为全部保存设置激活产品帮助关于退出 快捷键Ctrl+NCtrl+Shift+NCtrl+OCtrl+Shift+
O Ctrl+
S Ctrl+Shift+
S F1 Alt+F4 功能 新建一个协议激励项目,并建立项目环境。
新建一个直接激励项目,并建立项目环境。
打开一个协议激励项目,并建立项目环境。
打开一个直接激励项目,并建立项目环境。
关闭当前激活的项目。
保存当前激活的项目。
将当前激活的项目保存到指定路径。
保存当前打开的所有项目。
设置软件的运行参数。
激活软件,获得完全版功能和服务。
软件的使用帮助。
显示软件的版权、版本以及注册信息等。
退出系统。
2021上海格西信息科技有限公司 格西调试精灵
9 2.2.3工具栏基本串口工具栏(无项目状态) 命令 功能 打开/关闭串口号波特率数据位停止位校验位 流控制(握手协议) RTSDTR HEX 清除置顶折叠工具栏(右上角第1个按钮)反馈(右上角第2个按钮)帮助(右上角第3个按钮) 打开或者关闭串口设置串口号,自动检测当前系统有效的串口设备。
设置波特率,提供标准波特率,支持自定义波特率输入。
设置数据位,支持5、6、7、
8。
设置停止位,支持1、1.5、
2。
设置校验位,支持无、奇校验、偶校验、置
1、置0。
设置流控制,支持无、RequestToSend、XonXoff、RequestToSend/XonXoff。
设置在串行通信中是否启用请求发送(RTS)信号设置在串行通信中是否启用数据终端就绪(DTR)信号。
设置数据面板数据显示格式,选中表示解析为HEX字符串,不选表示直接解析为字符串。
清除所有数据区的显示数据,不影响已经保存的数据。
设置主窗口保持在最前面。
显示/折叠工具栏。
显示用户反馈对话框。
显示用户帮助。
基本网络接口工具栏(无项目状态) 命令打开/关闭 功能打开或者关闭网络接口 2021上海格西信息科技有限公司 格西调试精灵 协议类型本地地址本地端口远程地址远程端口 10 设置协议类型,支持UDP、TCP客户端和TCP服务器。
设置本地地址,默认值0.0.0.0。
设置本地端口,作UDP、TCP服务器时必须设置,作TCP客户端时0表示系统默认分配。
设置远程地址,作UDP、TCP客户端时必须设置,作TCP服务器时不能设置。
设置远程端口,作UDP、TCP客户端时必须设置,作TCP服务器时不能设置。
协议激励工具栏(通信接口已折叠) 命令 激励停止报告添加保存剪切复制粘贴删除属性 功能 单次激励选中的协议项或者协议集,下拉菜单提供循环激励功能。
停止运行协议激励。
下拉菜单提供显示/隐藏协议激励报告,导出协议报告。
下拉菜单提供在当前选定节点的添加协议项或者协议集功能。
保存协议激励项目。
剪切当前选定节点。
复制当前选定节点。
在当前选定节点粘贴。
删除当前选定节点。
显示当前选定节点的属性对话框。
直接激励工具栏(通信接口已折叠) 命令激励 功能 单次激励直接激励项目所有激活的激励项,下拉菜单提供循环激励功能。
2021上海格西信息科技有限公司 格西调试精灵 11 停止添加保存删除属性 停止运行直接激励。
下拉菜单提供在当前选定节点的添加项功能。
保存直接激励项目。
删除当前选定的激励项。
显示直接激励项目的属性对话框。
常用工具工具栏 命令计算器校验和CRCDES哈希值ASCII码对照表Unicode转换器 2.2.4状态栏 功能 运行系统提供的计算器程序。
运行工具箱的校验和计算器。
运行工具箱的CRC计算器。
运行工具箱的DES计算器。
运行工具箱的哈希值计算器。
运行工具箱的ASCII码对照表。
运行工具箱的Unicode转换器。
状态栏分为三部分,分别为操作状态信息、通信传输字节信息、通信接口状态信息。
状态栏 功能 操作状态信息通信传输字节信息通信接口状态信息 显示上一次操作的状态信息,有错误、警告、信息三种状态。
显示自打开通信接口以来总共接收/发送的字节数。
显示当前通信接口状态。
2.2.5控制台协议激励项目控制台,采用树形结构进行组织协议项。
2021上海格西信息科技有限公司 格西调试精灵 12 协议激励项目控制台右键快捷菜单。
直接激励项目控制台,采用列表结构组织激励项。
支持16进制、字符串和文件三种数据格式,支持激励项延时,支持激励项使能,支持立即执行激励项(左边激励按钮,忽略激活属性)。
2021上海格西信息科技有限公司 格西调试精灵 13 直接激励项目控制台右键快捷菜单。
2.2.6数据区数据区是显示激励数据的区域,数据分为公共数据、自定义数据和报告数据。
数据类型公共数据自定义数据报告数据 功能 显示通信传输的实际收发数据,其中发送数据可以通过设置屏蔽,协议激励如果没有自定义数据,默认显示在公共数据区。
只有协议激励项目能够自定义数据类型,协议项在激励时根据所属的协议类型把结果输出到对应的自定义数据区中。
只有协议激励项目有运行报告,协议激励报告作为独立的页面显示在数据区。
各个数据区可以按需布局,灵活排布,方便数据观测。
2021上海格西信息科技有限公司 格西调试精灵 14 2.32.3.1 软件设置操作:【应用程序菜单】->“设置”。
常规设置 参数字符编码方式鼠标双击运行激励 功能设置软件所有字符串所采用的编码方式,例如UTF8、GB2312等。
设置控制台的激励项是否在打开通信接口后可以通过鼠标双击来运行激 2021上海格西信息科技有限公司 格西调试精灵 15 启动时自动打开最近项目保存结果 励。
设置软件启动时是否自动打开最近一次打开的激励项目。
使能保存功能,并设置保存结果的目录。
2.3.2显示设置 参数语言类型显示最大长度 最小化到系统托盘打印输出数据打印数据时间戳 打印数据自动滚动到最后 功能 设置用户界面的语言。
数据显示页面容纳的最大字符数,超过则删除最早的;该选项不影响保存到硬盘的结果数据。
使能后主窗体在最小化时隐藏到系统托盘。
设置数据区“数据”面板中是否显示发送的数据。
设置数据区“数据”面板中是否显示数据的时间戳,使能后设置间隔为0则每次收发都打印时间戳,设置间隔>0则每隔一定时间打印一次。
设置数据区“数据”面板中数据是否自动滚动到最后一行。
2021上海格西信息科技有限公司 格西调试精灵 16 2.3.3激励工程设置 协议激励结果数据包含名称、时间(起始时间)、请求帧、响应帧、耗时(执行时间)和结果六个数据段。
协议激励工程参数 功能 打印分隔符打印起始时间 设置激励结果数据各个数据段之间的分隔符,支持“新行”和“空格”两种分隔方式。
设置激励结果数据是否显示“时间”数据段。
打印执行时间 设置激励结果数据是否显示“耗时”数据段。
打印帧数据 设置激励结果数据是否显示“请求帧”和“响应帧”的帧数据。
2.3.4
插件信息列出位于本软件安装目录的Plugins子目录下的可以被本软件识别的基于Microsoft.NET Framework的托管代码组件。
2021上海格西信息科技有限公司 格西调试精灵 17 2.4软件激活软件激活是指完全版的授权,免费版无需授权。
软件完全版采用加密锁授权、离线授权和在线授权三种方式进行许可。
2.4.1加密锁授权通过以下步骤进行加密锁授权: 步骤1:从官方网站下载【加密锁驱动】,并安装到计算机。
下载主页链接:/support/download 步骤2:将加密锁插入到计算机。
2.4.2离线授权 进行离线授权的计算机不需要上网,通过以下步骤进行离线授权:步骤1:【应用程序菜单】->“激活产品”。
2021上海格西信息科技有限公司 格西调试精灵 18 步骤2:在弹出的对话框中,把设备标识通过购买渠道发给本公司,本公司根据该设备标识生成一个许可文件,并通过Email发送给购买用户。
用户收到许可文件后,通过“激活产品”对话框右上角的“导入许可文件”按钮,导入许可,即可完成激活。
2.4.3在线授权进行在线授权的计算机必须能够上网,通过以下步骤进行在线授权: 步骤1:【应用程序菜单】->“激活产品”。
步骤2:在弹出的对话框中输入购买的用户帐号和许可密钥,点击“激活”。
2021上海格西信息科技有限公司 格西调试精灵 19
3.直接激励项目 3.1简介 直接激励项目提供了发送数据的功能,采用列表结构组织激励项。
支持16进制、字符串和文件三种数据格式,支持激励项延时,支持激励项使能,支持立即执行激励项(左边激励按钮,忽略激活属性)。
3.2基本操作3.2.1新建直接激励项目 步骤1:【应用程序菜单】->“新建”->“直接激励项目”。
步骤2:选择项目路径,输入项目名称,点击“保存”。
3.2.2打开直接激励项目 方法1:步骤1:【应用程序菜单】->“打开”->“直接激励项目”。
步骤2:选择项目文件,点击“打开”。
方法2:步骤1:【应用程序菜单】->在“最近项目”面板中选择需要打开的项目。
2021上海格西信息科技有限公司 格西调试精灵 20 3.2.3关闭直接激励项目 步骤1:【控制台】->选择“直接激励管理器”。
步骤2:【应用程序菜单】->“关闭”。
3.2.4保存直接激励项目 步骤1:【控制台】->选择“直接激励管理器”。
步骤2:【应用程序菜单】->“保存”或者“另存为”。
3.2.5修改直接激励项目属性 步骤1:【控制台】->选择“直接激励管理器”。
步骤2:【工具栏】->“属性”;或者,【控制台】->鼠标右键弹出快捷菜单->“属性”。
直接激励项目属性 工程名称文件路径 属性 说明显示工程的名称,可修改。
显示工程文件的存储路径,不可以修改。
3.2.6添加直接激励项 步骤1:【控制台】->选择“直接激励管理器”。
步骤2:在“直接激励管理器”中选中一个激励项,新添加激励项将插入选中激励项的前面。
步骤3:【工具栏】->“添加”->“添加直接激励”;或者,【控制台】->鼠标右键弹出快捷菜单->“添加直接激励”。
步骤4:编辑新添加激励项的数据格式、数据、延时、激活属性。
3.2.7删除直接激励项 步骤1:【控制台】->选择“直接激励管理器”。
步骤2:在“直接激励管理器”中选中要删除的激励项。
步骤3:【工具栏】->“删除”;或者,【控制台】->鼠标右键弹出快捷菜单->“删除”。
2021上海格西信息科技有限公司 格西调试精灵 21 3.2.8激励 激励前提:通信接口已经打开。
步骤1:【控制台】->选择“直接激励管理器”。
步骤2:【工具栏】->“激励”;或者,【工具栏】->“激励”菜单->“激励”/“循环激励”;或者,【控制台】->鼠标右键弹出快捷菜单->“激励”/“循环激励”。
3.2.9停止激励 停止激励前提:正在激励。
步骤1:【控制台】->选择“直接激励管理器”。
步骤2:【工具栏】->“停止”;或者,【控制台】->鼠标右键弹出快捷菜单->“停止”。
3.3用途 直接激励项目有如下几种使用环境。
与被激励方进行命令交互,作为监控被激励方的命令控制台给被激励方增加干扰信号,测试被激励方 2021上海格西信息科技有限公司 格西调试精灵 22
4.协议激励项目 4.1简介 协议是通信系统必不可少的部分,如何组织和开展有效的协议测试,低成本地应付快速多变的通信环境,越来越受到企业和研发人员的关注。
过去,需要为每一份通信协议定制一个测试工具,众多定制的测试工具,极大的增加测试开发、维护和学习成本,与竞争日益激烈的现代电子研发行业背道而驰。
格西调试精灵的协议激励功能彻底地把多变的通信规约脱离通信软件,使得通信软件能够应付快速多变的通信环境。
格西调试精灵协议激励功能带来的好处:单一的测试工具取代众多定制的测试工具,极大的降低测试开发、维护和学习成本快捷的激励源管理方式,即改即测,极大的降低研发成本以文件的方式组织项目,有利于管理众多的测试项目,有利于测试标准化支持循环激励与激励报告,提高测试自动化水平 4.2基本操作4.2.1新建协议激励项目 步骤1:【应用程序菜单】->“新建”->“协议激励项目”。
步骤2:选择项目路径,输入项目名称,点击“保存”。
4.2.2打开协议激励项目 方法1:步骤1:【应用程序菜单】->“打开”->“协议激励项目”。
步骤2:选择项目文件,点击“打开”。
方法2:步骤1:【应用程序菜单】->在“最近项目”面板中选择需要打开的项目。
4.2.3关闭协议激励项目 步骤1:【控制台】->选择“协议激励管理器”。
步骤2:【应用程序菜单】->“关闭”。
4.2.4保存协议激励项目 步骤1:【控制台】->选择“协议激励管理器”。
步骤2:【应用程序菜单】->“保存”或者“另存为”。
4.2.5修改协议激励项目属性 步骤1:【控制台】->选择“协议激励管理器”。
步骤2:在“协议激励管理器”中选择项目节点。
步骤3:【工具栏】->“属性”;或者,【控制台】->鼠标右键弹出快捷菜单->“属性”。
2021上海格西信息科技有限公司 格西调试精灵 23 协议激励项目属性 属性 说明 工程名称 工作模式 文件路径协议变量(通过工具栏的“变量”按钮打开) 显示工程的名称,可修改。
协议激励工程支持“单工”和“双工”两种工作模式。
“单工”模式下不管有没有“被动模式”的协议项,一律按照顺序执行选中的协议项;“双工”模式下“主动模式”协议项和“被动模式”协议项是分别同时执行的,“主动模式”协议项按顺序执行,“被动模式”的协议项是不按照顺序的,匹配正确即执行。
例如:模拟主动型设备,按需求可用“单工”或者“双工”;模拟被动型设备,一般使用“双工”,等待需要执行的命令。
显示工程文件的存储路径,不可以修改。
支持设置工程的全局变量,一条记录由“变量名称”、“变量值”和“赋值掩码”组成,协议执行过程中,自动匹配“变量名称”,如果协议项的对应字段的名称和变量名称一致,并且默认值等于“赋值掩码”,则使用“变量值”替换对应的字段值。
一般用在类似设备地址常出现而且变化的变量字段中,方便在更换设备时统一操作。
4.2.6添加协议集 步骤1:【控制台】->选择“协议激励管理器”。
步骤2:在“协议激励管理器”中选中一个协议项/协议集,作为新添加协议集的位置。
步骤3:【工具栏】->“添加”->“添加协议集”;或者,【控制台】->鼠标右键弹出快捷菜单->“添加协议集”。
步骤4:在协议集属性对话框中输入协议集名称,点击“确定”。
2021上海格西信息科技有限公司 格西调试精灵 24 步骤5:选择新添加协议集相对当前选中项的位置,点击“确定”。
4.2.7添加协议项 步骤1:【控制台】->选择“协议激励管理器”。
步骤2:在“协议激励管理器”中选中一个协议项/协议集,作为新添加协议的位置。
步骤3:【工具栏】->“添加”->“添加协议”;或者,【控制台】->鼠标右键弹出快捷菜单->“添加协议”。
步骤4:在协议属性对话框中,输入相关参数,点击“确定”。
2021上海格西信息科技有限公司 格西调试精灵 25 协议名称激活 属性 协议类型 工作模式 协议延时失效超时循环次数 期望响应 请求帧响应帧1/响应帧2/响应帧3协议脚本 说明 描述协议名称。
使能协议节点。
为了实现结果数据的分类显示,协议激励项目能够自定义数据类型,协议项在激励时根据所属的协议类型把结果输出到对应的自定义数据区中。
可以通过“管理协议类型”按钮打开协议类型管理器。
协议项的工作模式有“主动模式”和“被动模式”两种。
“主动模式”表示该协议项是主动命令,是发送请求帧,校验响应帧;“被动模式”表示该协议项是被动命令,是等待请求帧,然后根据请求帧情况发送响应帧。
表示协议执行完毕后延时多长才进入下一个协议激励。
表示协议在匹配到正确数据之前最长等待时间,超过该时间长度即判失败。
表示循环激励该协议的次数。
“主动模式”表示发送请求帧后期望收到的响应帧,默认值表示自动匹配;“被动模式”表示收到请求帧后发送出去的响应帧,默认值表示发送响应帧
1。
显示和编辑请求帧的格式和内容。
参见4.3节。
显示和编辑响应帧1/响应帧2/响应帧3的格式和内容。
参见4.3节。
显示和编辑协议脚本。
参见4.4节。
步骤5:选择新添加协议相对当前选中项的位置,点击“确定”。
4.2.8激励 激励前提:通信接口已经打开。
步骤1:【控制台】->选择“协议激励管理器”。
步骤2:【工具栏】->“激励”;或者,【工具栏】->“激励”菜单->“激励”/“循环激励”;或者,【控制台】->鼠标右键弹出快捷菜单->“激励”/“循环激励”。
4.2.9停止激励 停止激励前提:正在激励。
步骤1:【控制台】->选择“协议激励管理器”。
步骤2:【工具栏】->“停止”;或者,【控制台】->鼠标右键弹出快捷菜单->“停止”。
4.3协议帧协议帧由一个或者多个帧格式单元组成,帧格式单元可以非字节对齐,但协议帧必须字节对齐。
2021上海格西信息科技有限公司 格西调试精灵 26 帧格式单元 属性序号名称 数据格式 属性(变量类型) 说明 表示帧格式单元的排列顺序。
表示帧格式单元的名称。
表示帧格式单元的数据构成,可以有多段数据格式构成。
数据格式左边表示位数,右边表示数值。
数据格式的位数可以是任意位数。
例如: 单段字节对齐 , 多段字节对齐 , 单段非字节对齐 , 多段非字节对齐 。
帧格式单元的变量类型支持普通变量、计算变量和重复变量三种。
普通 变量是常量;计算变量是通过计算前面数据得到的结果作为变量值,如 校验和;重复变量是指该变量在该数据帧中可能重复多次,0
表示自 动,可表示0~n次,>0表示精确次数。
2021上海格西信息科技有限公司 格西调试精灵 属性(存储模式) 属性(显示方式)属性(匹配)工具条 命令添加删除上移下移添加格式单元删除格式单元 4.4协议脚本 4.4.1脚本界面 27 帧格式单元的数据支持小端模式和大端模式两种存储模式,例如,字节顺序从低到高(即发送/接收的字节顺序)为0x120x340x56,小端模 式下设置为 ,大端模式下设置为 。
帧格式单元的数据支持16进制和字符串两种显示方式,其中字符串的字 符编码方式由设置中的字符编码方式决定。
匹配选择用来判断协议帧完整性。
功能在当前选择的帧格式单元中插入新的帧格式单元。
删除当前选择的帧格式单元。
将当前选择的帧格式单元向上移动一格。
将当前选择的帧格式单元向下移动一格。
在当前选择的帧格式单元中添加一个数据格式单元。
删除当前选择的帧格式单元中的数据格式单元。
2021上海格西信息科技有限公司 格西调试精灵 28 工具条 脚本语言编译检查导入导出剪切复制粘贴删除清除 命令 功能 设置本协议项的脚本语言,支持C#、VB、Jscript三种语言。
通过编译检查当前脚本的是否有错误。
导入外部存储的脚本。
将当前的脚本导出为文件。
剪切选中的脚本文本。
复制选中的脚本文本。
在当前光标位置粘贴剪切板的文本。
删除选中的脚本文本。
清除所有脚本。
脚本有错误,编译检查会提示错误的位置、错误码以及错误信息。
4.4.2脚本结构 协议脚本支持C#、VB、Jscript三种语言,软件安装目录下的Scripts子目录保存了三种语言的脚本模版,可以通过“导入”命令导入脚本编辑器。
下面是C#版本的脚本模版,由一个.NET类Script构成,该类包含三个方法,分别是OnRequest方法,OnProcess方法,OnRespond方法。
/*************************************************************************Copyright(c)2014,上海格西信息科技有限公司文件名称:Script.cs文件描述:C#脚本模版 **************************************************************************/ /***命名空间定义*///usingSystem; 2021上海格西信息科技有限公司 格西调试精灵 29 /***脚本类*/publicclassScript{ /*************************************************************************函数名称:OnRequest功能说明:主动模式在发送请求帧之前执行,被动模式在接收请求帧之后执行。
输入参数:context–运行时上下文,存储运行时的参数输出参数:无返回参数:成功返回
1,失败返回0*************************************************************************/publicintOnRequest(BSCaseContextcontext){ return1;} /*************************************************************************函数名称:OnProcess功能说明:等待接收/发送响应帧时每一个处理周期(约5ms)执行1次。
输入参数:context–运行时上下文,存储运行时的参数输出参数:无返回参数:成功返回
1,失败返回0*************************************************************************/publicintOnProcess(BSCaseContextcontext){ return1;} /*************************************************************************函数名称:OnRespond功能说明:主动模式接收响应帧之后执行,被动模式在发送响应帧之后执行。
输入参数:context–运行时上下文,存储运行时的参数输出参数:无返回参数:成功返回
1,失败返回0*************************************************************************/publicintOnRespond(BSCaseContextcontext){ return1;}} 4.4.3脚本参数BSCaseContext类 脚本函数的唯一输入参数是BSCaseContext类型,该类型实例承载了整个激励过程的脚本执行上下文,BSCaseContext类提供了属性和方法让脚本调用,完成对激励、协议帧、通信接口参数等执行参数的控制和管理。
2021上海格西信息科技有限公司 格西调试精灵 30 4.4.3.1Power属性 获取或者设置激励的运行状态,该值表明激励是否在运行。
语法C# VB publicboolPower{get;set;} 属性值类型:System.BooleanPublicPropertyPowerAsBoolean GetSet属性值类型:System.Boolean 备注当需要停止激励运行时,可以在脚本中设置Power值为false,脚本运行完毕后停止激励。
示例 下面的示例在脚本的OnRequest方法中设置Power为false。
publicintOnRequest(BSCaseContextcontext) { context.Power=false;C# context.Msg="Power=false.\r\n"; return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.Power=false VB context.Msg="Power=false.\r\n" OnRequest=
1 EndFunction 4.4.3.2CommParameters属性 获取用于描述通信接口的对象。
在串口通信中,该对象的类型为BSComStreamParameters,参见4.4.4,在网络接口通信中,该对象的类型为BSNetStreamParameters,参见4.4.5。
语法C# VB publicobjectCommParameters{get;} 属性值类型:System.ObjectPublicReadOnlyPropertyCommParametersAsObject Get属性值类型:System.Object 备注 2021上海格西信息科技有限公司 格西调试精灵 31 当需要运行中获取或者修改通信接口参数时,可以在脚本中先把CommParameters转换通信接口参数类型,然后再进行操作。
示例下面的示例在脚本的OnRespond方法中设置串口通信接口参数。
publicintOnRespond(BSCaseContextcontext){ Params=context.CommParametersasBSComStreamParameters; comParams.BaudRate=115200;//波特率设置为Params.Parity=Parity.Odd;//校验位设置为奇校验 C# StringBuildersb=newStringBuilder(); sb.Append(string.Format("串口通信参数设置为:BaudRate={0},Parity={1}\r\n", comParams.BaudRate,Params.Parity)); //输出信息 context.Msg=sb.ToString(); return1;}PublicFunctionOnRespond(ByRefcontextAsBSCaseContext)AsInteger ParamsAsParams=DirectCast(context.CommParameters,BSComStreamParameters)Params.BaudRate=115200'波特率设置为Params.Parity=Parity.Odd'校验位设置为奇校验 DimsbAsStringBuilder VB sb=newStringBuilder() sb.Append(String.Format("串口通信参数设置为:BaudRate={0},Parity={1}\r\n", comParams.BaudRate,Params.Parity)) '输出信息 context.Msg=sb.ToString() OnRequest=1EndFunction 4.4.3.3Msg属性 获取或者设置一个信息字符串,该字符串在脚本函数结束后显示到数据区。
语法C#VB publicstringMsg{get;set;} 属性值类型:System.StringPublicPropertyMsgAsString GetSet 2021上海格西信息科技有限公司 格西调试精灵 32 属性值类型:System.String 备注当需要在脚本函数结束后显示信息到数据区时,可以在脚本函数中设置Msg值,Msg的值是读后清除的,如果需要设置多个信息,可以先通过StringBuilder拼接,再统一赋值给Msg,或者使用AppendMsg方法。
示例 下面的示例在脚本的OnRequest方法中设置Msg。
publicintOnRequest(BSCaseContextcontext) { C# context.Msg="HelloWorld.\r\n"; return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.Msg="HelloWorld.\r\n"VB OnRequest=
1 EndFunction 4.4.3.4MatchResult属性 获取协议匹配的索引号。
从0开始,匹配请求帧有效值为
0,匹配响应帧有效值为0,1和
2。
语法C# VB publicintMatchResult{get;}属性值类型:System.IntegerPublicPropertyMatchResultAsInteger Get 属性值类型:System.Integer 备注 示例下面的示例在脚本的OnRespond方法中获取。
publicintOnRespond(BSCaseContextcontext){ if(context.MatchResult==0){ //期望收到响应帧1C# stringmsg="响应帧1的帧格式单元3:"+context.GetRespondValue(0,2)+"\r\n"; context.Msg=msg;return1;//返回成功} 2021上海格西信息科技有限公司 格西调试精灵 33 return0;//返回失败 } PublicFunctionOnRespond(ByRefcontextAsBSCaseContext)AsInteger DimmsgAsString Ifcontext.MatchResult=0Then '期望收到响应帧
1 msg="响应帧1的帧格式单元3:"+context.GetRespondValue(0,2)+"\r\n" VB context.Msg=msg OnRespond=1'返回成功 EndIf OnRespond=0'返回失败EndFunction 4.4.3.5ExpectedRespond属性 获取或设置Respond属性的索引,有效值从0开始。
主动模式表示期望收到的Respond的index,-1表示自动检测,从动模式表示收到Request后要响应的Respond的索引。
语法C# VB publicintExpectedRespond{get;set;} 属性值类型:System.IntegerPublicPropertyExpectedRespondAsInteger GetSet属性值类型:System.Integer 备注 示例 下面的示例在脚本的OnRequest方法中获取。
publicintOnRequest(BSCaseContextcontext) { //期望的响应帧 C# stringmsg="协议期望的响应帧:"+context.ExpectedRespond+"\r\n"; context.Msg=msg; return1;//返回成功 } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger DimmsgAsString msg="协议期望的响应帧:"+context.ExpectedRespond+"\r\n"VB context.Msg=msg OnRequest=1'返回成功 EndFunction 2021上海格西信息科技有限公司 格西调试精灵 34 4.4.3.6CaseProjectName属性 获取协议激励项目名称。
语法C# publicstringCaseProjectName{get;}属性值类型:System.String 4.4.3.7CaseName属性 获取协议激励项目正在执行的协议条目名称。
语法C# publicstringCaseName{get;}属性值类型:System.String 4.4.3.8WorkingDirectory属性 获取当前工作目录。
语法C# publicstringWorkingDirectory{get;}属性值类型:System.String 4.4.3.9Loops属性 获取或设置当前执行协议条目的循环次数。
语法C# publicintLoops{get;set;}属性值类型:System.Integer 4.4.3.10AppendMsg方法 添加一个信息字符串,该字符串将附加在原来Msg后面,在脚本函数结束后显示到数据区。
语法C# publicvoidAppendMsg(stringmsg)参数 2021上海格西信息科技有限公司 格西调试精灵 35 msg类型:System.String要附加到Msg后面的新字符串 PublicSubAppendMsg(msgAsString) 参数 VB msg 类型:System.String 要附加到Msg后面的新字符串 备注当需要设置多个信息时,使用AppendMsg方法。
示例 下面的示例在脚本的OnRequest方法中使用AppendMsg添加多个信息字符串。
publicintOnRequest(BSCaseContextcontext) { context.AppendMsg("HelloA.\r\n");C# context.AppendMsg("HelloB.\r\n"); return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.AppendMsg("HelloA.\r\n") VB context.AppendMsg("HelloB.\r\n") OnRequest=
1 EndFunction 4.4.3.11GetVariant方法 获取用户自定义变量的值。
语法C# publicobjectGetVariant(objectkey) 参数key类型:System.Object用户变量的名称,是一个关键字,不允许有重复的key 返回值类型:System.Object用户变量的值,用户通过强制类型转换获取实际类型的值 PublicFunctionGetVariant(keyAsObject)AsObject 参数 VB key 类型:System.Object 用户变量的名称,是一个关键字,不允许有重复的key 2021上海格西信息科技有限公司 格西调试精灵 36 返回值类型:System.Object用户变量的值,用户通过强制类型转换获取实际类型的值 备注当需要在激励运行过程中设置用户自定义变量时,使用SetVariant方法,在需要获取时通过GetVariant方法获取,自定义的变量在整个激励运行过程中有效。
示例 下面的示例在脚本的OnRequest方法中使用GetVariant。
publicintOnRequest(BSCaseContextcontext) { context.SetVariant("Str1","HelloA.\r\n");C# context.Msg=context.GetVariant("Str1").ToString(); return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.SetVariant("Str1","HelloA.\r\n") VB context.Msg=context.GetVariant("Str1").ToString() OnRequest=
1 EndFunction 4.4.3.12SetVariant方法 设置用户自定义变量的值。
语法C# VB publicvoidSetVariant(objectkey,objectval) 参数key类型:System.Object用户变量的名称,是一个关键字,如果变量存在,修改原来变量的值,不存在则创建val类型:System.Object用户变量的值 PublicSubSetVariant(keyAsObject,valAsObject) 参数key类型:System.Object用户变量的名称,是一个关键字,如果变量存在,修改原来变量的值,不存在则创建val类型:System.Object用户变量的值 备注当需要在激励运行过程中设置用户自定义变量时,使用SetVariant方法。
2021上海格西信息科技有限公司 格西调试精灵 37 示例 下面的示例在脚本的OnRequest方法中使用SetVariant。
publicintOnRequest(BSCaseContextcontext) { context.SetVariant("Str1","HelloA.\r\n");C# context.Msg=context.GetVariant("Str1").ToString(); return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.SetVariant("Str1","HelloA.\r\n") VB context.Msg=context.GetVariant("Str1").ToString() OnRequest=
1 EndFunction 4.4.3.13GetRequestValue方法 获取请求帧的帧格式单元的值。
语法C# publicstringGetRequestValue(intunitIndex) 参数unitIndex类型:System.Integer帧格式单元索引,索引号从0开始。
返回值类型:System.String帧格式单元的值 PublicFunctionGetRequestValue(unitIndexAsInteger)AsString 参数 unitIndex 类型:System.Integer VB 帧格式单元索引 返回值类型:System.String帧格式单元的值 备注获取请求帧的帧格式单元的值。
示例下面的示例在脚本的OnRespond方法中使用GetRequestValue。
publicintOnRespond(BSCaseContextcontext){C# stringval=context.GetRequestValue
(0);context.Msg=val; 2021上海格西信息科技有限公司 格西调试精灵 38 return1;}PublicFunctionOnRespond(ByRefcontextAsBSCaseContext)AsInteger DimvalAsStringval=context.GetRequestValue
(0)VBcontext.Msg=valOnRequest=1EndFunction 4.4.3.14SetRequestValue方法 设置请求帧的帧格式单元的值,通常用于主动模式,在发送请求帧之前修改帧数据。
语法C# publicintSetRequestValue(intunitIndex,stringunitValue) 参数unitIndex类型:System.Integer帧格式单元索引,索引号从0开始。
unitValue类型:System.String新帧格式单元的值 返回值 类型:System.Integer 成功返回
0,失败返回-
1 PublicFunctionSetRequestValue(unitIndexAsInteger,unitValueAsString)As Integer 参数 unitIndex 类型:System.Integer 帧格式单元索引,索引号从0开始。
VB unitValue 类型:System.String 新帧格式单元的值 返回值类型:System.Integer成功返回
0,失败返回-
1 备注当需要在激励运行过程中需要更改协议帧的帧格式单元的值时,使用SetRequestValue方法。
示例下面的示例在脚本的OnRequest方法中使用SetRequestValue。
publicintOnRequest(BSCaseContextcontext)C# { 2021上海格西信息科技有限公司 格西调试精灵 39 context.SetRequestValue(
1,"02");return1;}PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsIntegercontext.SetRequestValue(
1,"02")VBOnRequest=1EndFunction 4.4.3.15GetRespondValue方法 获取响应帧的帧格式单元的值。
语法C# publicstringGetRespondValue(intrespondIndex,intunitIndex) 参数respondIndex类型:System.Integer响应帧索引,目前合法值0、1和
2。
unitIndex类型:System.Integer帧格式单元索引,索引号从0开始。
返回值 类型:System.String 帧格式单元的值 PublicFunctionGetRespondValue(respondIndexAsInteger,unitIndexAsInteger)As String 参数 respondIndex 类型:System.Integer 响应帧索引,目前合法值0、1和
2。
VB unitIndex 类型:System.Integer 帧格式单元索引 返回值类型:System.String帧格式单元的值 备注获取响应帧的帧格式单元的值,判断收到的激励响应是否正确。
示例下面的示例在脚本的OnRespond方法中使用GetRespondValue。
publicintOnRespond(BSCaseContextcontext){C# stringval=context.GetRespondValue(0,1);context.Msg=val; 2021上海格西信息科技有限公司 格西调试精灵 40 return1;}PublicFunctionOnRespond(ByRefcontextAsBSCaseContext)AsInteger DimvalAsStringval=context.GetRespondValue(0,1)VBcontext.Msg=valOnRequest=1EndFunction 4.4.3.16SetRespondValue方法 设置响应帧帧的帧格式单元的值,通常用于被动模式,在发送响应帧之前修改帧数据。
语法C# publicintSetRepondValue(intrespondIndex,intunitIndex,stringunitValue) 参数respondIndex类型:System.Integer响应帧索引,目前合法值0、1和
2。
unitIndex类型:System.Integer帧格式单元索引,索引号从0开始。
unitValue类型:System.String新帧格式单元的值 返回值类型:System.Integer成功返回
0,失败返回-1PublicFunctionSetRepondValue(respondIndexAsInteger,unitIndexAsInteger,unitValueAsString)AsInteger参数respondIndex类型:System.Integer响应帧索引,目前合法值0、1和
2。
unitIndex类型:System.IntegerVB帧格式单元索引,索引号从0开始。
unitValue类型:System.String新帧格式单元的值 返回值类型:System.Integer成功返回
0,失败返回-
1 备注 2021上海格西信息科技有限公司 格西调试精灵 41 一般在被动模式协议项中使用该方法,收到请求帧后,做出响应。
示例 下面的示例在脚本的OnRequest方法中使用SetRepondValue。
publicintOnRequest(BSCaseContextcontext) { C# context.SetRepondValue(0,
1,"02"); return1; } PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger context.SetRepondValue(0,
1,"02")VB OnRequest=
1 EndFunction 4.4.3.17GetRequestData方法 获取请求帧的字节数组。
语法C# VB publicbyte[]GetRequestData()参数无。
返回值类型:System.Byte[]请求帧的字节数组PublicFunctionGetRequestData()AsByte()参数无 返回值类型:System.Byte()请求帧的字节数组 备注无。
4.4.3.18GetRespondData方法 获取响应帧的字节数组。
语法C# publicbyte[]GetRespondData(intrespondIndex) 参数respondIndex类型:System.Integer响应帧索引,目前合法值0、1和
2。
2021上海格西信息科技有限公司 格西调试精灵 42 VB 备注无。
返回值类型:System.Byte[]响应帧的字节数组PublicFunctionGetRespondData(respondIndexAsInteger)AsByte()参数respondIndex类型:System.Integer响应帧索引,目前合法值0、1和
2。
返回值类型:System.Byte()响应帧的字节数组 4.4.3.19GetMatchData方法 获取匹配的结果字节数组。
语法C# VB publicbyte[]GetMatchData()参数无。
返回值类型:System.Byte[]匹配的结果字节数组PublicFunctionGetMatchData()AsByte()参数无 返回值类型:System.Byte()匹配的结果字节数组 备注不管主动模式还是被动模式,均采用该组方法获取收到的数据。
4.4.3.20GetMatchData方法 根据单元索引获取匹配的结果字节数组。
语法C# publicbyte[]GetMatchData(intunitIndex)参数unitIndex 2021上海格西信息科技有限公司 格西调试精灵 43 类型:System.Integer帧格式单元索引,索引号从0开始。
返回值类型:System.Byte[]匹配的单元结果字节数组 备注不管主动模式还是被动模式,均采用该组方法获取收到的数据。
4.4.3.21GetMatchValue方法 根据单元索引获取匹配的结果字符串值。
语法C# publicstringGetMatchValue(intunitIndex) 参数unitIndex类型:System.Integer帧格式单元索引,索引号从0开始。
返回值类型:System.String匹配的单元结果字符串值 备注不管主动模式还是被动模式,均采用该组方法获取收到的数据。
4.4.3.22GetCaseVariable方法 根据变量名称获取协议变量表的值。
语法C# publicstringGetCaseVariable(stringname) 参数name类型:System.String协议变量表的变量名称。
返回值类型:System.String协议变量值 备注 2021上海格西信息科技有限公司 格西调试精灵 44 4.4.3.23SetCaseVariable方法 设置协议变量表的变量值。
语法C# publicboolSetCaseVariable(stringname,stringvalue) 参数name类型:System.String协议变量表的变量名称。
value类型:System.String新的变量值(必须为等价的16进制表示字符串)。
返回值类型:System.Boolean成功返回true,失败返回false 备注 4.4.3.24SetCaseVariable方法 设置协议变量表的变量值和掩码。
语法C# publicboolSetCaseVariable(stringname,stringvalue,stringvalueMask) 参数name类型:System.String协议变量表的变量名称。
value类型:System.String新的变量值(必须为等价的16进制表示字符串)。
valueMask类型:System.String新的变量掩码(必须为等价的16进制表示字符串)。
返回值类型:System.Boolean成功返回true,失败返回false 备注 4.4.3.25GotoCase方法跳到指定偏移的Case执行。
2021上海格西信息科技有限公司 格西调试精灵 45 语法C# 备注 publicvoidGotoCase(intoffset)参数offset类型:System.Integer偏移值,向前跳用负数,向后跳用正数,0表示再执行本Case。
返回值无 4.4.4串口参数BSComStreamParameters类4.4.4.1Port属性 获取或设置串口通信端口。
语法C# VB publicstringPort{get;set;} 属性值类型:System.StringPublicPropertyPortAsString GetSet属性值类型:System.String 备注 示例下面的示例在脚本的OnRequest方法中获取串口Port。
publicintOnRequest(BSCaseContextcontext){ Params=context.CommParametersasBSComStreamParameters; StringBuildersb=newStringBuilder();sb.Append(string.Format("串口号为:Port={0}\r\n",C# comParams.Port));//输出信息context.Msg=sb.ToString(); return1;}PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsIntegerVB ParamsAsBSComStreamParameters 2021上海格西信息科技有限公司 格西调试精灵 46 comParams=DirectCast(context.CommParameters,BSComStreamParameters) DimsbAsStringBuildersb=newStringBuilder()sb.Append(String.Format("串口号为:Port={0}\r\n", comParams.Port))'输出信息context.Msg=sb.ToString()OnRequest=1EndFunction 4.4.4.2BaudRate属性 获取或设置串口通信端口的波特率。
语法C# VB publicintBaudRate{get;set;} 属性值类型:System.IntegerPublicPropertyBaudRateAsInteger GetSet属性值类型:System.Integer 备注用户的串行驱动程序必须支持波特率。
示例下面的示例在脚本的OnRequest方法中设置。
publicintOnRequest(BSCaseContextcontext){ Params=context.CommParametersasBSComStreamParameters; C#Params.BaudRate=115200;//波特率设置为115200 return1;}PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsInteger ParamsAsParams=DirectCast(context.CommParameters,BSComStreamParameters)Params.BaudRate=115200‘波特率设置为115200OnRequest=1EndFunction 2021上海格西信息科技有限公司 格西调试精灵 47 4.4.4.3DataBits属性 获取或设置每个字节的标准数据位长度。
语法C# VB publicintDataBits{get;set;} 属性值类型:System.IntegerPublicPropertyDataBitsAsInteger GetSet属性值类型:System.Integer 备注此属性的值范围为5到
8。
示例无 4.4.4.4Parity属性 获取或设置奇偶校验检查协议。
语法C# VB publicParityParity{get;set;} 属性值类型:System.IO.Ports.ParityParity值之
一,表示奇偶校验检查协议。
默认值为None。
PublicPropertyParityAsParity GetSet属性值类型:System.IO.Ports.ParityParity值之
一,表示奇偶校验检查协议。
默认值为None。
备注如果在流的尾字节上出现奇偶校验错误,将向输入缓冲区添加一个值为126的额外字节。
示例无 4.4.4.5Bits属性获取或设置每个字节的标准停止位数。
语法 2021上海格西信息科技有限公司 格西调试精灵 48 publicBitsBits{get;set;} C# 属性值 类型:System.IO.PortsBits Bits值之
一。
PublicPropertyBitsAsBitsGetSet VB属性值类型:System.IO.PortsBitsBits值之
一。
备注Bits的默认值为One。
不支持Bits.None选项。
将Bits属性设置为None将会引发ArgumentOutOfRangeException。
示例无 4.4.4.6Handshake属性 获取或设置串行端口数据传输的握手协议。
语法C# VB publicHandshakeHandshake{get;set;} 属性值类型:System.IO.Ports.HandshakeHandshake值之
一。
默认值为None。
PublicPropertyHandshakeAsHandshake GetSet属性值类型:System.IO.Ports.HandshakeHandshake值之
一。
默认值为None。
备注 示例无 4.4.4.7DtrEnable属性 获取或设置一个值,该值在串行通信过程中启用数据终端就绪(DTR)信号。
语法C# publicboolDtrEnable{get;set;} 2021上海格西信息科技有限公司 格西调试精灵 49 属性值类型:System.Boolean如果为true,则启用数据终端就绪(DTR);否则为false。
默认值为false。
PublicPropertyDtrEnableAsBoolean GetSetVB属性值类型:System.Boolean如果为true,则启用数据终端就绪(DTR);否则为false。
默认值为false。
备注在XON/XOFF软件握手、请求发送/可以发送(RTS/CTS)硬件握手和调制解调器通信的过程中通常启用数据终端就绪(DTR)。
示例无 4.4.4.8RtsEnable属性 获取或设置一个值,该值指示在串行通信中是否启用请求发送(RTS)信号。
语法C# VB publicboolRtsEnable{get;set;} 属性值类型:System.Boolean如果为true,则启用请求发送(RTS);否则为false。
默认值为false。
PublicPropertyRtsEnableAsBoolean GetSet属性值类型:System.Boolean如果为true,则启用请求发送(RTS);否则为false。
默认值为false。
备注请求发送(RTS)信号通常用在请求发送/可以发送(RTS/CTS)硬件握手中。
示例无 4.4.5网口参数BSNetStreamParameters类4.4.5.1Socket属性 获取网口通信端口。
语法C# publicSocketSocket{get;} 2021上海格西信息科技有限公司 格西调试精灵 50 VB备注 属性值类型:System.Net.Sockets.SocketPublicPropertyPortAsSocket GetSet属性值类型:System.Net.Sockets.Socket 4.4.6脚本中使用插件 本软件支持基于Microsoft.NETFramework的托管代码组件作为插件扩展脚本的功能。
关于插件及其编写和部署方式,参见
5。
在脚本中使用插件,非常方便,直接在脚本的函数中调用插件所提供的公共服务即可。
示例下面的示例在脚本的OnRequest方法中调用ParallelPort.dll插件(源代码位于软件安装目录下Samples\Plugins\ParallelPort中)。
publicintOnRequest(BSCaseContextcontext){ intval=Geshe.Utils.ParallelPort.Read(0x378);C# context.Msg="ReadParallelPort0x378.Value="+val.ToString();return1;}PublicFunctionOnRequest(ByRefcontextAsBSCaseContext)AsIntegerDimvalAsIntegerval=Geshe.Utils.ParallelPort.Read(&H378)VBcontext.Msg="ReadParallelPort0x378.Value="+val.ToString()OnRequest=1EndFunction 注:ParallelPort.dll插件第一次访问需要往系统System32目录安装并口驱动,这时候需要管理员权限才能执行。
2021上海格西信息科技有限公司 格西调试精灵 51
5.插件 本软件在运行时动态识别所有位于Plugins目录下的基于Microsoft.NETFramework的托管代码组件,并把它们作为插件在脚本中按需调用它们的公共服务。
5.1托管代码与非托管代码Microsoft.NETFramework是支持生成和运行下一代应用程序和网络服务的Windows组件。
.NET Framework具有两个主要组件:公共语言运行库(CommonLanguageRuntime)和.NETFramework类库(FrameworkClassLibrary)。
公共语言运行库是.NETFramework的基础,可以将运行库看作一个在执行时管理代码的代理,它提供内存管理、线程管理和远程处理等核心服务,并且还强制实施严格的类型安全以及可提高安全性和可靠性的其他形式的代码准确性。
事实上,代码管理的概念是运行库的基本原则,以运行库为目标的代码称为托管代码(Managedcode),而不以运行库为目标的代码称为非托管代码(Unmanagedcode)。
.NETFramework的另一个主要组件是类库,它是一个综合性的面向对象的可重用类型集合,可以使用它开发多种应用程序和网络服务程序。
托管代码与非托管代码的区别:托管代码是一种中间语言,以运行库为目标,运行在CLR上;非托管代码不以运行库为目标, 被编译为机器码,运行在机器上。
托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;非托管代码依赖于平台 和语言。
托管代码可享受CLR提供的服务,如安全检测、垃圾回收等,不需要自己完成这些操作;非托 管代码需要自己提供安全检测、垃圾回收等操作。
托管代码可以使用20多种支持Microsoft.NETFramework的高级语言编写,它们包括C#,J#,MicrosoftVisualBasic.NET,MicrosoftJScript.NET,以及VisualC++.NET等。
5.2编写插件所有基于Microsoft.NETFramework的托管代码组件都可以被本软件识别,并作为插件在脚本中 使用它们向外提供的功能,对插件的接口协议无任何要求。
编写插件的过程和编写普通基于Microsoft.NETFramework的托管代码类库和应用程序一样,只 要确保所要提供的功能是公开的(public)即可。
5.3使用托管代码的第三方库直接把基于Microsoft.NETFramework托管代码的第三方库,以及其依赖的库拷贝到本软件的 Plugins目录中即可。
5.4使用非托管代码的第三方库非托管代码,如C/C++编写的驱动程序库,不能被本软件识别和直接使用,需要通过一个托管代码 类库包装,以间接的方式使用。
首先,编写一个基于Microsoft.NETFramework的托管代码类库,在该类库中使用通过.NET Framework类库的System.Runtime.InteropServices命名空间中提供的各种各样支持COMInterop及平台调用服务的成员,与非托管代码进行交互操作。
最后,把包装好的托管类库以及引用的非托管代码库拷贝到本软件的Plugins目录中,脚本便可以通过访问包装类库间接执行非托管代码库。
2021上海格西信息科技有限公司 格西调试精灵 52
6.工具箱 6.1校验和计算器校验和计算器是一款支持CS、BCC、LRC校验和计算器计算,数据源可以是HEX数据字符串、字符 串(字符编码方式有设置中的字符编码方式决定)以及文件。
主界面 6.2CRC计算器CRC计算器是一款通用的循环冗余校验码(CyclicRedundancyCheck)计算工具。
支持CRC8、 CRC16和CRC32算法,可以自定义多项式、初始值、数据反转以及结果异或值,计算的数据源可以是HEX数据字符串、字符串(字符编码方式有设置中的字符编码方式决定)以及文件。
支持常用的CRC标准算法。
主界面 2021上海格西信息科技有限公司 格西调试精灵 53 常用的CRC标准算法选择界面 6.3DES计算器DES计算器是一款支持DES(64位密钥)、3DES(128位密钥)、3DES(192位密钥)的DES计算工具。
计算的数据源是HEX数据字符串,数据不足用0填充。
2021上海格西信息科技有限公司 格西调试精灵 54 主界面 6.4哈希值计算器哈希值计算器是一款支持MD5、SHA1、SHA256、SHA384、SHA512哈希算法的计算工具。
计算的数据 源可以是HEX数据字符串、字符串(字符编码方式有设置中的字符编码方式决定)以及文件。
主界面 2021上海格西信息科技有限公司 格西调试精灵 55 6.5ASCII码对照表主界面 2021上海格西信息科技有限公司 格西调试精灵 56 6.6字符编码转换器主界面 2021上海格西信息科技有限公司 格西调试精灵 57
7.应用技巧 7.1分类组织协议激励项目的协议项对于一个包含较多协议项的协议激励项目来说,可以按照应用的需求有组织地分类管理,组织成一个树型结构,管理上更加有条理,查找也更加方便。
例如,在一个通信协议测试中,通常把通信系统支持的协议组织成一个基本协议集,作为一个公共的协议库使用,然后再针对不同的测试用例创建特定的组合测试集。
7.2运行多个软件实例本软件支持多个软件实例同时运行,能够满足不同的使用环境和用户需求。
主要的应用场景:并行测试。
只要计算机配置和性能足够,可以同时运行多个软件实例,每一个软件实例检测一个通信接口,同时检测多个外部设备,最大限度降低测试成本。
复制和粘贴激励项。
本软件不仅支持软件实例内的复制和粘贴功能,还支持从一个软件实例到另一个软件实例的复制和粘贴功能,可以方便进行激励项的筛选和重构。
2021上海格西信息科技有限公司 格西调试精灵 58
8.FAQ 8.1进行“反馈”或者“注册软件”操作时,为什么出现Unknownerror(0x80041002)错误?答:在无法和外部网络服务器联系情况下进行“反馈”和“注册软件”操作,本软件会尝试启动Email程序进行Email发送,如果本机没有Email客户端程序,则出现此错误。
8.2进行协议激励时,从动方已经发出正确的帧,为什么主动激励方却返回失败?答:一种原因是主动激励协议的失效超时设计不合理,可以适当延长该协议项的失效超时。
2021上海格西信息科技有限公司

标签: #易语言 #发展前景 #网站建设 #网络推广 #电子商务 #什么时候开始 #营销策略 #十万个为什么