示例#1
0
        protected override void OnMessage(MessageEventArgs e)
        {
            string messageString = e.Data;

            Debug.WriteLine("messageString : " + messageString);
            if (messageString.Length > 0 && messageString[0] == '{')
            {
                try
                {
                    UniToio.NetData netData = JsonConvert.DeserializeObject <UniToio.NetData>(messageString);
                    if (netData != null)
                    {
                        if (netData.uuid == "" && (netData.data == null || netData.data.Length == 0)) // Connect
                        {
                            ToioBridge.ToioDeviceManager.Instance.Search(3000, NewToioFound);
                            return;
                        }
                        UniToio.Data data = UniToio.DataConverter.Convert(netData);
                        if (data != null)
                        {
                            for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                            {
                                ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                                toio.Write(data.uuid, data.data);
                            }
                            Debug.WriteLine(data.uuid);
                        }
                    }
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.ToString());
                }
            }
        }
示例#2
0
        private void NewToioFound(ToioBridge.Toio toio)
        {
            string msg = $"Toio count: {ToioBridge.ToioDeviceManager.Instance.GetToioCount()}";

            //SetText(msg);
            Debug.WriteLine(msg);

            string json = "{\"serial\":" + toio.SerialNumber + "}";

            Sessions.Broadcast(json);

            toio.onValueChanged += OnValueChanged;
        }
        private void MessageWebSocket_MessageReceived(MessageWebSocket sender, MessageWebSocketMessageReceivedEventArgs args)
        {
            DataReader messageReader = args.GetDataReader();

            messageReader.UnicodeEncoding = UnicodeEncoding.Utf8;
            string messageString = messageReader.ReadString(messageReader.UnconsumedBufferLength);

            Debug.WriteLine("messageString : " + messageString);

            if (messageString == "G")
            {
                for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                {
                    ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                    toio.MotorControl(true, 100, true, 100);
                }
            }
            else if (messageString == "B")
            {
                for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                {
                    ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                    toio.MotorControl(false, 100, false, 100);
                }
            }
            else if (messageString == "R")
            {
                for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                {
                    ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                    toio.MotorControl(true, 100, false, 100);
                }
            }
            else if (messageString == "L")
            {
                for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                {
                    ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                    toio.MotorControl(false, 100, true, 100);
                }
            }
            else if (messageString == " ")
            {
                for (int i = 0; i < ToioBridge.ToioDeviceManager.Instance.GetToioCount(); i++)
                {
                    ToioBridge.Toio toio = ToioBridge.ToioDeviceManager.Instance.GetToio(i);
                    toio.MotorControl(true, 0, true, 0);
                }
            }
            //Add code here to do something with the string that is received.

            Task.Run(async() =>
            {
                //UnityEngine.WSA.Application.InvokeOnAppThread(() => {

                //    Debug.WriteLine("InvokeOnAppThread : iTween");

                //    // WebSocket受信時に回転が変わる
                //    iTween.RotateTo(this.gameObject, iTween.Hash(
                //        "x", UnityEngine.Random.Range(1, 5) * 20,
                //        "y", UnityEngine.Random.Range(1, 5) * 20,
                //        "z", UnityEngine.Random.Range(1, 5) * 20,
                //        "time", 2f
                //    ));

                //    // WebSocket受信時に大きさが変わる
                //    var scale = UnityEngine.Random.Range(1, 5) * 0.02;
                //    iTween.ScaleTo(this.gameObject, iTween.Hash(
                //        "x", originalScale.x + scale,
                //        "y", originalScale.y + scale,
                //        "z", originalScale.z + scale,
                //        "time", 2f
                //    ));

                //}, true);

                await Task.Delay(100);
            });
        }