开发者中心 开发者中心
  • 简体中文
  • English
视频教程
敢为云网站
  • 6.0版本
  • 6.1 版本
视频教程
敢为云网站
  • 平台概述
  • 平台功能
  • 平台安装
  • 开发者指南
    • 协议插件开发
    • 扩展插件开发
    • 报警插件开发
    • 应用插件开发
    • Web可视化开发
    • 3D可视化开发
      • 平台使用
      • 低代码/二次开发
        • 开发实战
        • SDK 开发方式
          • 环境
          • 使用
          • 示例介绍
            • 登录鉴权
            • 获取WebAPI接口数据
            • 获取数据库数据
            • 获取设备数据
            • 获取遥测数据
            • 获取遥信数据
            • 获取测点历史数据
            • 下发设备控制
            • 接收平台信息
            • 获取实时快照信息
          • 下载地址
        • API
    • 桌面可视化开发
    • 小程序开发
    • 应用模块接口
  • 项目实战
  • 附录

SDK开发

# IoTCenter for Unity

# 环境

Unity 版本: Unity 2019-Unity 6。 渲染管线:支持所有渲染管线。 支持的平台: Windows/Linux/Android/WebGL。 支持的IoTCenter: 6.1

# 使用

1.导入插件到你的Unity 项目之后。将 IoTCenterRpc 目录下的 “RPCComponent”预制体拖入你的场景中即可。

2.演示Demo,打开Demo场景并运行。登录成功后既可使用所有接口。

# 示例介绍

# 登录鉴权

    /// <summary>
    /// 登录IoTCenter
    /// </summary>
    public void OnLogin()
    {
        if (string.IsNullOrEmpty(server.text) || string.IsNullOrEmpty(user.text)||string.IsNullOrEmpty(password.text))
        {
            Debug.LogError("输入有误");
            return;
        }
        rpc.Login(server.text,user.text, IoTUtility.BuildSha512(password.text));
    }  

# 获取WebAPI接口数据

    StartCoroutine(GetWebRequest("/IoT/api/v3/Auth/userinfo"));
    IEnumerator GetWebRequest(string url)
    {
        UnityWebRequest webRequest = UnityWebRequest.Get($"{WebAdress}{url}");
        //加上Web的鉴权信息。
        webRequest.SetIoTRequestHeader();
        yield return webRequest.SendWebRequest();
        if(webRequest.result == UnityWebRequest.Result.Success)
        {
            Debug.Log(webRequest.downloadHandler.text);
        }
        else
        {
            Debug.LogWarning($"error{webRequest.error}");
        }
    }

# 获取数据库数据

  1. 创建Equip表的数据模型
public class EquipDataModel
{
    /// <summary>
    /// 站点
    /// </summary>
    public string sta_n { get; set; }
    /// <summary>
    /// 设备号
    /// </summary>
    public string equip_no { get; set; }
    /// <summary>
    /// 设备名称
    /// </summary>
    public string equip_nm { get; set; }
    /// <summary>
    /// 通行协议
    /// </summary>
    public string equip_detail { get; set; }
    /// <summary>
    /// 建议
    /// </summary>
    public string proc_advice { get; set; }
}
  1. 通过 rpc.GetAsyncSQLData<T>(string sql) 接口获取数据。
     string sql = "select *from equip";
     List<EquipDataModel> equipTables = await RPCModule.Rpc.GetAsyncSQLData<List<EquipDataModel>>(sql);
     Debug.Log($"获取数据数据:{Newtonsoft.Json.JsonConvert.SerializeObject(equipTables)}");

# 获取设备数据

     //获取设备号为1的设备数据
     EquipBaseData equipData =  RPCModule.GetEquipDataItem(1);
     Debug.Log($"获取设备数据:{JsonConvert.SerializeObject(equipData)}");

# 获取遥测数据

     //获取设备号3,测点1的数据
     YcItemData ycItemData = RPCModule.GetYcItem(3,1);
     Debug.Log($"获取遥测数据:{JsonConvert.SerializeObject(ycItemData)}");

# 获取遥信数据

     //获取设备号3,测点1的数据
     YxItemData yxItemData = RPCModule.GetYxItem(3, 1);
     Debug.Log($"获取遥信数据:{JsonConvert.SerializeObject(yxItemData)}");

# 获取测点历史数据

通过时间点获取测点的数据,需要注意的是:要在测点配置里勾选记录历史数据,这样才会产生历史数据。

     List<DateTime> dateTimes = new List<DateTime> { DateTime.Now, DateTime.Now.AddDays(-1) };
     List<myCurveData> myCurves = await RPCModule.Rpc.GetDataFromCurveAsync(dateTimes, 3, 1);
     Debug.Log($"获取测点历史数据:{JsonConvert.SerializeObject(myCurves)}");

# 下发设备控制

     //下发无参设置
     RPCModule.Rpc.SetParam(3,1);
     //下发有参设置
     RPCModule.Rpc.SetParam(3,1,"0");

# 接收平台信息

     RPCModule.Rpc.AddReceiveChanged(OnMessageReceive);
     void OnMessageReceive(string message)
     {
        Debug.Log(message);
     }

# 获取实时快照信息

     List<RealTimeEventItem> realTimeEvents = await RPCModule.Rpc.GetRealTimeEventListAsync();
     Debug.Log($"获取平台实时快照信息:{JsonConvert.SerializeObject(realTimeEvents)}");

# 下载地址

IoTCenter for Unity 6.1.0.unitypackage (opens new window)

上次更新: 2024/10/15 09:50:36

← 开发实战 API→

目录
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式