|
@ -0,0 +1,30 @@ |
|
|
|
|
|
package com.iflytop.handacid.hardware.drivers; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import com.iflytop.handacid.hardware.comm.can.A8kCanBusService; |
|
|
|
|
|
import com.iflytop.handacid.hardware.exception.HardwareException; |
|
|
|
|
|
import com.iflytop.handacid.hardware.type.A8kPacket; |
|
|
|
|
|
import com.iflytop.handacid.hardware.type.BleGamepadMid; |
|
|
|
|
|
import com.iflytop.handacid.hardware.type.CmdId; |
|
|
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
|
|
import org.springframework.stereotype.Component; |
|
|
|
|
|
|
|
|
|
|
|
@Component |
|
|
|
|
|
@RequiredArgsConstructor |
|
|
|
|
|
@Slf4j |
|
|
|
|
|
public class BleGamepadDriver { |
|
|
|
|
|
private final A8kCanBusService canBus; |
|
|
|
|
|
|
|
|
|
|
|
public Boolean is_connected(BleGamepadMid id) throws HardwareException { |
|
|
|
|
|
return canBus.callcmd(id.mid, CmdId.ble_gamepad_is_connected).getContentI32(0) != 0; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public void get_power_state(BleGamepadMid id, Integer power, Integer charge_state) throws HardwareException { |
|
|
|
|
|
A8kPacket packet = canBus.callcmd(id.mid, CmdId.ble_gamepad_power_info); |
|
|
|
|
|
power = packet.getContentI32(0); |
|
|
|
|
|
charge_state = packet.getContentI32(1); |
|
|
|
|
|
log.info("power: {}, charge_state: {}", power, charge_state); |
|
|
|
|
|
} |
|
|
|
|
|
} |