堆区、摄像机、皮带秤等列表数据获取

This commit is contained in:
AFeiJia 2024-06-24 18:01:43 +08:00
parent 6b9ed4b3d7
commit 95be6aa640
16 changed files with 408 additions and 26 deletions

View File

@ -0,0 +1,108 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &4379324423778580776
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1896227872487826805}
- component: {fileID: 2269637946090192785}
- component: {fileID: 5023445336035583588}
- component: {fileID: 1664605301679077302}
- component: {fileID: 2482311233047265158}
m_Layer: 5
m_Name: YardIcon
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1896227872487826805
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4379324423778580776}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 75, y: 100}
m_Pivot: {x: 0.53, y: 0}
--- !u!222 &2269637946090192785
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4379324423778580776}
m_CullTransparentMesh: 1
--- !u!114 &5023445336035583588
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4379324423778580776}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier:
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: e4e211f78cbbdd44eb133fbe1d32f0d2, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!114 &1664605301679077302
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4379324423778580776}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 52b8fb0629028ff428dd6d219a696e2a, type: 3}
m_Name:
m_EditorClassIdentifier:
_distance: 0
_multi: 0.1
--- !u!114 &2482311233047265158
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4379324423778580776}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a3449b44ff76a714386383fa244e9516, type: 3}
m_Name:
m_EditorClassIdentifier:
DeviceBase: {fileID: 0}
DeviceIndex:

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 42636a0be7c0b7947a661683666c400a
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -5629,6 +5629,7 @@ MonoBehaviour:
Canvas_3D: {fileID: 0}
CameraIconPrefab: {fileID: 0}
BeltScaleIconPrefab: {fileID: 0}
YardIconPrefab: {fileID: 0}
--- !u!4 &2105364401
Transform:
m_ObjectHideFlags: 0

View File

@ -86,4 +86,47 @@ public static class RequestBase
}
}
}
public static IEnumerator Post(string _url, Dictionary<string, string> _quary_datas, Action<string, string> _callback)
{
using (UnityWebRequest webRequest = new UnityWebRequest())
{
if (_quary_datas != null)
{
_url = _url + "?";
foreach (var item in _quary_datas)
{
_url = string.Format("{0}{1}={2}&", _url, item.Key, item.Value);
}
}
_url = _url.TrimEnd('&');
UnityEngine.Debug.Log(_url);
webRequest.url = _url;
webRequest.method = "GET";
webRequest.downloadHandler = new DownloadHandlerBuffer();
yield return webRequest.SendWebRequest();
switch (webRequest.result)
{
case UnityWebRequest.Result.InProgress:
break;
case UnityWebRequest.Result.Success:
_callback?.Invoke(webRequest.downloadHandler.text, null);
break;
case UnityWebRequest.Result.ConnectionError:
_callback?.Invoke(null, webRequest.error);
break;
case UnityWebRequest.Result.ProtocolError:
_callback?.Invoke(null, webRequest.error);
break;
case UnityWebRequest.Result.DataProcessingError:
_callback?.Invoke(null, webRequest.error);
break;
default:
break;
}
}
}
}

View File

@ -13,14 +13,34 @@ public class DeviceBase : MonoBehaviour
/// </summary>
public string DeviceIndex;
/// <summary>
/// 设备列表
/// 所有设备列表
/// </summary>
public static List<DeviceBase> DeviceBaseList = new List<DeviceBase>();
/// <summary>
/// 相机字段表
/// 摄像头列表
/// </summary>
public static List<DeviceBase> CameraList = new List<DeviceBase>();
/// <summary>
/// 堆区列表
/// </summary>
public static List<DeviceBase> YardList = new List<DeviceBase>();
/// <summary>
/// 皮带秤列表
/// </summary>
public static List<DeviceBase> BeltScaleList = new List<DeviceBase>();
/// <summary>
/// 摄像机字段表
/// </summary>
[SerializeField]
public Competition.Mysql.Model.T_BAS_CAMERA T_BAS_CAMERA;
/// <summary>
/// 堆区字段表
/// </summary>
public Competition.Mysql.Model.T_BAS_YARD T_BAS_YARD;
/// <summary>
/// 皮带秤字段表
/// </summary>
public Competition.Mysql.Model.T_BAS_ELEC_WEIGHTER T_BAS_ELEC_WEIGHTER;
void Awake()
{
@ -39,13 +59,15 @@ public class DeviceBase : MonoBehaviour
switch (DeviceType)
{
case DeviceType.CAMERA:
CameraList.Add(this);
transform.parent.GetComponent<Renderer>().enabled = false;
break;
case DeviceType.BELT_SCALE:
BeltScaleList.Add(this);
transform.parent.GetComponent<Renderer>().enabled = false;
break;
case DeviceType.YARD:
YardList.Add(this);
break;
default:
break;

View File

@ -23,6 +23,7 @@ public class DeviceUIBase : MonoBehaviour, IPointerClickHandler
break;
case DeviceType.YARD:
//打开堆区窗口
UIManager.Instance.ShowYardInformationPage(DeviceBase.DeviceIndex);
break;
default:
break;

View File

@ -23,11 +23,25 @@ public class ApiManager : Singleton<ApiManager>
/// Value:CameraID
/// </summary>
public Dictionary<string, string> CameraDic = new Dictionary<string, string>();
/// <summary>
/// 本地配置的Yard字典
/// Key:堆区编号
/// Value:YardID
/// </summary>
public Dictionary<string, string> YardDic = new Dictionary<string, string>();
/// <summary>
/// 相机列表数据
/// </summary>
public List<T_BAS_CAMERA> T_BAS_CAMERA_List { get; set; } = new List<T_BAS_CAMERA>();
/// <summary>
/// 堆场列表数据
/// </summary>
public List<T_BAS_YARD> T_BAS_YARD_List { get; set; } = new List<T_BAS_YARD>();
/// <summary>
/// 皮带秤列表数据
/// </summary>
public List<T_BAS_ELEC_WEIGHTER> T_BAS_ELEC_WEIGHTER_List { get; set; } = new List<T_BAS_ELEC_WEIGHTER>();
public override void Awake()
{
@ -75,7 +89,25 @@ public class ApiManager : Singleton<ApiManager>
}
}));
var _yard_dic_url = Path.Combine(Application.streamingAssetsPath, "configure_yard.json");
StartCoroutine(RequestBase.Get(_cam_dic_url, (_data, _error) =>
{
if (_error != null)
{
Debug.Log($"<color=#ff0000> {_error} </color>");
}
else
{
Debug.Log("读取相机文件完成");
YardDic = JsonConvert.DeserializeObject<Dictionary<string, string>>(_data);
}
}));
//获取摄像机列表
StartCoroutine(GetCameraList());
//获取堆区列表
StartCoroutine(GetYardInformation());
//获取皮带秤列表
StartCoroutine(GetBeltScale());
}
/// <summary>
@ -109,4 +141,78 @@ public class ApiManager : Singleton<ApiManager>
}
}));
}
IEnumerator GetYardInformation()
{
yield return new WaitUntil(() => { return !string.IsNullOrEmpty(IpAddress) && ApiDic.Count > 0; });
var _get_yard_information = IpAddress + ApiDic["GetYardList"];
#if UNITY_EDITOR
if (CallForTest.instance != null)
{
if (string.IsNullOrEmpty(CallForTest.instance.MONITOR_ID))
{
//编辑器测试
CallForTest.instance.MONITOR_ID = "CNMAW350015";
}
}
#endif
StartCoroutine(RequestBase.Get(_get_yard_information, new Dictionary<string, string>() { ["monotorId"] = CallForTest.instance.MONITOR_ID }, (_data, _error) =>
{
if (_error != null)
{
Debug.Log($"<color=#ff0000> {_error} </color>");
}
else
{
T_BAS_YARD_List = JsonConvert.DeserializeObject<DataBase<List<T_BAS_YARD>>>(_data).data;
}
}));
}
IEnumerator GetBeltScale()
{
yield return new WaitUntil(() => { return !string.IsNullOrEmpty(IpAddress) && ApiDic.Count > 0; });
var _get_belt_scale = IpAddress + ApiDic["GetWeighterList"];
#if UNITY_EDITOR
if (CallForTest.instance != null)
{
if (string.IsNullOrEmpty(CallForTest.instance.MONITOR_ID))
{
//编辑器测试
CallForTest.instance.MONITOR_ID = "CNMAW350015";
}
}
#endif
StartCoroutine(RequestBase.Get(_get_belt_scale, new Dictionary<string, string>() { ["monotorId"] = CallForTest.instance.MONITOR_ID }, (_data, _error) =>
{
if (_error != null)
{
Debug.Log($"<color=#ff0000> {_error} </color>");
}
else
{
T_BAS_ELEC_WEIGHTER_List = JsonConvert.DeserializeObject<DataBase<List<T_BAS_ELEC_WEIGHTER>>>(_data).data;
}
}));
}
/// <summary>
/// 模糊查询
/// </summary>
/// <returns></returns>
public IEnumerator PostCheckYard(string _SHIP_NAME_EN, string _VOYAGE_NO, string _STANDARD_NAME, string _SILO_CODE)
{
// {
// "SHIP_NAME_EN": "SV AURORA",
// "VOYAGE_NO": "2402L1",
// "STANDARD_NAME": "煤炭",
//"SILO_CODE":"YARD000227"
//}
yield return null;
var _get_belt_scale = IpAddress + ApiDic["PostCheckYard"];
}
}

View File

@ -47,7 +47,13 @@ public class MainScene : Singleton<MainScene>
_belt_scale_icon.GetComponent<DeviceUIBase>().Init(DeviceBase.DeviceBaseList[i]);
break;
case DeviceType.YARD:
if (ModelRoot.Instance.YardIconPrefab == null)
{
ModelRoot.Instance.YardIconPrefab = Resources.Load("Prefabs/UI/DeviceIcons/YardIcon") as GameObject;
}
var _yard_icon = Instantiate(ModelRoot.Instance.YardIconPrefab, ModelRoot.Instance.Canvas_3D);
_yard_icon.transform.position = DeviceBase.DeviceBaseList[i].transform.position;
_yard_icon.GetComponent<DeviceUIBase>().Init(DeviceBase.DeviceBaseList[i]);
break;
default:
break;
@ -55,32 +61,62 @@ public class MainScene : Singleton<MainScene>
}
StartCoroutine(SetCamera());
StartCoroutine(SetYard());
StartCoroutine(SetBeltScale());
}
/// <summary>
/// 模型场景加载时等待接口返回之后匹配更新Camera数据至本地摄像机
/// </summary>
/// <returns></returns>
IEnumerator SetCamera()
{
yield return new WaitUntil(() => { return ApiManager.Instance.T_BAS_CAMERA_List.Count != 0; }) ;
for (int i = 0; i < DeviceBase.DeviceBaseList.Count; i++)
yield return new WaitUntil(() => { return ApiManager.Instance.T_BAS_CAMERA_List.Count != 0; });
for (int i = 0; i < DeviceBase.CameraList.Count; i++)
{
switch (DeviceBase.DeviceBaseList[i].DeviceType)
var _camera_id = ApiManager.Instance.CameraDic[DeviceBase.CameraList[i].DeviceIndex];
var _camera = ApiManager.Instance.T_BAS_CAMERA_List.Find(x => x.CameraID == _camera_id);
if (_camera != null)
{
case DeviceType.CAMERA:
DeviceBase.CameraList[i].T_BAS_CAMERA = _camera;
}
}
}
var _camera_id = ApiManager.Instance.CameraDic[DeviceBase.DeviceBaseList[i].DeviceIndex];
var _camera = ApiManager.Instance.T_BAS_CAMERA_List.Find(x => x.CameraID == _camera_id);
if (_camera != null)
{
DeviceBase.DeviceBaseList[i].T_BAS_CAMERA = _camera;
}
/// <summary>
/// 模型场景加载时等待接口返回之后匹配更新Yard数据至本地
/// </summary>
/// <returns></returns>
IEnumerator SetYard()
{
yield return new WaitUntil(() => { return ApiManager.Instance.T_BAS_YARD_List.Count != 0; });
for (int i = 0; i < DeviceBase.YardList.Count; i++)
{
var _yard_id = ApiManager.Instance.YardDic[DeviceBase.YardList[i].DeviceIndex];
var _yard = ApiManager.Instance.T_BAS_YARD_List.Find(x => x.YARD_ID == _yard_id);
if (_yard != null)
{
DeviceBase.YardList[i].T_BAS_YARD = _yard;
}
}
}
break;
case DeviceType.BELT_SCALE:
break;
case DeviceType.YARD:
break;
default:
break;
/// <summary>
/// 模型场景加载时等待接口返回之后匹配更新BeltScale数据至本地
/// </summary>
/// <returns></returns>
IEnumerator SetBeltScale()
{
yield return new WaitUntil(() => { return ApiManager.Instance.T_BAS_ELEC_WEIGHTER_List.Count != 0; });
for (int i = 0; i < DeviceBase.BeltScaleList.Count; i++)
{
//var _belt_scale_id = ApiManager.Instance.YardDic[DeviceBase.BeltScaleList[i].DeviceIndex];
var _belt_scale = ApiManager.Instance.T_BAS_ELEC_WEIGHTER_List.Find(x => x.WEIGHTER_NAME == DeviceBase.BeltScaleList[i].DeviceIndex);
if (_belt_scale != null)
{
DeviceBase.BeltScaleList[i].T_BAS_ELEC_WEIGHTER = _belt_scale;
}
}
}

View File

@ -26,6 +26,10 @@ public class ModelRoot : Singleton<ModelRoot>
/// Ô¤ÖÆÌå-Ƥ´ø³ÓUIͼ±ê
/// </summary>
public GameObject BeltScaleIconPrefab;
/// <summary>
///预制体-堆场UI图标
/// </summary>
public GameObject YardIconPrefab;
public override void Awake()
{

View File

@ -94,6 +94,7 @@ public class UIManager : Singleton<UIManager>
void Search()
{
//搜索场景内的物体,并高亮展示
}
/// <summary>
@ -128,12 +129,13 @@ public class UIManager : Singleton<UIManager>
/// <param name="_index"></param>
public void ShowBeltScalePage(string _index)
{
UIRoot.Instance.MeasuringScale.ShowPanel();
//UIRoot.Instance.MeasuringScale.SetWebPage(_camera_id, _custom_code, _monitor_id);
//UIRoot.Instance.MeasuringScale.ShowPanel();
UIRoot.Instance.MeasuringScale.UpdatePageData(_index);
}
public void ShowYardInformationPage()
public void ShowYardInformationPage(string _index)
{
UIRoot.Instance.YardInformation.ShowPanel();
//UIRoot.Instance.YardInformation.ShowPanel();
UIRoot.Instance.YardInformation.UpdatePageData(_index);
}
}

View File

@ -4,6 +4,7 @@ using UnityEngine;
using TMPro;
using UnityEngine.UI;
using XCharts.Runtime;
using System;
/// <summary>
/// ¼ÆÁ¿³ÓPage
@ -131,4 +132,16 @@ public class MeasuringScale : PanelBase
base.HidePanel();
gameObject.SetActive(false);
}
/// <summary>
/// 更新面板信息
/// </summary>
/// <param name="index"></param>
public void UpdatePageData(string index)
{
//调取接口更新界面
//接口返回后显示节目
ShowPanel();
}
}

View File

@ -3,6 +3,7 @@ using System.Collections.Generic;
using UnityEngine;
using TMPro;
using UnityEngine.UI;
using System;
/// <summary>
/// 堆场信息表
@ -40,4 +41,12 @@ public class YardInformation : PanelBase
base.HidePanel();
gameObject.SetActive(false);
}
public void UpdatePageData(string index)
{
//
//
ShowPanel();
}
}

View File

@ -0,0 +1,8 @@
{
"01": "YARD000226",
"02": "YARD000227",
"03": "YARD000228",
"04": "YARD000229",
"05": "YARD000230",
"06": "YARD000231"
}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: b682a61040dd60c40be9a522cd9a4564
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -0,0 +1,8 @@
{
"01": "YARD000226",
"02": "YARD000227",
"03": "YARD000228",
"04": "YARD000229",
"05": "YARD000230",
"06": "YARD000231"
}

View File

@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 4fbbd8db80227984eb766492ff1ee1b5
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant: