using System;
using System.Collections.Generic;
using HDL_ON.DAL.Server;
using HDL_ON.Entity;
using HDL_ON.UI.CSS;
using Shared;
namespace HDL_ON.UI
{
public class CacDayHistoryPage : FrameLayout
{
CacDayHistoryPage bodyView;
EchartsOption_BrokenLine brokenLine;
MyEchartsViewOn myEchartsView_Line;
string curQueryType = "hour";
string queryTime;
string functionId;
string time;
public CacDayHistoryPage(string functionId,string queryType, string time)
{
this.time = time;
this.functionId = functionId;
curQueryType = queryType;
bodyView = this;
queryTime = time;
}
///
///
///
public void InitView()
{
new TopViewDiv(bodyView, Language.StringByID(StringId.StatisticalChart24Hour)).LoadTopView();
bodyView.BackgroundColor = CSS_Color.BackgroundColor;
var contentView = new FrameLayout()
{
Y = Application.GetRealHeight(64),
Height = Application.GetRealHeight(603),
};
bodyView.AddChidren(contentView);
var btnTitle = new Button()
{
Height = Application.GetRealHeight(60),
TextAlignment = TextAlignment.Center,
TextSize = CSS_FontSize.SubheadingFontSize,
TextColor = CSS_Color.FirstLevelTitleColor,
};
if(curQueryType == "room_temp")
{
btnTitle.Text = queryTime + "室内温度历史数据";
}
else
{
btnTitle.Text = queryTime + "室内湿度历史数据";
}
contentView.AddChidren(btnTitle);
var historyDataView = new FrameLayout()
{
Gravity = Gravity.CenterHorizontal,
Y = Application.GetRealWidth(52),
Height = Application.GetRealWidth(350),
};
contentView.AddChidren(historyDataView);
brokenLine = new EchartsOption_BrokenLine();
myEchartsView_Line = new MyEchartsViewOn()
{
Y = Application.GetRealWidth(10),
Height = Application.GetRealWidth(338),
};
historyDataView.AddChidren(myEchartsView_Line);
#if DEBUG
//List vs = new List() {
// "1","2","3","4","5","6","7","8","9","10","11","12","13","14"
// };
//brokenLine.InitXdataText(vs);
//brokenLine.InitYdataText("yData", new List() {
// new EnvironmentalSensorHistor{ fieldName = "1", fieldValue= "23" },
// new EnvironmentalSensorHistor{ fieldName = "2", fieldValue= "22" },
// new EnvironmentalSensorHistor{ fieldName = "3", fieldValue= "-11" },
// new EnvironmentalSensorHistor{ fieldName = "4", fieldValue= "21" },
// new EnvironmentalSensorHistor{ fieldName = "5", fieldValue= "-41" },
// new EnvironmentalSensorHistor{ fieldName = "6", fieldValue= "23" },
// new EnvironmentalSensorHistor{ fieldName = "7", fieldValue= "-31" },
// new EnvironmentalSensorHistor{ fieldName = "8", fieldValue= "-23" },
// new EnvironmentalSensorHistor{ fieldName = "9", fieldValue= "-11" },
// new EnvironmentalSensorHistor{ fieldName = "10", fieldValue= "-21" },
// new EnvironmentalSensorHistor{ fieldName = "11", fieldValue= "24" },
// new EnvironmentalSensorHistor{ fieldName = "12", fieldValue= "41" },
// new EnvironmentalSensorHistor{ fieldName = "13", fieldValue= "32" },
// new EnvironmentalSensorHistor{ fieldName = "14", fieldValue= "23" }
//}, "#FF9D54");
//brokenLine.yTitle = "(℃)";
//brokenLine.xTitle = "";
////if (curQueryType != "hour")
////{
//// brokenLine.xTitle = Language.StringByID(StringId.Date);
////}
//var opString = brokenLine.InitOption();
// myEchartsView_Line.ShowWithOption(opString);
#endif
LoadMothed_GetHistoryData();
}
///
/// 读取历史数据
///
void LoadMothed_GetHistoryData()
{
var loadPage = new Loading()
{
LodingBackgroundColor = 0x88888888,
};
bodyView.AddChidren(loadPage);
new System.Threading.Thread(() =>
{
try
{
Application.RunOnMainThread(() =>
{
loadPage.Start(Language.StringByID(StringId.PleaseWait));
});
var revertObj = new HttpServerRequest().GetSensorHistory("day_hour", functionId, curQueryType,time);
if (revertObj != null)
{
if (revertObj.Code == StateCode.SUCCESS)
{
var revertData = Newtonsoft.Json.JsonConvert.DeserializeObject>(revertObj.Data.ToString());
List vs = new List();
if (brokenLine.YvalueText == "")
{
foreach (var data in revertData)
{
vs.Add(data.fieldName);
}
brokenLine.InitXdataText(vs);
}
//if (sr.GetAttribute("ydata") == null)
//{
// sr.attributes.Add(new FunctionAttributes() { key = "ydata" });
//}
//sr.SetAttrState("ydata",
brokenLine.InitYdataText("", revertData, "#FF9D54");// + ",");
}
}
brokenLine.yTitle = Language.StringByID(StringId.Uint);
if(curQueryType == "room_temp")
{
brokenLine.yTitle += ":°C";
}
else
{
brokenLine.yTitle += ":%";
}
brokenLine.xTitle = Language.StringByID(StringId.timeMode);
//if (curQueryType != "hour")
//{
// brokenLine.xTitle = Language.StringByID(StringId.Date);
//}
var opString = brokenLine.InitOption();
Application.RunOnMainThread(() =>
{
myEchartsView_Line.ShowWithOption(opString);
});
}
catch (Exception ex)
{
MainPage.Log($"sensor history error : {ex.Message}");
}
finally
{
Application.RunOnMainThread(() =>
{
loadPage.Hide();
});
}
})
{ IsBackground = true }.Start();
}
}
}