public GamepadController(ILoggerFactory loggerfactory, GamePadGpio gamepad, GamePadConfigureProvider configureProvider) : base(loggerfactory) { configureProvider.Load(); gamepad.Start(configureProvider); gamepad.onKeyChange += Padreader_onKeyChange; logger.LogDebug("WebSocket 服务启动。。。"); }
public void Start(GamePadConfigureProvider configureProvider) { if (this.hThread == null) { this.Direction.OpenPin(this.directionPin, PinMode.InputPullUp); // clk 14 data1 15 data2 18 latch 20 gpio 26 = 1 // clk 13 data1 6 data2 5 latch 2 gpio 26 = 1 if (this.Direction.Read(this.directionPin) == PinValue.High) { this.clkPin = 14; this.data1Pin = 15; this.data2Pin = 18; this.latchPin = 20; Console.WriteLine("向外"); } else { this.clkPin = 13; this.data1Pin = 6; this.data2Pin = 5; this.latchPin = 2; Console.WriteLine("向内"); } //this.latchPin = configureProvider.configure.LatchPin; //this.clkPin = configureProvider.configure.ClkPin; //this.data1Pin = configureProvider.configure.Data1Pin; //this.data2Pin = configureProvider.configure.Data2Pin; this.delayTime = configureProvider.configure.DelayTime; this.keyRepeatPressEvent = configureProvider.configure.keyRepeatPressEvent; this.hThread = new Thread(this.Key_Proc) { IsBackground = true }; this.hThread.Start(); } }