|
|
@ -1,9 +1,11 @@ |
|
|
|
package iflytop.app.hardware.driver; |
|
|
|
|
|
|
|
import com.fasterxml.jackson.databind.node.ObjectNode; |
|
|
|
import iflytop.app.hardware.channel.A8kCanBusConnection; |
|
|
|
import iflytop.app.hardware.channel.A8kCanBusService; |
|
|
|
import iflytop.app.hardware.type.*; |
|
|
|
import iflytop.app.type.exception.HardwareException; |
|
|
|
import iflytop.app.utils.ZJsonHelper; |
|
|
|
import lombok.RequiredArgsConstructor; |
|
|
|
import lombok.extern.slf4j.Slf4j; |
|
|
|
import org.springframework.stereotype.Component; |
|
|
@ -56,4 +58,26 @@ public class LeisaiServoDriver { |
|
|
|
log.info("moveToZero called with id: {}", id); |
|
|
|
canBus.callcmd(id.mid, CmdId.leisai_servo_move_to_zero); |
|
|
|
} |
|
|
|
|
|
|
|
public void setReg(LeisaiServoMId id, LeisaiRegIndex regindex, int val) throws HardwareException { |
|
|
|
log.info("setReg called with id: {}, regindex: {}, val: {}", id, regindex, val); |
|
|
|
canBus.moduleSetReg(id.mid, regindex.regIndex, val); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public Integer getReg(LeisaiServoMId id, LeisaiRegIndex regindex) throws HardwareException { |
|
|
|
log.info("getReg called with id: {}, regindex: {}", id, regindex); |
|
|
|
return canBus.moduleGetReg(id.mid, regindex.regIndex); |
|
|
|
} |
|
|
|
|
|
|
|
public Object getAllReg(LeisaiServoMId id) throws HardwareException { |
|
|
|
log.info("getAllReg called with id: {}", id); |
|
|
|
ObjectNode node = ZJsonHelper.createObjectNode(); |
|
|
|
for (LeisaiRegIndex regIndex : LeisaiRegIndex.values()) { |
|
|
|
Integer regVal = getReg(id, regIndex); |
|
|
|
log.info("read reg {} -> {}", regIndex, regVal); |
|
|
|
node.put(regIndex.name(), getReg(id, regIndex)); |
|
|
|
} |
|
|
|
return node; |
|
|
|
} |
|
|
|
} |