上传记录增加本地保存逻辑
This commit is contained in:
parent
614d067d25
commit
9993752ff5
File diff suppressed because it is too large
Load Diff
@ -302,7 +302,9 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
var rs = resultPanel.GetComponent<ResultPanelScript>();
|
||||
rs.InjectController(this);
|
||||
rs.SetDataSource(cyclingController.recorderData);
|
||||
cyclingController.recorderData.SaveData(cyclingModel, selectParamModel, imageFileName);
|
||||
var localData = cyclingController.recorderData.SaveLocal(cyclingModel, selectParamModel, imageFileName);
|
||||
//异步上传
|
||||
cyclingController.recorderData.SaveDataAysnc(localData);
|
||||
}
|
||||
|
||||
protected string CaptureCamera(Camera camera, Rect rect)
|
||||
@ -330,7 +332,9 @@ public class CyclingController : DeviceServiceMonoBase
|
||||
GameObject.Destroy(rt);
|
||||
// 最后将这些纹理数据,成一个图片文件
|
||||
byte[] bytes = screenShot.EncodeToPNG();
|
||||
string filename = Application.dataPath + "/" + Guid.NewGuid().ToString() + ".png";
|
||||
|
||||
var path = Helper.GetDataDir("MapWorkoutRecords/images");
|
||||
string filename = path + "/" + Guid.NewGuid().ToString() + ".png";
|
||||
System.IO.File.WriteAllBytes(filename, bytes);
|
||||
//Debug.Log(string.Format("截屏了一张照片: {0}", filename));
|
||||
return filename;
|
||||
|
||||
@ -16,9 +16,14 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
{
|
||||
public class Helper
|
||||
{
|
||||
public static string GetDataDire(string pathName)
|
||||
public static string GetDataDir(string pathName)
|
||||
{
|
||||
return @"D:\unityproject\Test\"+ pathName;
|
||||
var dirName = Application.dataPath + "/" + pathName;
|
||||
if (!Directory.Exists(dirName))
|
||||
{
|
||||
Directory.CreateDirectory(dirName);
|
||||
}
|
||||
return dirName;
|
||||
}
|
||||
public static double AveragePower(IList<TargetData> list)
|
||||
{
|
||||
|
||||
@ -1,11 +1,13 @@
|
||||
using Assets.Scripts.Apis;
|
||||
using Assets.Scripts.Apis.Models;
|
||||
using Newtonsoft.Json;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
|
||||
namespace Assets.Scenes.Ride.Scripts.Model
|
||||
{
|
||||
@ -104,16 +106,12 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
|
||||
public int GlobalCyclingId { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// 保存数据
|
||||
/// </summary>
|
||||
/// <param name="base64Image"></param>
|
||||
/// <returns></returns>
|
||||
public JsonResult<AddMapRecordResultModel> SaveData(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName = "")
|
||||
public Dictionary<MapInterruptRecord, List<string>> SaveLocal(CyclingModel cyclingModel, RouteResultParam selectParam, string imageName = "")
|
||||
{
|
||||
Dictionary<MapInterruptRecord, List<string>> recordData = new Dictionary<MapInterruptRecord, List<string>>();
|
||||
if (RiderDatas.Count <= 0)
|
||||
{
|
||||
return new JsonResult<AddMapRecordResultModel> { result = true };
|
||||
return recordData;
|
||||
}
|
||||
string newFileName = Guid.NewGuid().ToString();
|
||||
int FTP = Helper.GetFtp();
|
||||
@ -123,8 +121,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
//训练量
|
||||
double TSS = (RiderDatas.Count * NP * IF) / (FTP * 3600) * 100;
|
||||
var averagePower = Helper.AveragePower(RiderDatas);
|
||||
MapInterruptRecordApi service = new MapInterruptRecordApi();
|
||||
// AntManufacturer manufacturer = service.GetAntManufacturer(ManufacturerId).data;
|
||||
|
||||
// AntManufacturer manufacturer = service.GetAntManufacturer(ManufacturerId).data;
|
||||
var recordId = Guid.NewGuid().ToString();
|
||||
var ticks = RiderDatas.Last().Ticks;
|
||||
var interruptRecord = new MapInterruptRecord
|
||||
@ -182,7 +180,8 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
interruptRecord.AverageHeartRate = Math.Round(RiderDatas.Average(a => a._HeartRate.GetValueOrDefault(0)));
|
||||
interruptRecord.MaxHeartRate = RiderDatas.Max(a => a._HeartRate.GetValueOrDefault(0));
|
||||
//service.CreateRecordCyclingData(interruptRecord);
|
||||
var path = Helper.GetDataDire("MapWorkoutRecords");
|
||||
//保存骑行记录txt
|
||||
var path = Helper.GetDataDir("MapWorkoutRecords" + "/" + interruptRecord.Id);
|
||||
var fname = path + "/" + newFileName + ".txt";
|
||||
var files = new List<string>();
|
||||
using (var fs = new FileInfo(fname).OpenWrite())
|
||||
@ -197,14 +196,35 @@ namespace Assets.Scenes.Ride.Scripts.Model
|
||||
stream.Close();
|
||||
files.Add(fname);
|
||||
}
|
||||
#region 截图
|
||||
//图片
|
||||
if (!string.IsNullOrEmpty(imageName))
|
||||
{
|
||||
files.Add(imageName);
|
||||
files.Add(imageName);
|
||||
}
|
||||
//持久化序列化对象
|
||||
var recordString = JsonConvert.SerializeObject(interruptRecord);
|
||||
var recordFilePath = path + "/" + "record" + ".txt";
|
||||
System.IO.File.WriteAllText(recordFilePath, recordString);
|
||||
|
||||
recordData.Add(interruptRecord, files);
|
||||
return recordData;
|
||||
}
|
||||
/// <summary>
|
||||
/// 保存数据
|
||||
/// </summary>
|
||||
/// <param name="base64Image"></param>
|
||||
/// <returns></returns>
|
||||
public void SaveDataAysnc(Dictionary<MapInterruptRecord, List<string>> data)
|
||||
{
|
||||
if (data != null && data.Count > 0)
|
||||
{
|
||||
Task.Run(() => {
|
||||
var record = data.FirstOrDefault();
|
||||
MapInterruptRecordApi service = new MapInterruptRecordApi();
|
||||
var result = service.Add(record.Key, record.Value);
|
||||
//return new JsonResult<AddMapRecordResultModel> { result = result.result, errMsg = result.errMsg, data = result.data };
|
||||
});
|
||||
}
|
||||
#endregion
|
||||
var result = service.Add(interruptRecord, files);
|
||||
return new JsonResult<AddMapRecordResultModel> { result = result.result, errMsg = result.errMsg, data = result.data };
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +22,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
slider = transform.Find("Sensitivity").GetComponent<Slider>();
|
||||
text = transform.Find("Sensitivity/Text").GetComponent<Text>();
|
||||
text.text = App.rideSetting.sensitivity.ToString("#0")+ "%";
|
||||
slider.value =(float)App.rideSetting.sensitivity;
|
||||
slider.onValueChanged.AddListener((f) =>
|
||||
{
|
||||
text.text = $"{(f).ToString("#0")}%";
|
||||
|
||||
@ -85,6 +85,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
GameObject startPanel;
|
||||
GameObject headPanel;
|
||||
GameObject settingPanel;
|
||||
Button abandonButton;
|
||||
void Awake()
|
||||
{
|
||||
#region 控件获取与事件绑定
|
||||
@ -137,6 +138,7 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
saveButton = transform.Find("Panel/QuitPanel/SaveButton").GetComponent<Button>();
|
||||
cancelQuitButton = transform.Find("Panel/QuitPanel/CancelButton").GetComponent<Button>();
|
||||
closeQuitButton = transform.Find("Panel/QuitPanel/CloseButton").GetComponent<Button>();
|
||||
abandonButton = transform.Find("Panel/QuitPanel/AbandonButton").GetComponent<Button>();
|
||||
viewButton =transform.Find("Panel/ViewButton").GetComponent<Button>();
|
||||
altitudeGraph = transform.Find("Panel/TitlePanel/AltitudeGraph").GetComponent<RawImage>();
|
||||
leftImage = transform.Find("Panel/TitlePanel/Left").GetComponent<Image>();
|
||||
@ -156,8 +158,9 @@ namespace Assets.Scenes.Ride.Scripts
|
||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShadowRide);
|
||||
UIManager.AddEvent(addButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ShowSelectPlayer);
|
||||
UIManager.AddEvent(saveButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, SaveRide);
|
||||
UIManager.AddEvent(cancelQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CancelQuit);
|
||||
UIManager.AddEvent(abandonButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CancelQuit);
|
||||
UIManager.AddEvent(closeQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
|
||||
UIManager.AddEvent(cancelQuitButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, CloseQuit);
|
||||
UIManager.AddEvent(viewButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerClick, ChangeView);
|
||||
UIManager.AddEvent(singleButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
||||
UIManager.AddEvent(shadowButton.gameObject, UnityEngine.EventSystems.EventTriggerType.PointerEnter, OnPointEnter);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user