117 lines
3.2 KiB
C#
117 lines
3.2 KiB
C#
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using Best.HTTP;
|
|
using System;
|
|
using Newtonsoft.Json;
|
|
using System.Text;
|
|
using WI;
|
|
using System.Linq;
|
|
|
|
/// <summary>
|
|
/// Option.ini
|
|
///
|
|
/// --httpSetting--
|
|
/// apiKey=""
|
|
/// httpServer=""
|
|
/// kpiAPI=""
|
|
/// predictionTimeAPI=""
|
|
///
|
|
/// --mqttClientSetting--
|
|
/// brokerAddress=""
|
|
/// brokerPort=""
|
|
/// topics="a","b","c"...
|
|
/// --mqttBrokerSetting--
|
|
/// address=""
|
|
/// port=""
|
|
/// topics="a","b","c"...
|
|
///
|
|
/// --defaultInfo--
|
|
/// machineInfoPath=""
|
|
///
|
|
/// --controllerOption--
|
|
/// forward=""
|
|
/// backward=""
|
|
/// left=""
|
|
/// right=""
|
|
/// zoomSpeed=""
|
|
/// moveSpeed=""
|
|
/// sprintSpeed=""
|
|
/// rotateSpeed=""
|
|
///
|
|
/// --graphicOption--
|
|
/// shadow=true
|
|
/// uiEffect=true
|
|
/// uiAnimation=true
|
|
/// uiResolution=1.0
|
|
/// machineEffect=true
|
|
/// machineAnimation=true
|
|
/// graphicQuality=1
|
|
/// </summary>
|
|
namespace CHN
|
|
{
|
|
public class HTTPRequester : Protocol, ISingle, IOptionable
|
|
{
|
|
public Action<MachineKPIData> onMachineKPIData;
|
|
|
|
[OptionSection]
|
|
string httpSetting;
|
|
[OptionKey]
|
|
string apiKey = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpZCI6MiwiZW1haWwiOiJjaHVuaWxlbmdAdXZjLmNvLmtyIiwiZ3JvdXBJZCI6MiwiZ3JvdXBDb2RlIjoiY2h1bmlsZW5nIiwicm9sZSI6IlRlbmFudEFkbWluIiwibmFtZSI6IuyynOydvOyXlOyngOuLiOyWtOungSIsImxpY2Vuc2UiOiJidXNpbmVzcyIsInBob25lIjoiMDEwMDAwMDAwMDAiLCJpYXQiOjE3MTgxNjI2MjksImV4cCI6MjAzMzUyMjYyOX0.zdlNswh_88M44oxs1HuaoA-rFdUoS50tHQ1-xNqWzIc";
|
|
[OptionKey]
|
|
string httpServer = "http://106.247.236.204:8863";
|
|
[OptionKey]
|
|
string kpiAPI = "/api/usp_ppmr020/list/facilityKpi";
|
|
|
|
public void Start()
|
|
{
|
|
HTTPConnect();
|
|
}
|
|
public void HTTPConnect()
|
|
{
|
|
var path = httpServer + kpiAPI;
|
|
|
|
var yesterday = DateTime.Now.AddDays(-1);
|
|
var yesterdayTime = yesterday.ToString("yyyyMMdd");
|
|
var todayTime = DateTime.Now.ToString("yyyyMMdd");
|
|
|
|
var query = $"?&p_frdt={yesterdayTime}&p_todt={todayTime}&limit={100}";
|
|
|
|
var request = HTTPRequest.CreateGet(path + query, RequestFinishedCallback);
|
|
request.AddHeader("access-token", apiKey);
|
|
|
|
request.Send();
|
|
}
|
|
private void RequestFinishedCallback(HTTPRequest req, HTTPResponse resp)
|
|
{
|
|
switch (req.State)
|
|
{
|
|
case HTTPRequestStates.Finished:
|
|
if (resp.IsSuccess)
|
|
{
|
|
isSuccess = true;
|
|
errorMessage = "Connected";
|
|
|
|
var payload = Encoding.UTF8.GetString(resp.Data);
|
|
var response = JsonConvert.DeserializeObject<MachineKPIData>(payload);
|
|
|
|
onMachineKPIData?.Invoke(response);
|
|
}
|
|
else
|
|
{
|
|
isSuccess = false;
|
|
errorMessage = $"Server sent an error: {resp.StatusCode}-{resp.Message}";
|
|
}
|
|
break;
|
|
|
|
default:
|
|
isSuccess = false;
|
|
errorMessage = $"Request state: {req.State}";
|
|
break;
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|
|
|