V6版本

Last updated: ... / Reads: 80 Edit

元芒数字 i 识别系统(WmAceKG)

Windows端 DLL 接口说明文档

image-20210604131103047

Version Release v6.0.0.2
更新时间: 2023.07.12

上海元芒数字科技有限公司

[TOC]

Windows端DLL接口文档

一、文档说明

1.1 版本说明

文档版本号SDK 版本号发布日期更新内容
v6.0.0.1v6.0.0.12023.6.21升级算法,发布新版本
v6.0.0.2v6.0.0.22023.07.121.新增接口:AutoDetectWithPic,识别并返回图片
2.新增接口:GetCropPoint,获取不规则裁剪秤盘设定的坐标
3.优化识别过程,识别获取图片时会判断图片是否为黑图(空图);

1.2 ⽂档概述

此文档用于说明元芒数字(WM)i 识别(AceKG)系统(简称 WmAceKG) Windows 系统接口开发使用,集成相关软件包,以实现相关功能的接口说明文档

1.3 术语定义及说明

  1. 术语说明
  • DLL:集成在 Windows 端的软件包;
  • 商品ID:用来唯一标识商品信息,可以是商品条码plu、商品code、商品id等,但在接口中要统一使用。
  1. 本文中所有传输内容无特殊说明均使用 ANSI 编码;

  2. 本文中的 DLL 适用于操作系统 Windows 7以上的版本,支持32或64位操作系统

二、 调用方法说明

2.1 集成方法说明

  1. 将压缩包内所有 DLL 放在程序可执行目录下即可
  2. 客户端加载WmAceKG-x86.dll (32位)
  3. 加载DLL中的函数即可
  4. 我方提供调用 demo :下载链接:https://ai-wmdigit.oss-cn-shanghai.aliyuncs.com/windows%E7%89%88%E6%9C%ACdll%E5%AF%B9%E6%8E%A5%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81/%E5%85%83%E8%8A%92windows%E7%89%88dll%E5%90%84%E8%AF%AD%E8%A8%80%E5%AF%B9%E6%8E%A5%E7%A4%BA%E4%BE%8B%E4%BB%A3%E7%A0%81.zip

2.2 接口调用流程描述

  1. 初始化dll接口:Init
  2. 设备初次使用,注册 pos 机:initpos
  3. 设置摄像头序号 SetCameraId
  4. 获取秤盘裁剪坐标 GetScaleSetting 如果为空 进入第5 否则进入第7
  5. 首先调用 GetScaleBitmap 获得一张原图 根据原图裁剪左上角 xy 坐标 和 长宽
  6. 设置秤盘裁剪坐标 SaveScaleSetting
  7. 调用AutoDetect 接口(其他说明放到对应的接口中了)
  8. 用户做出选择后,调用setFeedBack 接口,优化算法

2.3 接口时序图

三、 接⼝说明

所有接口皆返回错误码 不为0的情况皆是错误

具体业务返回值都在参数里面 作为引用传递 最后修改传入参数为最终结果

设备初始化

3.1 Init ( 初始化 )

  • 使用场景:初始化dll所需参数

  • 函数原型:在使用dll时(在程序最开始的时候首先调用此接口),先完成初始化,再调用其他接口

    Init() 
    
  • 请求参数:

    请求参数必填类型描述
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int Init();
    
    Init();
    

3.2 InitPos (注册 POS 接口 )

  • 使用场景:初始化识别所需要的内容,以及验证sncode是否正确,该接口需要连接互联网。注册成功后则无需再次调用。

  • (注):posCode:3-30位,不可重复

  • 函数原型:

    InitPos(char* tenant,char* posCode,char* snNo) 
    
  • 请求参数:

    请求参数必填类型描述
    tenantYchar*租户代码,线上申请后邮件发送
    posCodeYchar*pos机的编号,可自己编辑,一旦对应不可更改
    snNoYchar*sdk 码必填
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int InitPos(StringBuilder tenant, StringBuilder posCode, StringBuilder snNo);
    
    // 关于这几个参数 请咨询运维人员
    StringBuilder tenant = new StringBuilder("demo");
    StringBuilder posCode = new StringBuilder("zyx");
    StringBuilder snNo = new StringBuilder("123");
    InitPos(tenant, posCode, snNo);
    

3.3 SetCameraId (初始化摄像头-设置开启摄像头id)

  • 使用场景:由于设备可能有多个摄像头,提前设定好具体是哪个摄像头,默认是0。
  • (注):当close()之后,都必须再次调用此接口。
  • 函数原型:
SetCameraId (int num) 
  • 参数说明:
请求参数必填类型描述
numYint摄像头序号,一般从 0 开始
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int SetCameraId(int num);
    
    SetCameraId(0);
    

3.4 GetScaleBitmap (初始化秤盘信息-获取全景照片)

  • 使用场景:AI识别的是秤盘上的物品,需要提前标定好秤盘的位置,在标定秤盘位置前,获取全景照片准备开始标定(裁剪)秤盘。

    !!注意:调用之前,请设置摄像头序号。

    如果未设置裁剪坐标 ,不会返回裁剪后的cropPath,只会返回原图路径。

    如果设置了裁剪坐标,原图和裁剪后的图都会返回

  • 函数原型:

GetScaleBitmap (char* rawPath,char* cropPath);
  • 参数说明:
请求参数必填类型描述
rawPathYchar*原图路径 该值为引用传递 调用后会修改成最终结果
cropPathYchar*裁剪后的图片路径 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int GetScaleBitmap(StringBuilder path1, StringBuilder path2);
    
    // 原图路径
    StringBuilder path1 = new StringBuilder(128);
    // 裁剪后的图片路径
    StringBuilder path2 = new StringBuilder(128);
    int code = GetScaleBitmap(path1, path2);
    

3.5 SaveScaleSetting (初始化秤盘信息-标定秤盘并保存坐标信息)

  • 使用场景:AI识别的是秤盘上的物品,在识别商品时,AI只识别标定内的物品,该接口用来传递秤盘位置信息。

  • 秤盘必须为矩形,推荐宽高比例为4:3,比例为4:3的时识别的精度最高,识别最准。默认像素为640*480,所以x+width <640 y+height <480 并且 x!=0,y!=0。

  • 函数原型:

SaveScaleSetting (int x,int y,int width,int height);
  • 参数说明:
请求参数必填类型描述
xYint左上角 x 坐标值
yYint左上角 y 坐标值
widthYint宽度
heightYint高度
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int SaveScaleSetting(int x, int y, int width, int height);
    
    SaveScaleSetting(1, 1, 512, 384);
    

3.6 GetScaleSetting (判断秤盘是否已标定)

  • 使用场景:AI识别的是秤盘上的物品,在识别商品时,会提前判断本次秤盘是否已被标定,如果没有被标定,请重新初始化秤盘。

  • 函数原型:

GetScaleSetting(int& x,int& y,int& width,int& height);
  • 参数说明:
请求参数必填类型描述
xYint&左上角 x 坐标值 该值为引用传递 调用后会修改成最终结果
yYint&左上角 y 坐标值 该值为引用传递 调用后会修改成最终结果
widthYint&宽度 该值为引用传递 调用后会修改成最终结果
heightYint&高度 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功, 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int GetScaleSetting(ref int x, ref int y, ref int width, ref int height);
    
    int x = 0;
    int y = 0;
    int width = 0;
    int height = 0;
    int code = GetScaleSetting(ref x, ref y, ref width, ref height);
    

3.7_1 AutoDetect (商品识别)

  • 使用场景:开始识别商品,调用此接口;建议在重量触发时,秤盘稳定读数且读数>30g后调用,
  • 函数原型:
AutoDetect(char* productcode, char* sessionId)  
  • 请求参数:
请求参数必填类型描述
ProductcodeYchar*最匹配的商品代码 用逗号分割 该值为引用传递 调用后会修改成最终结果
sessionIdYchar*打称记录的 id 该 id 随机生成 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int AutoDetect(StringBuilder productcode, StringBuilder sessionId);
    
    // 商品代码
    StringBuilder productCodes = new StringBuilder(500);
    StringBuilder sessionId = new StringBuilder(20);
    AutoDetect(productCodes, sessionId);
    

3.7_2 AutoDetectWithPic(商品识别并返回识别的图像)

  • 使用场景:开始识别商品,调用此接口;建议在重量触发时,秤盘稳定读数且读数>30g后调用,

  • 函数原型:

AutoDetectWithPic(char* productcodes, char* sessionId,char *path);
  • 请求参数:
请求参数必填类型描述
ProductcodeYchar*最匹配的商品代码 用逗号分割 该值为引用传递 调用后会修改成最终结果
sessionIdYchar*打称记录的 id 该 id 随机生成 该值为引用传递 调用后会修改成最终结果
pathYchar *识别的商品图像 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int AutoDetectWithPic(StringBuilder productcode, StringBuilder sessionId,StringBuilder path);
    
    // 商品代码
    StringBuilder productCodes = new StringBuilder(500);
    StringBuilder sessionId = new StringBuilder(20);
    StringBuilder path = new StringBuilder(128);
    AutoDetectWithPic(productCodes, sessionId,path);
    

3.8 SetFeedBack (保存识别结果)

  • 使用场景:识别后传入选中结果(正确商品的code)和是否选中(hit),调用此接口,用于优化算法。

  • 关于hit字段详解:

    第一次使用dll 里面是没有任何商品信息的 这个时候你调用AutoDetect会返回你一个空字符串 你需要自己搜索一个商品 然后使用保存函数 hit=false

    再次使用AutoDetect这个时候 会把你上次保存的商品代码返回 因为本次识别,已经将商品对应的代码返回 所以使用保存函数的时候 hit=true

    总结:商品代码AutoDetect只返回一个正确结果就是true,其他都为false

    函数原型:

SetFeedBack (const char* code, char* sessionId, bool hit,char* productName)
  • 参数说明:
请求参数必填类型描述
codeYconst char*选择的商品代码
sessionIdYchar*打称记录 Id
hitYbool是否命中
productNameYchar*商品名称
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int SetFeedBack(byte[] code, StringBuilder sessionId,bool hit,byte[] productName);
    
    SetFeedBack(System.Text.Encoding.UTF8.GetBytes("00174"), sessionId, false,System.Text.Encoding.UTF8.GetBytes("FF散称商品"));
    

3.9 SetNoRecommend(删除商品学习结果)

  • 使用场景:删除商品学习结果

  • 函数原型:

SetNoRecommend (const char* code)
  • 参数说明:
请求参数必填类型描述
codeYconst char*商品代码
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int SetNoRecommend(byte[] code);
    
    SetNoRecommend(System.Text.Encoding.UTF8.GetBytes("00174"));
    

3.10 ImportData(导入学习数据)

  • 使用场景:如果拥有另一台机器已经学习完毕 可以使用该函数将学习数据导入

    导入之后必须重启程序 导入的文件名不能带有中文字符

  • 函数原型:

ImportData(char* path);
  • 参数说明:
请求参数必填类型描述
pathYconst char*导入的文件路径
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int ImportData(StringBuilder path);
    
    StringBuilder path = new StringBuilder(20);
    path = "/xxxx";
    ImportData(path);
    

3.11 ExportData(导出学习数据)

  • 使用场景:如果该机器已经学习完毕 可以使用该函数将学习数据导出

  • 函数原型:

ExportData(char* path);
  • 参数说明:
请求参数必填类型描述
pathYconst char*导出的文件路径 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int ExportData(StringBuilder path);
    
    StringBuilder path = new StringBuilder(20);
    ExportData(path);
    

3.12 Close(关闭资源)

  • 使用场景:程序退出时请使用该函数释放资源
  • 调用此函数后,进程没有退出,若需要再次使用dll的接口,需重新进行初始化流程
  • 备用函数 : 为了防止部分语言自带函数Close() 提供一个备选函数WMrelease() 供使用
  • 函数原型:
Close()
  • 参数说明:
请求参数必填类型描述
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int Close();
    
    Close();
    

3.13 UnBindPos(解绑POS)

  • 使用场景:解绑SN码
  • 函数原型:
UnBindPos(char* tenant, char* snNo);
  • 参数说明:
请求参数必填类型描述
tenantychar*租户
snNoychar*注册码
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int UnBindPos(StringBuilder tenant, StringBuilder snNo);
    
    UnBindPos(new StringBuilder("demo"),new StringBuilder("123"));
    

3.14 ClearTrainedData(清空学习记录)

  • 使用场景:清空学习记录
  • 使用此函数后,需要重启程序
  • 函数原型:
ClearTrainedData();
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int ClearTrainedData();
    
    ClearTrainedData();
    

3.15 SelectByName(自动配图)

  • 使用场景:自动匹配商品图片

  • 注: 网络不好会导致配图时间延长,断网无法匹配

  • 函数原型:

SelectByName(char* name, char* code, char* image)
  • 参数说明:
请求参数必填类型描述
nameYchar*商品名字(类型为UTF-8)
codeYchar*商品对应的plu
imageYchar*返回商品图片对应的URL
  • 返回值: 0代表成功,其他代表失败

  • 调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int SelectByName(byte[] name, byte[] code, byte[] image);

3.16 FreshChangeError(图片纠错)

  • 使用场景:识别的时候出现多个结果,想要删除不想看到的结果,使识别更精确时使用此功能
  • 注: 谨慎使用,可能会导致其他商品识别不准
  • 函数原型:
FreshChangeError(const char* code)
  • 参数说明:
请求参数必填类型描述
codeYchar*商品plu

返回值: 0代表成功,其他代表失败

调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int FreshChangeError(byte[] name);

3.17 SnCodeVerification(校验sn码)

  • 使用场景:获取sn码的状态,校验是否与本机绑定的一致。
  • 函数原型:
SnCodeVerification(char* snNo)
  • 参数说明:
请求参数必填类型描述
codeYchar*sn码

返回值: 0代表成功,其他代表失败

调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int SnCodeVerification(byte[] name);

3.18 Probation(试用接口)

  • 使用场景:在未注册的情况下试用sdk,试用期为15天
  • 函数原型:
Probation()
  • 参数说明:
请求参数必填类型描述

返回值: 0代表成功,其他代表失败

调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int Probation();

3.19 PreLearning(预学习)

  • 使用场景:对指定文件中的商品进行预学习,实现不学习即可识别商品。
  • 说明:此功能只是作为方便上手操作使用,由于秤盘不同,预学习的结果并不一定保证100%准确。
  • 函数原型:
PreLearning(char* path)
  • 参数说明:
请求参数必填类型描述
pathYchar*商品列表文件路径

返回值: 0代表成功,其他代表失败

注:文件格式

{"productList":[{"productName":"苹果","productNumber":"123"},{"productName":"香蕉","productNumber":"456"}]}

调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int PreLearning(byte[] path);

3.20 LrregularScaleSetting(标定秤盘位置信息,支持不规则裁剪秤盘)

  • 使用场景:AI识别的是秤盘上的物品,在识别商品时,AI只识别标定内的物品,该接口用来传递秤盘位置信息,需要传入4个坐标点的位置信息。

  • 注:相较于SaveScaleSetting接口,不再强制要求识别区域为规则矩形

  • 函数原型:

int LrregularScaleSetting(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
  • 参数说明:
请求参数必填类型描述
x1Yint点位1 x 坐标值
y1Yint点位1 y 坐标值
x2Yint点位2 x 坐标值
y2Yint点位2 y 坐标值
x3Yint点位3 x 坐标值
y3Yint点位3 y 坐标值
x4Yint点位4 x 坐标值
y4Yint点位4 y 坐标值
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int LrregularScaleSetting(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
    
    SaveScaleSetting(1, 1, 10, 200,400,50,300,400);
    

3.21 BatchMatchImages(批量匹配商品的图片)

  • 使用场景:支持批量请求配图接口,需要本地提前准备一份配图商品文件,该文件可以是txt或json类型。
  • 注: 网络不好会导致配图时间延长,超时时间为30s,但断网无法进行匹配商品图片。
  • 函数原型:
int BatchMatchImages(char* inPath, char* outPath);
  • 参数说明:
请求参数必填类型描述
inpathYchar*商品列表文件路径
outpathYchar*匹配结果列表文件路径

返回值: 0代表成功,其他代表失败

注:本地配图商品文件内容如下

inpath:

{"productList":[{"productName":"苹果","productNumber":"123"},{"productName":"香蕉","productNumber":"456"}]}

outpath:

{"productList":[{"productName":"苹果","productNumber":"123","matchProductUrl":"http://standard-product-picture-test.oss-cn-beijing.aliyuncs.com/wmsaas-prod/苹果.jpg"},{"productName":"香蕉","productNumber":"456","matchProductUrl":"http://standard-product-picture-test.oss-cn-beijing.aliyuncs.com/wmsaas-prod/香蕉.jpg"}]}

调用示例

[DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
private unsafe extern static int BatchMatchImages(byte[] inPath,byte[] outPath);

3.22 ReopenCamera(重新打开摄像头)

  • 使用场景:针对反馈的摄像头设备问题,提供重新打开接口。

  • 函数原型:

int ret = ReopenCamera (int num) 
  • 参数说明:
请求参数必填类型描述
numYint摄像头序号,一般从 0 开始
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int ReopenCamera(int num);
    
    ReopenCamera(0);
    

3.23 GetCropPoint(获取不规则裁剪秤盘设定的坐标)

  • 使用场景:获取不规则裁剪接口(LrregularScaleSetting)标定的坐标。
  • 注:坐标会按照逆时针排序的方式返回。
  • 函数原型:
int GetCropPoint(int x1, int y1, int x2, int y2, int x3, int y3, int x4, int y4);
  • 参数说明:
请求参数必填类型描述
x1Yint点位1 x 坐标值 该值为引用传递 调用后会修改成最终结果
y1Yint点位1 y 坐标值 该值为引用传递 调用后会修改成最终结果
x2Yint点位2 x 坐标值 该值为引用传递 调用后会修改成最终结果
y2Yint点位2 y 坐标值 该值为引用传递 调用后会修改成最终结果
x3Yint点位3 x 坐标值 该值为引用传递 调用后会修改成最终结果
y3Yint点位3 y 坐标值 该值为引用传递 调用后会修改成最终结果
x4Yint点位4 x 坐标值 该值为引用传递 调用后会修改成最终结果
y4Yint点位4 y 坐标值 该值为引用传递 调用后会修改成最终结果
  • 返回值:0代表成功 其他皆为失败

  • 调用示例:

    [DllImport(NativeLibrary, CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi)]
    private unsafe extern static int GetCropPoint(ref int x1, ref int y1,ref int x2, ref int y2,ref int x3, ref int y3,ref int x4, ref int y4);
    
    int x1 = 0;
    int y1 = 0;
    int x2 = 0;
    int y2 = 0;
    int x3 = 0;
    int y3 = 0;
    int x4 = 0;
    int y4 = 0;
    int code = GetCropPoint(ref x1, ref y1, ref x2, ref y2,ref x3, ref y3,ref x4, ref y4);
    

附录 1:商品识别返回错误码

错误码描述解决方案
0成功
-1002正在导入学习资料导入学习资料时请要使用识别和学习功能,并在导入完成后重新启动程序
-1004学习资料为空请检查识别是否成功,及sessionId和plu是否正确
-1006打开数据库失败检查数据库文件是否正常可读
-2001验证失败检查是否成功调用InitPos函数
-2002读取图片失败检查摄像头设备是否正常
-2003摄像头打开失败检查摄像头连接是否正常,系统自带相机是否能打开
-2004商品记录未找到检查是否成功调用AutoDetect函数
-2006初始化pos失败检查执行目录是否有dev.ini 如果存在联系运维人员
-2007打开文件失败检查传入传入路径是否正确
-2008保存坐标,像素长宽失败默认像素为640*480 请确认0<x+w <640 ,0<y+h<480,x,y,w,h>0
-2010坐标含有0或负值默认像素为640*480 请确认0<x+w <640 ,0<y+h<480,x,y,w,h>0
-2011裁剪坐标在宽度上越界默认像素为640*480 请确认0<x+w <640 ,0<y+h<480,x,y,w,h>0
-2012裁剪坐标在高度上越界默认像素为640*480 请确认0<x+w <640 ,0<y+h<480,x,y,w,h>0
-3001该名称没有匹配到照片请检查名称是否合理
-3003打开文件失败检查传的的文件路径参数是否正确
-4001snCode没有找到snCode没有找到
-4002poscode错误,该posCode已绑定其他mac地址该posCode已绑定其他mac地址,请更换posCode
-4003mac地址错误,该设备已被绑定该设备的mac地址已被绑定,请解绑后再绑定
-4004租户没找到tenantCode没有找到
-4005snCode没有绑定设备snCode并未绑定
-4006解绑失败该pos现在的mac地址和服务器记录的mac地址不一致 无法解绑
-4007sn错误,该sn码已绑定其他设备该sn码已绑定其他设备,请更换sn码
-4008租户信息缺失确认注册信息和本地数据记录文件
-4009试用权限过期试用权限过期

附录 2:用例说明

1.有重量变化即识别

定义个布尔变量,当重量小于 10g 的时候,该变量为 false,

当重量有变化大于 30g 的时候且同时该变量为 false,进行识别,并把该变量设置为 true

附录 3:配置文件参数说明

配置文件dev.ini(无特殊解释的不用去修改)

1.openSync

此参数位局域网同步控制参数,0为关闭局域网同步,1为开启局域网同步,如果两台机器都开启了局域网同步,A机器再次学习后的数据会同步到B机器上。

2.saveImage

1.为保存识别图片,0 为不保存识别图片。

注:每次重新初始化dll,都会对之前的识别图像进行清理,不会积存。

3.driveAi

这个参数为识别时使用的物理驱动,1.为使用GPU,0为使用cpu。

4.dataLevel

此参数为学习数据存储上限,1为30000,2为50000,3为100000。

5.usingAi

这个参数为视频流识别所使用的物理驱动,1.为使用GPU,0为使用cpu。

6.aiVersion

这个参数用于设定算法的版本。目前可设定为元芒算法的v1,v2,v3(对应设定值为:1,2,3)。

7.connectNet

这个参数为选择是否上次打称图到云端,1.上传,0为不上传。


Comments

Make a comment