100 lines
3.2 KiB
C#
100 lines
3.2 KiB
C#
using Newtonsoft.Json;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
|
|
namespace XED
|
|
{
|
|
public class ConnectDataManager : MonoBehaviour
|
|
{
|
|
private Dictionary<string, SaveConnectedData> saveData = new Dictionary<string, SaveConnectedData>();
|
|
public Action<string, SaveConnectedData> onConnectData;
|
|
public Action<SaveConnectedData> onLoadData;
|
|
|
|
private Dictionary<string, SaveConnectAlarmData> saveAlarmData = new Dictionary<string, SaveConnectAlarmData>();
|
|
public Action<string, SaveConnectAlarmData> onConnectAlarm;
|
|
public Action<SaveConnectAlarmData> onLoadAlarm;
|
|
|
|
private MQTTData loadMQTTData;
|
|
public Action<List<DataClass>> mqttData;
|
|
public List<SaveMQTTData> saveMQTTDatas = new List<SaveMQTTData>();
|
|
|
|
public Action<string, List<DataClass>> apiData;
|
|
public List<SaveAPIData> saveAPIDatas = new List<SaveAPIData>();
|
|
|
|
public override void AfterAwake()
|
|
{
|
|
var mqttJson = Resources.Load<TextAsset>("MQTTData").text;
|
|
loadMQTTData = JsonConvert.DeserializeObject<MQTTData>(mqttJson);
|
|
}
|
|
|
|
public void SaveData(string className, SaveConnectedData savedConnetedData)
|
|
{
|
|
if (saveData.ContainsKey(className))
|
|
{
|
|
saveData.Remove(className);
|
|
}
|
|
saveData.Add(className, savedConnetedData);
|
|
onConnectData?.Invoke(className, savedConnetedData);
|
|
}
|
|
public void LoadData(string className)
|
|
{
|
|
onLoadData?.Invoke(saveData[className]);
|
|
}
|
|
public void RemoveData(string className)
|
|
{
|
|
saveData.Remove(className);
|
|
}
|
|
|
|
public void SaveAlarmData(string alarmName, SaveConnectAlarmData saveConnectAlarmData)
|
|
{
|
|
if (saveAlarmData.ContainsKey(alarmName))
|
|
{
|
|
saveAlarmData.Remove(alarmName);
|
|
}
|
|
saveAlarmData.Add(alarmName, saveConnectAlarmData);
|
|
onConnectAlarm?.Invoke(alarmName, saveConnectAlarmData);
|
|
}
|
|
public void LoadAlarmData(string alarmName)
|
|
{
|
|
onLoadAlarm?.Invoke(saveAlarmData[alarmName]);
|
|
}
|
|
public void RemoveAlarmData(string alarmName)
|
|
{
|
|
saveAlarmData.Remove(alarmName);
|
|
}
|
|
|
|
public void SetFilterData(string topicName)
|
|
{
|
|
List<DataClass> dataclasses = new List<DataClass>();
|
|
|
|
foreach (var data in this.loadMQTTData.dataList)
|
|
{
|
|
if (topicName == data.name)
|
|
{
|
|
dataclasses.Add(data);
|
|
}
|
|
}
|
|
mqttData?.Invoke(dataclasses);
|
|
}
|
|
public void SetMQTTData(SaveMQTTData saveMQTTData)
|
|
{
|
|
saveMQTTDatas.Clear();
|
|
saveMQTTDatas.Add(saveMQTTData);
|
|
}
|
|
|
|
public void SetFilterData(string className, DataClass dataClass)
|
|
{
|
|
List<DataClass> dataclasses = new List<DataClass>();
|
|
dataclasses.Add(dataClass);
|
|
|
|
apiData?.Invoke(className, dataclasses);
|
|
}
|
|
public void SetAPIData(SaveAPIData saveAPIData)
|
|
{
|
|
saveAPIDatas.Clear();
|
|
saveAPIDatas.Add(saveAPIData);
|
|
}
|
|
}
|
|
}
|