Browse Source

更新A8k单片机协议

tags/v0 v0
zhaohe 4 months ago
parent
commit
b7f0c0683f
  1. 1
      src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java
  2. 15
      src/main/java/a8k/app/hardware/channel/A8kCanBusService.java
  3. 27
      src/main/java/a8k/app/hardware/type/CmdId.java
  4. 8
      src/main/java/a8k/app/hardware/type/HbotRegIndex.java
  5. 8
      src/main/java/a8k/app/hardware/type/MiniServoRegIndex.java
  6. 8
      src/main/java/a8k/app/hardware/type/PipetteRegIndex.java
  7. 12
      src/main/java/a8k/app/hardware/type/RegIndex.java
  8. 8
      src/main/java/a8k/app/hardware/type/StepMotorRegIndex.java

1
src/main/java/a8k/app/config/A8kSubModuleInitRegConfig.java

@ -170,7 +170,6 @@ public class A8kSubModuleInitRegConfig {
addRegMarker(ModuleType.A8kOptical, RegIndex.kreg_a8k_opt_scan_vstop);
addRegMarker(ModuleType.A8kOptical, RegIndex.kreg_a8k_opt_scan_tzerowait);
addRegMarker(ModuleType.MiniServo, RegIndex.kreg_mini_servo_pos);
addRegMarker(ModuleType.MiniServo, RegIndex.kreg_mini_servo_limit_velocity);
addRegMarker(ModuleType.MiniServo, RegIndex.kreg_mini_servo_limit_torque);
addRegMarker(ModuleType.MiniServo, RegIndex.kreg_mini_servo_protective_torque);

15
src/main/java/a8k/app/hardware/channel/A8kCanBusService.java

@ -80,22 +80,17 @@ public class A8kCanBusService {
return A8kEcode.fromInt(packet.getContentI32(0));
}
public Integer moduleGetDetailError(MId id) {
Integer regval = 0;
try {
regval = moduleGetReg(id, RegIndex.kreg_module_detail_errorcode);
} catch (AppException ignored) {
}
return regval;
public Integer moduleGetDetailError(MId id) throws AppException {
return connection.callcmd(id, CmdId.module_get_detail_error).getContentI32(0) ;
}
public Integer moduleReadVersion(MId id) throws AppException {
return moduleGetReg(id, RegIndex.kreg_module_version);
return connection.callcmd(id, CmdId.module_get_version).getContentI32(0);
}
public ModuleType moduleReadType(MId id) throws AppException {
var type = moduleGetReg(id, RegIndex.kreg_module_type);
return ModuleType.of(type);
var packet = connection.callcmd(id, CmdId.module_get_type);
return ModuleType.of(packet.getContentI32(0));
}
public byte[] a8kIdcardReaderReadRaw() throws AppException {

27
src/main/java/a8k/app/hardware/type/CmdId.java

@ -6,15 +6,24 @@ public enum CmdId {
board_reset(0x0000, "复位板子"),//
event_bus_reg_change_report(0x0064, "寄存器修改事件"),//
//
module_ping(0x0100, "MODULE_PING"),//
module_get_status(0x0104, "读取模块状态"),//
module_stop(0x0101, "模块停止"),//
module_set_reg(0x0105, "写入寄存器"),//
module_get_reg(0x0106, "获取寄存器"),//
module_reset_reg(0x0107, "复位寄存器"),//
module_get_error(0x010a, "读取模块错误"),//
module_clear_error(0x010b, "清除模块错误"),//
module_active_cfg(0x0110, "激活配置"),//
module_ping(0x0101, "MODULE_PING"),
module_stop(0x0102, "MODULE_STOP"),
module_get_error(0x0110, "MODULE_GET_ERROR"),
module_get_detail_error(0x0111, "MODULE_GET_DETAIL_ERROR"),
module_clear_error(0x0112, "MODULE_CLEAR_ERROR"),
module_set_reg(0x0120, "MODULE_SET_REG"),
module_get_reg(0x0121, "MODULE_GET_REG"),
module_reset_reg(0x0123, "MODULE_RESET_REG"),
module_get_version(0x0130, "MODULE_GET_VERSION"),
module_get_type(0x0131, "MODULE_GET_TYPE"),
module_get_status(0x0132, "MODULE_GET_STATUS"),
// module_active_cfg(0x0110, "激活配置"),//
//
xymotor_enable(0x0301, "XYMOTOR_ENABLE"),//
xymotor_move_by(0x0302, "XYMOTOR_MOVE_BY"),//

8
src/main/java/a8k/app/hardware/type/HbotRegIndex.java

@ -1,10 +1,10 @@
package a8k.app.hardware.type;
public enum HbotRegIndex {
kreg_module_version(RegIndex.kreg_module_version), // 模块版本
kreg_module_type(RegIndex.kreg_module_type), // 模块类型
kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
// kreg_module_version(RegIndex.kreg_module_version), // 模块版本
// kreg_module_type(RegIndex.kreg_module_type), // 模块类型
// kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
// kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
kreg_xyrobot_io_state(RegIndex.kreg_xyrobot_io_state), //
kreg_xyrobot_is_enable(RegIndex.kreg_xyrobot_is_enable), //

8
src/main/java/a8k/app/hardware/type/MiniServoRegIndex.java

@ -1,10 +1,10 @@
package a8k.app.hardware.type;
public enum MiniServoRegIndex {
kreg_module_version(RegIndex.kreg_module_version), // 模块版本
kreg_module_type(RegIndex.kreg_module_type), // 模块类型
kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
// kreg_module_version(RegIndex.kreg_module_version), // 模块版本
// kreg_module_type(RegIndex.kreg_module_type), // 模块类型
// kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
// kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
kreg_mini_servo_pos(RegIndex.kreg_mini_servo_pos), // 位置
kreg_mini_servo_limit_velocity(RegIndex.kreg_mini_servo_limit_velocity), // 限制速度

8
src/main/java/a8k/app/hardware/type/PipetteRegIndex.java

@ -3,10 +3,10 @@ package a8k.app.hardware.type;
import org.springframework.util.Assert;
public enum PipetteRegIndex {
kreg_module_version(RegIndex.kreg_module_version), // 模块版本
kreg_module_type(RegIndex.kreg_module_type), // 模块类型
kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
// kreg_module_version(RegIndex.kreg_module_version), // 模块版本
// kreg_module_type(RegIndex.kreg_module_type), // 模块类型
// kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
// kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
kreg_pipette_pos_nl(RegIndex.kreg_pipette_pos_nl), // 移液枪位置
kreg_pipette_capactitance_val(RegIndex.kreg_pipette_capactitance_val), // 移液枪电容值

12
src/main/java/a8k/app/hardware/type/RegIndex.java

@ -5,12 +5,12 @@ public enum RegIndex {
/*******************************************************************************
* 模块通用配置和状态 *
*******************************************************************************/
kreg_module_version(0), // 模块版本
kreg_module_type(1), // 模块类型
kreg_module_status(2), // 0idle,1busy,2error
kreg_module_errorcode(3), // inited_flag
kreg_module_detail_errorcode(4), // 详细的错误信息,该位置的定义根据module_errorcode的不同而不同
kreg_extboard_resetflag(100),
// kreg_module_version(0), // 模块版本
// kreg_module_type(1), // 模块类型
// kreg_module_status(2), // 0idle,1busy,2error
// kreg_module_errorcode(3), // inited_flag
// kreg_module_detail_errorcode(4), // 详细的错误信息,该位置的定义根据module_errorcode的不同而不同
// kreg_extboard_resetflag(100),
/***********************************************************************************************************************

8
src/main/java/a8k/app/hardware/type/StepMotorRegIndex.java

@ -1,10 +1,10 @@
package a8k.app.hardware.type;
public enum StepMotorRegIndex {
kreg_module_version(RegIndex.kreg_module_version), // 模块版本
kreg_module_type(RegIndex.kreg_module_type), // 模块类型
kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
// kreg_module_version(RegIndex.kreg_module_version), // 模块版本
// kreg_module_type(RegIndex.kreg_module_type), // 模块类型
// kreg_module_status(RegIndex.kreg_module_status), // 0idle,1busy,2error
// kreg_module_errorcode(RegIndex.kreg_module_errorcode), // inited_flag
/***********************************************************************************************************************
* step_motor *
***********************************************************************************************************************/

Loading…
Cancel
Save