private async void btnUploadHex_Click(object sender, EventArgs e) { LoadingButton(btnUploadHex); try { byte[] buffer = this.intelHex.ToBinary(); FirmwareInfo firmwareInfo = new FirmwareInfo(); firmwareInfo.Set("Version", intelHex.Headers.Version); firmwareInfo.Set("Description", intelHex.Headers.Description); firmwareInfo.Set("FirmwareGUID", intelHex.Headers.FirmwareGUID); Task <dynamic> task = Task.Factory.StartNew(() => device.SendFirmwareInfo(firmwareInfo)); dynamic responseFirmwareInfo = await task; ResponseFirmware response = device.ParseFirmwareInfoResponse(responseFirmwareInfo); if (response.IsSuccess) { panelUploadProgress.Visible = true; Task <dynamic> taskSend = Task.Factory.StartNew(() => device.SendHexFile(buffer)); dynamic responseFirmwareUpload = await taskSend; ResetButton(btnUploadHex); panelUploadProgress.Visible = false; response = device.ParseFirmwareUploadResponse(responseFirmwareUpload); if (response.IsSuccess) { ShowInfoMessage(ECRDictionary.GetTranslation("Hex file was uploaded successfully")); } else { if (response.Error.Length > 0) { ShowErrorMessage(response.Error); } } } else { ResetButton(btnUploadHex); if (response.Error.Length > 0) { ShowErrorMessage(response.Error); } } } catch (IntelHexParserException) { panelUploadProgress.Visible = false; ResetButton(btnUploadHex); ShowErrorMessage(ECRDictionary.GetTranslation("Invalid HEX format")); } }
private async void btnFlash_Click(object sender, EventArgs e) { LoadingButton(btnFlash); Task <dynamic> task = Task.Factory.StartNew(() => device.Flash()); dynamic responseFirmwareInfo = await task; ResponseFirmware response = device.ParseFirmwareResponseBurn(responseFirmwareInfo); ResetButton(btnFlash); if (response.IsSuccess) { ShowInfoMessage(ECRDictionary.GetTranslation("Flash is starting...")); Clear(); ChangePanelsState(false); } else { ResetButton(btnFlash); if (response.Error.Length > 0) { ShowErrorMessage(response.Error); } } }