PMS 网络通信 SDK

更新时间:2023-04-19 02:31:12下载pdf

本文档主要介绍涂鸦 PMS 产测 SDK 接口功能。在生产测试过程中,产测工具 SDK 访问涂鸦 PMS,同时获取产测信息或者上传产测信息到涂鸦 PMS。

SDK 下载

您可以前往 SDK 仓库 进行下载。

目录结构

└─tuya-cloud-sdk
    ├─C#
    │  │  BouncyCastle.Crypto.dll
    │  │  Newtonsoft.Json.dll
    │  │  ReleaseNote.txt
    │  │  TuyaCloudIfLib.dll
    │  │  TuyaCloudIfLib.xml
    │  │
    │  └─Demo
    └─C++
        ├─Demo
        │      Demo(C++).rar
        │
        └─Lib
                BouncyCastle.Crypto.dll
                CloudExport.h
                CppCloudLib.dll
                CppCloudLib.lib
                Newtonsoft.Json.dll
                Readme.txt
                TuyaCloudIfLib.dll
  • TuyacloudLib\C# 目录为 C# 版本的 SDK
  • TuyacloudLib\C++ 目录为 C++ 版本的 SDK

网络通信 SDK 接口总览(C# 版本)

接口 说明
SetUrlSftVer 设置涂鸦工具工作环境
UserLogin 账号登录
TokenAuth 授权
GetTokenInfo 获取 Token 信息
TokenAuthValidate 授权有效性校验
AddAuthLog 添加授权日志
GetWorkOrderInfo 查询工单信息
GetCraftLine 查询工艺路线
QueryMacSN 根据 SN 查询对应的 MAC,IMEI 等数据
StationReset 站位状态重置
Auth 工单授权
AuthValidate 工单授权校验
StationStatusCommit 站位状态提交
GetShortLink 获取短链接
GetSmartConfigQRCode 根据 SN 和 PID 获取配网二维码
CheckNodeIsPass 检查是否过站

网络通信 SDK 接口总览(C++ 版本)

接口 说明
Login 用户登录
CloudAPI 通用云端访问接口

网络通信函数说明(C# 版本)

设置涂鸦工具工作环境

接口名称

SetUrlSftVer

功能说明

此接口用于选择涂鸦工具的工作环境和设置调用 SDK 的应用程序的名称和版本信息。调用此接口后,每次调用网络通信接口时,调用参数中自动附带应用程序的名称和版本信息。

函数原型


void SetUrlSftVer ( string sftVer, string sftIdentity, _LoginUrlType urlType = _LoginUrlType.Release )

参数说明

参数名称 说明
sftVer 调用 SDK 的软件的版本号
sftIdentity 调用 SDK 的软件名称
urlType 涂鸦工具工作环境,默认为线上环境

返回值

返回值 说明

urlType 必须为 _LoginUrlType.Release,否则可能导致产品授权无效。

账号登录

接口名称

UserLogin

功能说明

此接口实现涂鸦工具账号登录,实现用户身份验证。账号和密码可以联系项目经理申请。每个客户需要单独申请账号和密码,不同的账号拥有不同的权限范围和使用范围。绝大部分网络通信接口都需要账号登录后才能访问。

函数原型


UserLoginRspParas UserLogin ( UserLoginReqParas ReqParas, string apiVer = "1.0")

参数说明

参数名称 说明
ReqParas 账号登录请求参数,为 UserLoginReqParas 类型的对象
apiVer API 版本,默认为 1.0

返回值

返回值 说明
UserLoginRspParas 类型的对象 包含登录返回成功信息,以及错误信息等

Token 授权

接口名称

TokenAuth

功能说明

此接口上传产品的信息如 MAC、SN、Token 等信息到涂鸦 PMS,校验通过后返回授权秘钥等信息,完成设备的授权。未经授权或授权失败的设备可能无法连接到涂鸦 IoT PaaS 。

函数原型


TokenAuthRsp TokenAuth ( TokenAuthReq ReqParas, string apiVer = "1.0")

参数说明

参数名称 说明
ReqParas 授权请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
ProdTokenAuthRsp 类型的对象 包含接口操作成功结果、错误信息、授权信息等。

获取 Token 信息

接口名称

GetTokenInfo

功能说明

用于获取 Token 绑定信息。

函数原型


GetTokenInfoRspParas GetTokenInfo ( GetTokenInfoReqParas ReqParas, string apiVer = "1.0")

参数说明

参数名称 说明
ReqParas 授权请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
GetTokenInfoRspParas 类型的对象 查询 Token 信息获取返回结果

授权校验

接口名称

TokenAuthValidate

功能说明

用于校验授权有效性,授权必须要通过授权有效性校验。

函数原型


TokenAuthValidateRsp TokenAuthValidate ( TokenAuthValidateReq ReqParas, string apiVer = "1.0")

参数说明

参数名称 说明
ReqParas 授权校验请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
TokenAuthValidateRsp 类型的对象 包含授权有效性校验结果

添加授权日志

接口名称

AddAuthLog

功能说明

授权完成后添加授权日志到涂鸦 PMS。

函数原型


AddAuthLogRspParas AddAuthLog(AddAuthLogReqParas ReqParas, string apiVer = "1.0")

参数说明

参数名称 说明
ReqParas 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
AddAuthLogRspParas 的对象 包含接口操作成功结果、错误信息等。

查询工单信息

接口名称

GetWorkOrderInfo

功能说明

查询工单信息。

函数原型


GetWorkOrderInfoRsp GetWorkOrderInfo ( GetWorkOrderInfoReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
GetWorkOrderInfoRsp 的对象 包含接口操作成功结果、错误信息等。

查询工艺路线

接口名称

GetCraftLine

功能说明

查询工艺路线。

函数原型


GetCraftLineRsp GetCraftLine( GetCraftLineReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
GetCraftLineRsp 的对象 包含接口操作成功结果、错误信息等。

根据 SN 查询对应的 MAC,IMEI 等数据

接口名称

QueryMacSN

功能说明

根据 SN 查询对应的 MAC,IMEI 等数据,这些数据事先已经与 SN 绑定。

函数原型


QueryMacSNRspParas QueryMacSN ( queryMacSNReqParas Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
QueryMacSNRspParas 的对象 包含接口操作成功结果、错误信息等。

站位状态重置

接口名称

StationReset

功能说明

重置站位状态,清除此站位的测试记录和状态。

函数原型


StationResetRsp StationReset( StationResetReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
StationResetRsp 的对象 包含接口操作成功结果、错误信息等。

工单授权

接口名称

Auth

功能说明

通过工单对产品进行授权。

函数原型


AuthRsp Auth( AuthReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
AuthRsp 的对象 包含接口操作成功结果、错误信息等。

工单授权校验

接口名称

AuthValidate

功能说明

通过工单进行校验。

函数原型


AuthValidateRsp AuthValidate( AuthValidateReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
AuthValidateRsp 的对象 包含接口操作成功结果、错误信息等。

站位状态提交

接口名称

StationStatusCommit

功能说明

提交站位状态。

函数原型


StationStatusCommitRsp StationStatusCommit( StationStatusCommitReq Req, string apiVer = "1.0")

参数说明

参数名称 说明
Req 添加授权日志请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
StationStatusCommitRsp 的对象 包含接口操作成功结果、错误信息等。

获取短链接

接口名称

GetShortLink

功能说明

获取短链接。

函数原型


GetShortLinkRsp GetShortLink( GetShortLinkReq, string apiVer = "1.0")

参数说明

参数名称 说明
Req 获取短链接请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
GetShortLinkRsp 的对象 包含接口操作成功结果、错误信息等。

获取短链接二维码

接口名称

GetSmartConfigQRCode

功能说明

获取短链接。

函数原型


GetSmartConfigQRCodeRsp GetSmartConfigQRCode( GetSmartConfigQRCodeReq, string apiVer = "1.0")

参数说明

参数名称 说明
Req 获取短链接二维码请求参数
apiVer API 版本,默认为 1.0

返回值

返回值 说明
GetSmartConfigQRCodeRsp 的对象 包含接口操作成功结果、错误信息等。

检查过站状态

接口名称

CheckNodeIsPass

功能说明

检查产品的过站状态。

函数原型


CheckCraftRouteNodeRsp CheckNodeIsPass( CheckCraftRouteNodeReq req, string apiVer = "2.0")

参数说明

参数名称 说明
Req 请求查询过站状态
apiVer API 版本,默认为 2.0

返回值

返回值 说明
CheckCraftRouteNodeRsp 的对象 包含接口操作成功结果、错误信息等。

网络通信库类说明

涂鸦工具端运行环境枚举


enum _LoginUrlType
{
	Release = 0,	//线上环境,默认
	Preview = 1,  //预发环境
	Daily = 2     //日常环境
}

账号登录请求参数


public class UserLoginReqParas
{
	public string username;  //用户名,必填
	public string password;  //密码,必填
	public string token;     //token,非必填
}

登录权限数据


public class PermissionsData
{
	public string permissionCode;  // 登录权限码
	public string permissionName;  // 登录权限名称
}

账号登录返回结果


public class UserLoginResult
{
	public string sessionId;                 // 登录 session id
	public List<PermissionsData> permissions; // 登录权限数据列表
}

账号登录返回参数


public class UserLoginRspParas{
	public bool success;        //接口执行结果,成功为 true,失败为 false
	public string errorMsg;      // 错误信息
	public string errorCode;     //错误码
	public string status;         // 操作状态,包含一些特定的错误信息或状态
	public long t;              //接口调用时间
	public UserLoginResult result; // 账号登录返回结果
}

授权请求参数类


public class TokenAuthReq
{
        public string sn ;      //产品序列号
        public string tokenId ;  //激活码
        public string sftVersion ;//软件版本号
        public string muid ;    //乐鑫芯片的 muid,其他芯片传空字符串
        public string mac ;     // 产品的 MAC 地址
        public string chipId ;   // 加密芯片的芯片 ID,无加密芯片传空串
}

授权结果类


public class TokenAuthResult
{
	public string uuid;       //模组 uuid
	public string mac;       //授权的 MAC
	public string accessKey;  //授权秘钥
}

授权请求返回结果类


public class TokenAuthRsp{
    	public bool success; //接口执行结果,成功为 true,失败为 false
    	public string errorMsg; //错误信息
	public string errorCode; //错误代码
	public string status;    //操作状态
	public long t; //接口调用时间戳
    	public TokenAuthResult result; //授权结果只有串口执行结果为 true 的时候有意义
}

获取 Token 信息请求参数类


public class GetTokenInfoReqParas
{
	public string tokenId; //激活码
	public string type;   //授权类型“Wi-Fi”
	public string sftVersion; //软件版本
	public string softwareName; //软件名称
}

Token 绑定信息类


public class TokenInfo
{
	public int amount; //授权总数
	public string firmwareConfigMd5; //配置文件 md5 校验码
	public string firmwareConfigUrl; //配置文件下载地址
	public string snPrefix; //sn 的前缀
	public string firmwareChip; //固件芯片平台
	public string firmwareProtocolType; //固件协议类型
	public string productionFirmwareMd5; //生产固件 md5 校验码
	public string productionFirmwareUrl; //生产固件下载地址
	public bool supportFirmwareConfig; //是否支持 oem 配置
	public string productionSubFirmwareUrl; //子固件下载地址
	public string moduleModelChip; //模组芯片平台
	public string productId; //产品 ID
	public string type; //激活码类型
	public string firmwareKey; //固件 key
	public string macRule; //是否云端分配 MAC,“0”:不分配 MAC,“1”:分配 MAC
	public bool oem; //是否是 oem 固件
	public string countryCode; //国家码
	public string productionSubFirmwareMd5; //子固件 md5 校验码
	public string userareaFirmwareUrl; //用户区固件下载地址
	public string userareaFirmwareMd5; //用户区固件 md5 校验码
	public bool refreshUserarea; //是否刷新用户区固件
	public long effectiveTime; //激活码生效时间
	public int expires; //有效期
	public string id; //激活码
	public string productionId; //生产批号
	public bool test; //是否产测
	public int usedAmount; //已授权数量
	public string wifiHotspotName; //热点名称
	public string wifiPassword; //热点密码
	public string desc; //激活码描述信息
	public string manufacturer; //生产工厂
	public string productKey; //预留
	public string fingerprint; //固件名称
	public string firmwareVersion; //固件版本
	public int firmwareType; //预留
	public bool gpioTest; //预留
	public bool wifiTest; //预留
	public string baselineVersion; //预留
	public string flashRunSize; //flash 大小,单位 Mbits
}

授权请求返回结果类


public class TokenAuthRsp
{
   	public bool success; //接口执行结果,成功为 true,失败为 false
	public string errorMsg; //错误信息
	public string errorCode; //错误码
	public string status; //操作状态,包含一些特定的错误信息或状态
	public long t; //接口调用时间戳
	public ProdTokenAuthResult result; //授权结果数据
}

授权信息校验请求参数类


public class ProdTokenAuthValidateReq    {
	public string tokenId ; //激活码
	public string sn; //产品序列号
	public string mac ; //MAC 地址
	public string uuid ; //授权产品 uuid
	public string muid ; //产品芯片的 id
	public string accessKey ; //授权秘钥
	public string wifiHotspotName ; //热点名称
	public string wifiPassword ; //热点密码
	public string chipId ; //加密芯片 id
	public string sftVersion ; //软件版本
}

授权信息校验结果类


public class TokenAuthValidateResult
{
	public bool result; //授权校验结果
	public string failureDepict; //失败原因描述信息
}

授权校验请求返回结果类


public class TokenAuthValidateRsp : BaseResponse
{
   	public bool success; //授权校验执行结果
	public string errorMsg; //错误信息
	public string errorCode; //错误码
	public string status; //操作状态,包含一些特定的错误信息或状态
	public long t; //时间戳
	public ProdTokenAuthValidateResult result;  //  授权校验结果
}

授权日志信息类


public class AuthLog
{
	public string hid; //Wi-Fi 类授权为 MAC 地址
	public string uuid; //授权 uuid
	public string tokenId; //激活码
	public string sn; //产品 sn
	public string activeTime; //时间戳
	public string firmwareInfo; //固件指纹,包含固件名称和版本
	public string gpio; //gpio 测试结果“成功”或“失败”
	public string rssi; //Wi-Fi 信号强度测试结果
	public int authStatus; //授权状态,1:成功,0:失败
	public string authDepict; //授权状态描述,“成功”或“失败”
	public string countryCode; //国家码
 }

添加授权日志返回结果类


public class AddAuthLogReqParas
{
   	public AuthLog log; //授权日志数据集
}

添加授权日志返回结果 AddAuthLogRspParas


public class AddAuthLogRspParas{
    	public bool success; //接口执行结果
	public string errorMsg; //错误信息
	public string errorCode; //错误代码
	public string status; //操作状态,包含一些特定的错误信息或状态
	public long t; //时间戳
}

查询工单信息入参类


public class GetWorkOrderInfoReq    {
        public string orderCode;/// 必填,工单号
    }

查询工单信息返回结果类


public class GetWorkOrderInfoRsp{
        public WorkOrderInfo result;//查询到的结果
        public class WorkOrderInfo
        {
            public string materielCode;//物料编码
            public string productSize;/// 产品型号
            public string pcsNum;/// 订单数量
            public string tokenId;/// 激活码
        }
}

查询工艺路线入参类


public class GetCraftLineReq{
    	public string orderCode;///工单号
}

查询工艺路线出参类


public class GetCraftLineRsp{
    	public CraftLineNodes result;
        public class CraftLineNodes  {
            public string code;/// 工艺路线编码
            public string name;/// 工艺路线名
            public List<Node> nodeList;/// 工艺路线节点列表
            public class Node/// 工艺路线节点定义
            {
                public string code;/// 工位编码
                public string desc; /// 工位描述
                public string programs;/// 工位程序
            }
}

查询 SN 绑定数据入参类


public class QueryMacSNReqParas{
        public string orderCode = "";/// workorder
        public string tokenId = "";/// 授权码
        public string keyType = "";/// sn,MAC,可以不填
        public string key = ""; /// sn 或 MAC 地址,可以不填,填了就找与之绑定的 MAC,sn,cmei
        public string printed = "";/// 是否打印,N 表示返回未打印的记录、Y 返回已打印的记录、空字符串返回所有记录
        public int offset = 0;/// 偏移量
        public int limit = 1;/// 查询返回记录数量限制
}

查询 SN 绑定数据出参类


public class QueryMacSNRspParas{
    	public MacSNQueryResult result;
	public class MacSNQueryResult {
        public int totalCount;/// 记录总数
        public List<MacSNData> datas;/// 一系列的 SN、MAC 数据
    }
    public class MacSNData
    {
        public string code;/// 编码(该编码作为彩包的包装编码)
        public string sn;/// SN 号
        public string mac;///MAC
        public string tokenId;/// 授权码
        public string printed; /// 是否已经打印,Y:已打印;N:未打印
        public string packed;/// 是否已经打包,Y:已打包;N:未打包
        public string channelType; /// 运营商类型
        public string channelDeviceId;/// 运营商编码
        public string psk;/// psk 秘钥
        public string imei;/// IMEI
        public string patchSn;/// 贴片 SN
        public string jdSecretKey; /// 京东云秘钥
    }
}

工位重置入参类


public class StationResetReq{
        public string orderCode ;/// 工单号,不可为空
        public string sn; /// SN,不可为空
        public string stationCode ;/// 站位编号,不可为空
}

工位重置出参类


public class StationResetRsp{
    	public StationResetResult result;
	public class StationResetResult   {
        public string requestId ;///通讯连接句柄
        public int amount/// 过站数量
    }
}

工单授权入参类


public class AuthReq{
        public string requestId ; /// 不可为空,该字段从 reset 工位获取
        public string tokenId ;/// 激活码,不可为空
        public string sn;/// SN 码,不可为空
        public string muid;/// Wi-Fi 乐鑫模组才上传芯片 ID
        public string mac;/// 如果是 Zigbee 和乐鑫,这里需要上传 MAC(MAC 是从模组读出来的,不从打标签分配)
        public string chipId; /// 安全芯片 ID,安全模组的项目才会传
        public string sftVersion;/// 不可为空,表示产测工具软件的版本
}

工单授权出参类


public class AuthRsp{
    	public AuthRspResult result;
public class AuthRspResult    {
        public string uuid;/// 模组 uuid(模组的 uuid 这里由云端生成,生成规则沿用老逻辑,根据不同的联网模式来生成 uuid)
        public string mac;/// MAC 地址
        public string accessKey;/// accessKey
        public string pskKey ;/// pskKey
        public string certificateContent;/// 安全认证证书
        public string privateKey; /// 安全私钥
        public int crc32CertificateContent;/// 安全证书 CRC 校验码
        public int crc32PrivateKey ;/// 私钥 CRC 校验码
    }
}

工单授权校验入参类


public class AuthValidateReq{
        public string requestId;/// 不可为空,请求标识,该字段从 reset 工位获取
        public string tokenId; /// 不可为空,激活码
        public string sn;   /// 不可为空,SN
        public string muid;/// Wi-Fi 乐鑫模组才上传芯片 ID
        public string accessKey;/// 不可为空,授权码,从模组里读取出来
        public string uuid; /// 不可为空,模组 uuid,从模组里读取出来
        public string mac;/// 如果是 Zigbee 和乐鑫,这里需要上传 MAC(MAC 是从模组读出来的,不从打标签分配)
        public string wifiHotspotName;/// 热点名称,从模组里读取出来
        public string wifiPassword; /// Wi-Fi 密码,从模组里读取出来
        public string chipId;/// 芯片 ID
        public string sftVersion; /// 不可为空,产测软件版本
        public string nodeCode;/// 工位编码
}

工单授权校验出参类


public class AuthValidateRsp{
    	public AuthValidateResult result;
	public class AuthValidateResult {
            public bool result;/// 授权检测结果
            public string failureDepict;/// 授权检测失败原因描述
        }
}

站位测试状态上报入参类


public class StationStatusCommitReq{
        public string stationCode;/// 站位名称
        public string requestId ;///通讯连接标识,
        public string orderCode;/// 工单号
        public string sn;/// SN
        public int status; /// 1:状态上报成功, 0:状态上报失败
}

站位测试状态上报出参类


public class StationStatusCommitRsp{
        public int result { get; set; }/// 过站数量
}

根据 SN 获取短链接和短码入参类


public class GetShortLinkReq
{
        public string orderCode { get; set; }  /// 必填,工单号
        public string sn { get; set; }/// 必填,SN
        public string appId { get; set; }/// 非必填,为空则为默认值 168
}

根据 SN 获取短链接和短码出参类


 public class GetShortLinkRsp
    {
        public class GetShortLinkResult
        {
            public string sn { get; set; } /// 授权 SN,和传参里的 SN 可能不同
            public string shortUrl { get; set; }/// //短域名
            public string deviceCode { get; set; }/// //短码
        }
        public GetShortLinkResult result;
    }

根据 SN 和 PID 获取配网二维码入参类


 public class GetSmartConfigQRCodeReq
    {
         public string orderCode { get; set; }/// 工单号
         public string sn { get; set; }/// SN
         public string pid { get; set; }/// 产品 PID
    }

根据 SN 和 PID 获取配网二维码出参类


 public class GetSmartConfigQRCodeRsp
    {
        public class GetSmartConfigQRCodeResult
        {
            public string sn { get; set; } /// //授权 SN,和传参里的 SN 可能不同
            public string shortUrl { get; set; } /// //短域名
            public string deviceCode { get; set; }   /// //短码
        }
        public GetSmartConfigQRCodeResult result;
    }

/// <summary>
    /// 检查 SN 是否过站请求入参定义
    /// </summary>
    public class CheckCraftRouteNodeReq : BaseRequest
    {
        public string sn;
        /// <summary>
        /// 当前的工位编号
        /// </summary>
        public string nodeCode;// 当前的工位编号
    }

    /// <summary>
    /// 检查 SN 是否过站请求出参定义
    /// </summary>
    public class CheckCraftRouteNodeRsp : BaseResponse
    {
        /// <summary>
        /// 工位测试状态,true 表示已测试通过,false 表示未测试或测试失败
        /// </summary>
        public bool result;
    }

网络通信函数说明(C++版本)

用户登录

接口名称

Login

功能说明

通过此接口登录涂鸦 PMS,并获取用户权限信息。

函数原型

bool _stdcall Login(char* userName, char* password, char *version = "1.0", char*rsp = "");

参数说明

参数名称 说明
userName 登录用户名
password 登录密码
version 登录接口版本,默认为 1.0
rsp 登录后返回的结果信息

返回值

返回值 说明
字符串 通过 RSP 返回 JSON 格式的登录结果

通用云端访问接口

接口名称

CloudAPI

功能说明

通过此接口登录涂鸦 PMS,并获取用户权限信息。

函数原型

bool _stdcall CloudAPI(char* api, char*data, char* ver,char*result);

参数说明

参数名称 说明
api 调用的 API 接口的名称
data JSON 格式的字符串数据
ver API 接口版本
result 执行后的结果,JSON 格式字符串

返回值

返回值 说明
result 执行后的结果,JSON 格式字符串