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}");
}
}
# 获取数据库数据
- 创建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; }
}
- 通过 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)}");
# 下载地址
上次更新: 2024/10/15 09:50:36