3 changed files with 1 additions and 141 deletions
-
50src/main/java/com/iflytop/sgs/hardware/command/handlers/CameraHandler.java
-
90src/main/java/com/iflytop/sgs/hardware/command/handlers/DualRobotHandler.java
-
2src/main/java/com/iflytop/sgs/hardware/command/handlers/TricolorLightHandler.java
@ -1,50 +0,0 @@ |
|||
package com.iflytop.sgs.hardware.command.handlers; |
|||
|
|||
import com.iflytop.sgs.common.cmd.DeviceCommand; |
|||
import com.iflytop.sgs.common.enums.cmd.CmdAction; |
|||
import com.iflytop.sgs.common.enums.cmd.CmdDevice; |
|||
import com.iflytop.sgs.hardware.command.CommandHandler; |
|||
import com.iflytop.sgs.hardware.drivers.CameraDriver; |
|||
import com.iflytop.sgs.hardware.type.MId; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Map; |
|||
import java.util.Set; |
|||
|
|||
@Slf4j |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class CameraHandler extends CommandHandler { |
|||
private final CameraDriver cameraDriver_; |
|||
|
|||
private final Map<CmdDevice, MId> supportCmdDeviceMIdMap = Map.ofEntries( |
|||
Map.entry(CmdDevice.photo, MId.NotSet) |
|||
); |
|||
|
|||
private final Set<CmdAction> supportActions = Set.of(CmdAction.open, CmdAction.close); |
|||
|
|||
@Override |
|||
protected Map<CmdDevice, MId> getSupportCmdDeviceMIdMap() |
|||
{ |
|||
return supportCmdDeviceMIdMap; |
|||
} |
|||
|
|||
@Override |
|||
protected Set<CmdAction> getSupportActions() { |
|||
return supportActions; |
|||
} |
|||
|
|||
MId getMId(CmdDevice cmdDevice){ |
|||
return supportCmdDeviceMIdMap.get(cmdDevice); |
|||
} |
|||
|
|||
@Override |
|||
public void handleCommand(DeviceCommand command) throws Exception { |
|||
// 发送命令 |
|||
if (command.getAction() == CmdAction.take_photo) { |
|||
cameraDriver_.takePhoto(); |
|||
} |
|||
} |
|||
} |
@ -1,90 +0,0 @@ |
|||
package com.iflytop.sgs.hardware.command.handlers; |
|||
|
|||
import com.iflytop.sgs.common.cmd.DeviceCommand; |
|||
import com.iflytop.sgs.common.enums.cmd.CmdAction; |
|||
import com.iflytop.sgs.common.enums.command.CmdAxis; |
|||
import com.iflytop.sgs.common.enums.cmd.CmdDevice; |
|||
import com.iflytop.sgs.hardware.command.CommandHandler; |
|||
import com.iflytop.sgs.hardware.drivers.MiniServoDriver.DualRobotDriver; |
|||
import com.iflytop.sgs.hardware.type.Servo.MiniServoMId; |
|||
import com.iflytop.sgs.hardware.type.MId; |
|||
import lombok.RequiredArgsConstructor; |
|||
import lombok.extern.slf4j.Slf4j; |
|||
import org.springframework.stereotype.Component; |
|||
|
|||
import java.util.Map; |
|||
import java.util.Set; |
|||
import java.util.stream.Collectors; |
|||
|
|||
|
|||
@Slf4j |
|||
@Component |
|||
@RequiredArgsConstructor |
|||
public class DualRobotHandler extends CommandHandler { |
|||
private final DualRobotDriver dualRobotDriver_; |
|||
|
|||
private final Map<CmdDevice, MiniServoMId> servoMIdMap_ = Map.ofEntries( |
|||
Map.entry(CmdDevice.dual_robot, MiniServoMId.NotSet) |
|||
); |
|||
private final Map<CmdDevice, MId> supportCmdDeviceMIdMap = servoMIdMap_.entrySet().stream(). |
|||
collect(Collectors.toMap(Map.Entry::getKey, entry -> entry.getValue().mid)); |
|||
private final Set<CmdAction> supportActions = Set.of(CmdAction.set, CmdAction.origin, CmdAction.move, CmdAction.stop, CmdAction.move_joint); |
|||
|
|||
@Override |
|||
protected Map<CmdDevice, MId> getSupportCmdDeviceMIdMap() |
|||
{ |
|||
return supportCmdDeviceMIdMap; |
|||
} |
|||
|
|||
@Override |
|||
protected Set<CmdAction> getSupportActions() { |
|||
return supportActions; |
|||
} |
|||
|
|||
private DualRobotDriver.Joint getJoint(CmdAxis axis) { |
|||
switch (axis) { |
|||
case CmdAxis.joint1 -> { |
|||
return DualRobotDriver.Joint.JOINT_1; |
|||
} |
|||
case CmdAxis.joint2 -> { |
|||
return DualRobotDriver.Joint.JOINT_2; |
|||
} |
|||
default -> { |
|||
return null; |
|||
} |
|||
} |
|||
} |
|||
|
|||
@Override |
|||
public void handleCommand(DeviceCommand command) throws Exception { |
|||
// 发送命令 |
|||
if (command.getAction() == CmdAction.origin) { |
|||
dualRobotDriver_.moveToHome(MiniServoMId.DUAL_ROBOT_AXIS1_MID); |
|||
} |
|||
else if(command.getAction() == CmdAction.stop) { |
|||
CmdAxis axis = command.getParam().getAxis(); |
|||
DualRobotDriver.Joint joint = getJoint(axis); |
|||
dualRobotDriver_.stop(joint); |
|||
} |
|||
else if(command.getAction() == CmdAction.move_joint) { |
|||
CmdAxis axis = command.getParam().getAxis(); |
|||
double position = command.getParam().getPosition(); |
|||
|
|||
DualRobotDriver.Joint joint = getJoint(axis); |
|||
dualRobotDriver_.moveJointTo(joint, position); |
|||
} |
|||
else if(command.getAction() == CmdAction.move) { |
|||
double pos_x = command.getParam().getPosition(); |
|||
double pos_y = command.getParam().getPosition(); |
|||
dualRobotDriver_.moveToPoint(pos_x, pos_y); |
|||
} |
|||
else if(command.getAction() == CmdAction.set) { |
|||
CmdAxis axis = command.getParam().getAxis(); |
|||
DualRobotDriver.Joint joint = getJoint(axis); |
|||
Double speed = command.getParam().getSpeed(); |
|||
if(speed != null) { |
|||
dualRobotDriver_.setSpeed(joint, speed); |
|||
} |
|||
} |
|||
} |
|||
} |
Write
Preview
Loading…
Cancel
Save
Reference in new issue