/// <summary> /// サーバーからHttpで前回データのファイルパスを全て取得する /// </summary> /// <param name="deviceAdress">接続しているデバイスのアドレス(MACアドレス)</param> /// <param name="onGetDataPathList">データのパスリスト取得完了時に呼び出されるコールバック。取得失敗時はnull</param> public static IEnumerator GetPriviousDataPathList(string deviceAdress, Action <List <string> > onGetDataPathList) { Debug.Log("GetPriviousDataPathList"); //スリープしないように設定 Screen.sleepTimeout = SleepTimeout.NeverSleep; if (!HttpManager.IsInternetAvailable()) { //接続失敗 Debug.Log("Connection Failed..."); onGetDataPathList(null); //スリープ設定解除 Screen.sleepTimeout = SleepTimeout.SystemSetting; yield break; } Debug.Log("Connection Success"); var devicePath = "/RD8001/Data/" + deviceAdress; var fileListTask = HttpManager.GetFileList(devicePath, HttpManager.FILE_TYPE_CSV, false); yield return(fileListTask.AsCoroutine()); List <string> fileFullPathList = fileListTask.Result; onGetDataPathList(fileFullPathList); //スリープ設定解除 Screen.sleepTimeout = SleepTimeout.SystemSetting; }
/// <summary> /// サーバーからHttpで最新のファームウェアのファイル名を取得する /// </summary> /// <param name="firmwareDirectory">G1D・H1Dのディレクトリパス</param> /// <param name="onGetFileName">目的のファイル名を受け取るコールバック</param> /// <param name="fileExtension">.mot, .bin</param> public static IEnumerator GetLatestFirmwareFileNameByHttp(string firmwareDirectoryPath, Action <string> onGetFileName, string fileExtension, Action <bool> onResponseIsError = null) { bool directoryExistResult = false; if (HttpManager.IsInternetAvailable()) { //HTTPでサーバー上にファームウェアのディレクトリが存在するか確認する var isDirExistTask = HttpManager.IsDirectoryExist(firmwareDirectoryPath); yield return(isDirExistTask.AsCoroutine()); directoryExistResult = isDirExistTask.Result; Debug.Log(directoryExistResult ? "G1D directory is Exist!" : "G1D directory is NotExist..."); } if (directoryExistResult) { //指定したファームウェアディレクトリの名のファイル名をすべて取得する var firmwareFileNameListTask = HttpManager.GetFileList(firmwareDirectoryPath, HttpManager.FILE_TYPE_BIN, true); yield return(firmwareFileNameListTask.AsCoroutine()); if (firmwareFileNameListTask.Result != null) { List <string> firmwareFileNameList = firmwareFileNameListTask.Result; //ファームウェア以外のファイルをはじく firmwareFileNameList = firmwareFileNameList .Where(fileName => fileName.Contains(fileExtension)) .ToList(); //ファイルがあるか確認 if (firmwareFileNameList.Count == 0) { onGetFileName(null); Debug.Log("No firmwareFile"); } else { //取得したディレクトリを確認 //foreach (var fileName in firmwareFileNameList) //{ // Debug.Log("GetFile:" + fileName); //} //ファイル名のリストが取得できれば、その中から最新のものを探す var ratestVersionFileIndex = firmwareFileNameList .Select((fileName, index) => new { FileName = fileName, Index = index }) .Aggregate((max, current) => (FirmwareFileNameToVersionLong(max.FileName) > FirmwareFileNameToVersionLong(current.FileName) ? max : current)) .Index; onGetFileName(firmwareFileNameList[ratestVersionFileIndex]); } if (onResponseIsError != null) { onResponseIsError(false); } yield break; } } if (onResponseIsError != null) { onResponseIsError(true); } onGetFileName(null); }