コード例 #1
0
        private JObject MessageAssembler(enum_Command command, JObject args = null)
        {
            double  speed = this.speed;
            JObject arg   = new JObject
            {
                { "Speed", speed },
                { "Fire", this.fireDetect },
                { "Debug", this.isDebugMode }
            };
            JObject jObject_Message = new JObject
            {
                { "Type", "instruction" },
                { "FromIP", this.IPAddress_Local.ToString() },
                { "FromID", 0 },
                { "FromRole", "Controller" },
                { "Command", (int)command },
                { "Args", arg }
            };

            return(jObject_Message);
        }
コード例 #2
0
        private void Accelerometer_Changed(object sender, AccelerometerChangedEventArgs e)
        {
            enum_Command cmd  = enum_Command.Stop;
            var          data = e.Reading.Acceleration;

            this.vector3_AccFiltered.X = this.accSensitivity * data.X + (1 - this.accSensitivity) * this.vector3_AccFiltered.X;
            this.vector3_AccFiltered.Y = this.accSensitivity * data.Y + (1 - this.accSensitivity) * this.vector3_AccFiltered.Y;
            this.vector3_AccFiltered.Z = this.accSensitivity * data.Z + (1 - this.accSensitivity) * this.vector3_AccFiltered.Z;

            if (Math.Abs(this.vector3_AccFiltered.X) < 0.1f && this.vector3_AccFiltered.Y < 0.2f)
            {
                cmd = enum_Command.Forward;
            }
            else if (Math.Abs(this.vector3_AccFiltered.X) < 0.1f && this.vector3_AccFiltered.Y > 0.61f)
            {
                cmd = enum_Command.Backward;
            }
            else if (this.vector3_AccFiltered.X > 0.3f && this.vector3_AccFiltered.Y > 0.4f)
            {
                cmd = enum_Command.LeftRotate;
            }
            else if (this.vector3_AccFiltered.X < -0.3f && this.vector3_AccFiltered.Y > 0.4f)
            {
                cmd = enum_Command.RightRotate;
            }
            else if (Math.Abs(this.vector3_AccFiltered.Y) < 0.2f && this.vector3_AccFiltered.X > 0.3f)
            {
                cmd = enum_Command.LeftShift;
            }
            else if (Math.Abs(this.vector3_AccFiltered.Y) < 0.2f && this.vector3_AccFiltered.X < -0.3f)
            {
                cmd = enum_Command.RightShift;
            }
            else
            {
                cmd = enum_Command.Stop;
            }
            if (cmd != this.lastCommand)
            {
                switch (cmd)
                {
                case enum_Command.Stop:
                    this.button_Stop_Clicked(sender, e);
                    break;

                case enum_Command.Forward:
                    this.button_Forward_Pressed(sender, e);
                    break;

                case enum_Command.Backward:
                    this.button_Back_Pressed(sender, e);
                    break;

                case enum_Command.LeftRotate:
                    this.button_LRotate_Pressed(sender, e);
                    break;

                case enum_Command.RightRotate:
                    this.button_RRotate_Pressed(sender, e);
                    break;

                case enum_Command.LeftShift:
                    this.button_LShift_Pressed(sender, e);
                    break;

                case enum_Command.RightShift:
                    this.button_RShift_Pressed(sender, e);
                    break;
                }
                this.lastCommand = cmd;
                Thread.Sleep(100);
            }
        }