Beispiel #1
0
        /// <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);
        }