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); }
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); } }