public MainPage() { this.InitializeComponent(); InputManager inputManager = new InputManager(InputLayerRect); Sketch = new Sketch(); Sketch.SkiaManager.Init(SKCanvasView.Invalidate, SKMatrix.MakeScale(1, -1)); System.Diagnostics.Debug.WriteLine("MainPageThread:" + Thread.CurrentThread.ManagedThreadId); BluetoothManager = new BluetoothManager(); ExampleSketchObject = Sketch.SketchEngine.Instantiate <ExampleSketchObject>(); Sketch.SketchEngine.Instantiate <GridRenderer>(); Sketch.SketchEngine.Instantiate <PointerInfoBoard>(); Sketch.SketchEngine.Instantiate <SketchBorderRenderer>(); sketchInputManager = Sketch.SketchEngine.Instantiate <SketchInputManager>(); sketchInputManager.Init(inputManager); Sketch.Start(); var joystick = Sketch.SketchEngine.Instantiate <ColorJoystick>(); joystick.RectTransform.AnchorMax = new Vector2(0, 0); joystick.RectTransform.AnchorMin = new Vector2(0, 0); joystick.RectTransform.OffsetMax = new Vector2(-100, -100); joystick.RectTransform.OffsetMin = new Vector2(100, 100); joystick.Level = 3; var joystick2 = Sketch.SketchEngine.Instantiate <LineAreaJoystick <byte> >(); joystick2.RectTransform.AnchorMax = new Vector2(0, 0); joystick2.RectTransform.AnchorMin = new Vector2(0, 0); joystick2.RectTransform.OffsetMax = new Vector2(-10, -10); joystick2.RectTransform.OffsetMin = new Vector2(-2000, 2000); joystick2.Level = 2; //InputLayerRect.TransformMatrix; Matrix3x2 matrix = Matrix3x2.CreateScale(0.2f, -0.2f); sketchInputManager.InputSpaceToSketchSpaceMatrix = matrix; Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint; /* * var characteristicDict = new Dictionary<Guid, List<CharacteristicProfile>>(); * characteristicDict.Add(KeyboardServiceWrapper.Guid, new List<CharacteristicProfile>() * { * new CharacteristicProfile * { * Notified = true, * Guid = Constants.KeyActionCharacteristicWrapper * } * }); * var serviceId = new List<Guid> * { * GyroscopeRfcommServiceConnectionWrapper.RfcommServiceId * }; * ConnectionProfile profile = new ConnectionProfile() * { * RequiredCharacteristicGuids = characteristicDict, * RequiredServiceGuids = serviceId * }; * * TestJitterFixer.DataEmited += TestJitterFixer_DataEmited; * var dialog = new BleDeviceSelectorDialog(BluetoothManager, profile); * dialog.Closed += Dialog_Closed; * dialog.ShowAsync(); */ }
public MainPage() { InitializeComponent(); //AbsoluteLayout.SetLayoutFlags(CanvasView, AbsoluteLayoutFlags.All); //AbsoluteLayout.SetLayoutBounds(CanvasView, new Rectangle(0, 0, 1, 1)); var bluetoothManager = DependencyService.Get <IManagerManager>().BluetoothManager; var deviceInfomationService = new DeviceInfomationServiceBuilder(bluetoothManager).Build(); bluetoothManager.GattSever.AddService(new DeviceInfomationServiceBuilder(bluetoothManager).Build()); //bluetoothManager.GattSever.AddService(new BatteryServiceWrapper(bluetoothManager).GattServerService); bluetoothManager.GattSever.AddService(new RfcommServerServiceWrapper(bluetoothManager).GattServerService); KeyboardServiceWrapper = new KeyboardServiceWrapper(bluetoothManager); bluetoothManager.GattSever.AddService(KeyboardServiceWrapper.GattServerService); bluetoothManager.GattSever.StartAdvertising(); var createServiceProviderTask = bluetoothManager.CreateRfcommServiceProviderAsync(GyroscopeRfcommServiceConnectionWrapper.RfcommServiceId); createServiceProviderTask.Wait(); var gyroRfcommServiceProvider = createServiceProviderTask.Result; gyroRfcommServiceProvider.OnConnectionReceived += GyroRfcommServiceProvider_OnConnectionReceived; gyroRfcommServiceProvider.StartAdvertising(); Sketch = new Sketch(); Sketch.SkiaManager.Init(CanvasView.InvalidateSurface, SKMatrix.MakeScale(1, -1)); Sketch.SketchEngine.Instantiate <GridRenderer>(); Sketch.SketchEngine.Instantiate <PointerInfoBoard>(); Sketch.SkiaManager.BeforePaint += SkiaManager_BeforePaint; ManagerManager = DependencyService.Get <IManagerManager>(); SketchInputManager = Sketch.SketchEngine.Instantiate <SketchInputManager>(); Sketch.Start(); SketchInputManager.Init(ManagerManager.InputManager); /* * var joystick = Sketch.SketchEngine.Instantiate<ColorJoystick>(); * joystick.RectTransform.AnchorMax = new Vector2(1, 1); * joystick.RectTransform.AnchorMin = new Vector2(0, 0); * joystick.RectTransform.OffsetMax = new Vector2(-800, -800); * joystick.RectTransform.OffsetMin = new Vector2(10, 10); * joystick.Level = 2; */ var joystick2 = Sketch.SketchEngine.Instantiate <LineAreaJoystick <byte> >(); joystick2.RectTransform.AnchorMax = new Vector2(0, 0); joystick2.RectTransform.AnchorMin = new Vector2(0, 0); joystick2.RectTransform.OffsetMax = new Vector2(600, 600); joystick2.RectTransform.OffsetMin = new Vector2(500, 500); joystick2.Level = 3; joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_D, -60, 60, 0, float.PositiveInfinity)); joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_W, 30, 150, 0, float.PositiveInfinity)); joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_A, 120, 240, 0, float.PositiveInfinity)); joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.VK_S, 210, 330, 0, float.PositiveInfinity)); joystick2.AddArea(AreaJoystick <byte> .Area <byte> .CreateFromAngle((byte)VirtualKeyCode.LSHIFT, 0, 360, 0.7f, float.PositiveInfinity)); joystick2.OnAreaStatusChanged += Joystick2_OnAreaStatusChanged; var keyboardButton = Sketch.SketchEngine.Instantiate <KeyboardKeyButton>(); keyboardButton.RectTransform.AnchorMax = new Vector2(0, 0); keyboardButton.RectTransform.AnchorMin = new Vector2(0, 0); keyboardButton.RectTransform.OffsetMin = new Vector2(50, 50); keyboardButton.RectTransform.OffsetMax = new Vector2(150, 150); keyboardButton.Level = 2; ExampleSketchObject = Sketch.SketchEngine.Instantiate <ExampleSketchObject>(); Sketch.SketchEngine.Instantiate <SketchBorderRenderer>(); Sketch.SketchEngine.Instantiate <RectTransformFrameRenderer>(); CanvasView.InvalidateSurface(); ExampleSketchObject.Position = new SKPoint(Sketch.Width / 2, Sketch.Height / 2); SensorSpeed speed = SensorSpeed.Game; Gyroscope.ReadingChanged += Gyroscope_ReadingChanged; Gyroscope.Start(speed); Device.StartTimer(TimeSpan.FromSeconds(1 / 60f), () => { CanvasView.InvalidateSurface(); return(!true); }); }