/// <summary> /// Process the tennis message /// </summary> /// <param name="message"></param> private async void AppMessageReceived(P3bbleMessage message) { try { var localSettings = ApplicationData.Current.LocalSettings; switch (message.Endpoint) { case P3bble.Constants.Endpoint.WatchFaceSelect: WatchFaceMessage _watchFaceMessage = (WatchFaceMessage)message; System.Diagnostics.Debug.WriteLine("WatchFaceMessage received: " + _watchFaceMessage.CurrentWatchFace.ToString()); var WatchItem = _pc.WatchItems.FindLast(x => x.ID == _watchFaceMessage.CurrentWatchFace); if (WatchItem != null) { await WatchItem.Ready(); } break; case P3bble.Constants.Endpoint.ApplicationMessage: P3bble.Messages.AppMessage _appMessage = (P3bble.Messages.AppMessage)message; if (_appMessage.AppUuid != Guid.Parse("51a56b50-f87d-ce41-a0ff-30d03a88fa8d")) { System.Diagnostics.Debug.WriteLine("AppMessage received: " + _appMessage.AppUuid.ToString()); } WatchItem = _pc.WatchItems.FindLast(x => x.ID == _appMessage.AppUuid); if (WatchItem != null) { System.Diagnostics.Debug.WriteLine("AppMessage received: " + WatchItem.Name); await WatchItem.AppMessage(_appMessage.Content); } break; } } catch (Exception exp) { AddToLog(exp.Message); } }
/// <summary> /// Creates an incoming message. /// </summary> /// <param name="endpoint">The endpoint.</param> /// <param name="payload">The payload.</param> /// <returns>A specific message type</returns> public static P3bbleMessage CreateMessage(Endpoint endpoint, List <byte> payload) { P3bbleMessage frame = null; switch (endpoint) { case Endpoint.Ping: frame = new PingMessage(); break; case Endpoint.Version: frame = new VersionMessage(); break; case Endpoint.Time: frame = new TimeMessage(); break; case Endpoint.Logs: frame = new LogsMessage(); break; case Endpoint.AppManager: frame = new AppManagerMessage(); break; case Endpoint.AppManagerV3: frame = new AppManagerMessageV3(); break; case Endpoint.MusicControl: frame = new MusicMessage(); break; case Endpoint.ApplicationMessage: frame = new AppMessage(endpoint); break; case Endpoint.PhoneVersion: frame = new PhoneVersionMessage(false); break; case Endpoint.PutBytes: frame = new PutBytesMessage(); break; case Endpoint.WatchFaceSelect: frame = new WatchFaceMessage(); break; case Endpoint.StandardV3: frame = new StandardV3Message(); break; } if (frame != null) { frame.GetContentFromMessage(payload); } return(frame); }