public IEnumerator GetFileParameter(string fileId, FileParameterInfo parameterData, Action <FileParameterDataBin, long> onSuccess, Action <ErrorDetails> onError) { return(WebRequest( RequestType.kGET, $"{baseURI}/files/{fileId}/{parameterData.name}", (byte[] body, long responseCode) => { FileParameterData data = JsonUtility.FromJson <FileParameterData>( Encoding.UTF8.GetString(body)); byte[] bytesDataCompressed = Convert.FromBase64String(data.data); byte[] bytesData = Compression.Inflate(bytesDataCompressed); onSuccess( DataConverter.FromBytes(bytesData, parameterData), responseCode); }, onError)); }
private FileParameterDataBin GenerateRandomMatrix(FileParameterInfo param) { var random = new System.Random(param.GetHashCode()); int count = param.num_dates * param.num_layers * param.height * param.width; float[] result = new float[count]; for (int i = 0; i < count; i++) { result[i] = (float)random.NextDouble(); } var r = new FileParameterDataBin() { data = result, info = param }; r.UpdateMinMax(); return(r); }
public static FileParameterDataBin FromBytes(byte[] data, FileParameterInfo info) { int count = info.num_dates * info.num_layers * info.width * info.height; if (data.Length != sizeof(float) * count) { return(null); } float[] buffer = new float[count]; Buffer.BlockCopy(data, 0, buffer, 0, data.Length); var result = new FileParameterDataBin() { data = buffer, info = info }; result.UpdateMinMax(); return(result); }
public IEnumerator GetFileParameter(string fileId, FileParameterInfo parameterData, Action <FileParameterDataBin, long> onSuccess, Action <ErrorDetails> onError) { yield return(new WaitForSeconds(waitDelay)); if (forcedError != null) { onError(forcedError); yield break; } var info = files.Find((FileInfoDetailed f) => { return(f.id == fileId); }); if (info != null) { var param = info.parameters.ToList().Find((FileParameterInfo p) => { return(p.name == parameterData.name); }); if (param != null) { onSuccess(GenerateRandomMatrix(parameterData), 200); yield break; } } onError(GenProtocolErrorDetails(404)); }