public void CheckForNewFirmwareAsync(P3bbleFirmwareVersion version, bool useNightlyBuild = false) { string url = version.GetFirmwareServerUrl(useNightlyBuild); WebClient wc = new WebClient(); wc.DownloadStringAsync(new Uri(url)); wc.DownloadStringCompleted += (sender, e) => { byte[] byteArray = Encoding.UTF8.GetBytes(e.Result); MemoryStream stream = new MemoryStream(byteArray); var serializer = new DataContractJsonSerializer(typeof(P3bbleFirmwareLatest)); P3bbleFirmwareLatest info = serializer.ReadObject(stream) as P3bbleFirmwareLatest; stream.Close(); CheckForNewFirmwareVersionEventArgs eventArgs = new CheckForNewFirmwareVersionEventArgs(false, null); if (Util.IsNewerVersionAvailable(FirmwareVersion.Version, info.Normal.FriendlyVersion)) { eventArgs = new CheckForNewFirmwareVersionEventArgs(true, info); } if (CheckForNewFirmwareCompleted != null) { CheckForNewFirmwareCompleted(this, eventArgs); } }; }
private void AsynMessageRecived(object sender, P3bbleMessageReceivedEventArgs e) { if (e.Message.Endpoint == P3bbleEndpoint.PhoneVersion) { _prot.WriteMessage(new PhoneVersionMessage()); } else if (e.Message.Endpoint == P3bbleEndpoint.Version) { VersionMessage message = e.Message as VersionMessage; FirmwareVersion = message.Firmware; RecoveryFirmwareVersion = message.RecoveryFirmware; } Debug.WriteLine(e.Message.Endpoint); }