public string Process(string json) { Response resultInfo = new Response(); try { //string citFilePath, int fs, int upperFreq, int lowerFreq, int windowLen, List<double> upperChannelFreq, List<double> lowerChannelFreq, int segmentLen, out string filePath BatRequest request = JsonConvert.DeserializeObject <BatRequest>(json); string idfFilePath = ""; var avgList = batProcess.BatProcessAll(request.path, request.fs, request.upperFreq, request.lowerFreq, request.windowLen, request.upperChannelFreq, request.lowerChannelFreq, request.segmentLen, request.idfFilePath, out idfFilePath); string result = JsonConvert.SerializeObject(avgList); BatResult br = new BatResult(); br.IdfFilePath = idfFilePath; br.AvgResult = result; string data = JsonConvert.SerializeObject(br); resultInfo.flag = 1; resultInfo.msg = "Success"; resultInfo.data = data; } catch (Exception ex) { resultInfo.flag = 0; resultInfo.msg = ex.Message; } return(JsonConvert.SerializeObject(resultInfo)); }
public string ProcessMaxAndAvg(string json) { Response resultInfo = new Response(); try { MaxRequest obj = JsonConvert.DeserializeObject <MaxRequest>(json); string idfFilePath = batProcess.CalcMax(obj.path, obj.sectionLen, obj.exportPath, obj.isCreateIdf); var avgList = batProcess.CalcAvg(idfFilePath); string result = JsonConvert.SerializeObject(avgList); BatResult br = new BatResult(); br.IdfFilePath = idfFilePath; br.AvgResult = result; string data = JsonConvert.SerializeObject(br); resultInfo.flag = 1; resultInfo.msg = "Success"; resultInfo.data = data; } catch (Exception ex) { resultInfo.flag = 0; resultInfo.msg = ex.Message; } return(JsonConvert.SerializeObject(resultInfo)); }
public string ProcessAvg(string json) { Response resultInfo = new Response(); try { BaseRequest obj = JsonConvert.DeserializeObject <BaseRequest>(json); var avgList = batProcess.CalcAvg(obj.path); string result = JsonConvert.SerializeObject(avgList); BatResult br = new BatResult(); br.IdfFilePath = obj.path; br.AvgResult = result; string data = JsonConvert.SerializeObject(br); resultInfo.flag = 1; resultInfo.msg = "Success"; resultInfo.data = data; } catch (Exception ex) { resultInfo.flag = 0; resultInfo.msg = ex.ToString(); } return(JsonConvert.SerializeObject(resultInfo)); }
/// <summary> /// 多线程处理批处理任务(此方法专为任务管线定制而成) /// 目的:在主线程中避免进行耗时操作 /// </summary> /// <param name="batPath"></param> public static void CallBatByThread <T>(string batPath, BuildTask <T> task) { Func <string, BatResult> callBatThread = CallBatFunc; callBatThread.BeginInvoke(batPath, (ar) => { BatResult result = callBatThread.EndInvoke(ar); //UnityEngine.Debug.LogError("CallBatByThread result : " + result); switch (result) { case BatResult.Success: task.Status = TaskStatus.Success; break; case BatResult.Failure: task.Status = TaskStatus.Failure; break; } }, callBatThread); }