From 3dd226b6f83ec6f96bc748766b0a7c8d053347c1 Mon Sep 17 00:00:00 2001 From: zhaohe Date: Mon, 22 Jul 2024 08:55:24 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B0=86=E9=94=99=E8=AF=AF=E7=A0=81=E5=92=8C?= =?UTF-8?q?=E5=BA=94=E7=94=A8=E9=94=99=E8=AF=AF=E7=A0=81=E7=BB=9F=E4=B8=80?= =?UTF-8?q?=E4=B8=BAA8kEcode?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/a8k/a8k_can_protocol/A8kEcode.java | 126 +++++++++++++++ src/main/java/a8k/a8k_can_protocol/A8kPacket.java | 6 +- src/main/java/a8k/a8k_can_protocol/Errorcode.java | 172 --------------------- src/main/java/a8k/appbean/AppErrorCode.java | 38 ----- src/main/java/a8k/appbean/HardwareException.java | 4 +- src/main/java/a8k/appbean/ecode/AppEcode.java | 10 +- .../java/a8k/base_hardware/A8kCanBusService.java | 14 +- .../java/a8k/controller/TmpTestController.java | 1 - .../DeviceInitializationCtrlService.java | 23 ++- .../a8k/service/data_service/UsrMgrService.java | 14 +- .../a8k/service/hardware/HbotControlService.java | 7 +- .../hardware/MotorTubeRackMoveCtrlService.java | 2 +- .../SamplesPreProcessModuleCtrlService.java | 13 +- zhaohe_app.db | Bin 479232 -> 479232 bytes 14 files changed, 174 insertions(+), 256 deletions(-) create mode 100644 src/main/java/a8k/a8k_can_protocol/A8kEcode.java delete mode 100644 src/main/java/a8k/a8k_can_protocol/Errorcode.java delete mode 100644 src/main/java/a8k/appbean/AppErrorCode.java diff --git a/src/main/java/a8k/a8k_can_protocol/A8kEcode.java b/src/main/java/a8k/a8k_can_protocol/A8kEcode.java new file mode 100644 index 0000000..312553a --- /dev/null +++ b/src/main/java/a8k/a8k_can_protocol/A8kEcode.java @@ -0,0 +1,126 @@ +package a8k.a8k_can_protocol; + +public enum A8kEcode { + // + // FOR APP + // + Success(0, "成功"), // + TubeNotHasHat(1, "全血试管未盖帽"), // + SampleLiquidLevelWasNotDetected(2, "取样时未探测到液面"),// + LargeBufferNotEnough(3, "大瓶缓冲液不足"), // + PasswdError(4, "密码错误"), // + UserDoesNotExist(5, "用户不存在"), // + GripperMPosError(6, "抓手舵机位置异常"), // + GripperZMPosError(8, "抓手升降电机位置异常"), // + GripperYMPosError(9, "抓手前后移动舵机位置异常"),// + TubesInShakeModule(10, "摇匀模组位置有试管"),// + PlateStuckDetectorSensorTrigger(11, "卡板检查光电触发"),// + PlateBoxNotCover(12, "板夹仓盖子未关闭"),// + PullerMInitPosError(13, "板夹钩爪电机没有处于转盘中央"),// + PusherMInitPosError(14, "板夹仓推杆电机没有处于零点位置"),// + RecycleBinOverflow(15, "回收仓满"),// + MotorLostStep(16,"电机丢步"),// + + // + // FOR HARDWARE + // + + HardwareError(1001, "HardwareError"),// + ParamOutOfRange(1102, "ParamOutOfRange"),// + CmdNotSupport(1103, "CmdNotSupport"),// + DeviceIsBusy(1104, "DeviceIsBusy"),// + DeviceIsOffline(1105, "DeviceIsOffline"),// + Overtime(1106, "Overtime"),// + Noack(1107, "Noack"),// + Errorack(1108, "Errorack"),// + DeviceOffline(1109, "DeviceOffline"),// + SubdeviceOvertime(1111, "SubdeviceOvertime"),// + BufferNotEnough(1112, "BufferNotEnough"),// + CmdParamNumError(1114, "CmdParamNumError"),// + CheckcodeIsError(1115, "CheckcodeIsError"),// + IllegalOperation(1116, "IllegalOperation"),// + ActionOvertime(1117, "ActionOvertime"),// + ModuleOpeationBreakByUser(1202, "ModuleOpeationBreakByUser"),// + ModuleNotFindReg(1207, "ModuleNotFindReg"),// + XYMotorXFindZeroEdgeFail(1306, "XYMotorXFindZeroEdgeFail"),// + XYMotorYFindZeroEdgeFail(1307, "XYMotorYFindZeroEdgeFail"),// + XYMotorNotEnable(1308, "XYMotorNotEnable"),// + XYMotorTargetPosOutofRange(1309, "XYMotorTargetPosOutofRange"),// + PipetteErrorNoerror(1400, "PipetteErrorNoerror"),// + PipetteErrorInitfail(1401, "PipetteErrorInitfail"),// + PipetteErrorInvalidcmd(1402, "PipetteErrorInvalidcmd"),// + PipetteErrorInvalidarg(1403, "PipetteErrorInvalidarg"),// + PipetteErrorPressuresensorerror(1404, "PipetteErrorPressuresensorerror"),// + PipetteErrorOverpressure(1405, "PipetteErrorOverpressure"),// + PipetteErrorLlderror(1406, "PipetteErrorLlderror"),// + PipetteErrorDevicenotinit(1407, "PipetteErrorDevicenotinit"),// + PipetteErrorTippoperror(1408, "PipetteErrorTippoperror"),// + PipetteErrorPumpoverload(1409, "PipetteErrorPumpoverload"),// + PipetteErrorTipdrop(1410, "PipetteErrorTipdrop"),// + PipetteErrorCanbuserror(1411, "PipetteErrorCanbuserror"),// + PipetteErrorInvalidchecksum(1412, "PipetteErrorInvalidchecksum"),// + PipetteErrorEepromerror(1413, "PipetteErrorEepromerror"),// + PipetteErrorCmdbufferempty(1414, "PipetteErrorCmdbufferempty"),// + PipetteErrorCmdbufferoverflow(1415, "PipetteErrorCmdbufferoverflow"),// + PipetteErrorTipblock(1416, "PipetteErrorTipblock"),// + PipetteErrorAirsuction(1417, "PipetteErrorAirsuction"),// + PipetteErrorBubble(1418, "PipetteErrorBubble"),// + PipetteErrorVolumeerror(1419, "PipetteErrorVolumeerror"),// + PipetteErrorTipalreadyload(1420, "PipetteErrorTipalreadyload"),// + PipetteErrorTiploadfail(1421, "PipetteErrorTiploadfail"),// + PipetteErrorUninited(1501, "PipetteErrorUninited"),// + PipetteErrorNotLldPrepare(1502, "PipetteErrorNotLldPrepare"),// + PipetteErrorTipisloadWhenLldPrepare(1500, "PipetteErrorTipisloadWhenLldPrepare"),// + PipetteErrorPumpLoadValIsNotEmpty(1503, "PipetteErrorPumpLoadValIsNotEmpty"),// + StepMotorNotFoundZeroPoint(1600, "StepMotorNotFoundZeroPoint"),// + StepMotorNotGoZero(1601, "StepMotorNotGoZero"),// + StepMotorOverTemperature(1602, "StepMotorOverTemperature"),// + StepMotorOverVoltage(1603, "StepMotorOverVoltage"),// + StepMotorRunOvertime(1604, "StepMotorRunOvertime"),// + StepMotorNotEnable(1605, "StepMotorNotEnable"),// + StepMotorIoindexOutOfRange(1606, "StepMotorIoindexOutOfRange"),// + StepMotorSubicReset(1607, "StepMotorSubicReset"),// + StepMotorDrvErr(1608, "StepMotorDrvErr"),// + StepMotorUvCp(1609, "StepMotorUvCp"),// + StepMotorNotFoundPointEdge(1610, "StepMotorNotFoundPointEdge"),// + StepMotorLostStep(1611, "StepMotorLostStep"),// + MiniServoNotEnable(1700, "MiniServoNotEnable"),// + MiniServoModeNotSupport(1701, "MiniServoModeNotSupport"),// + FanHardwareFault(1800, "FanHardwareFault"),// + WaterCoolingFanError(1900, "WaterCoolingFanError"),// + WaterCoolingTemperatureSensorError(1902, "WaterCoolingTemperatureSensorError"),// + WaterCoolingPumpIsError(1903, "WaterCoolingPumpIsError"),// + WaterCoolingPelterIsError(1904, "WaterCoolingPelterIsError"), + ; + + public int index; + public String chname; + + A8kEcode(int index, String chname) { + this.index = index; + this.chname = chname; + } + + public int toInt() { + return index; + } + + public static A8kEcode valueOf(int val) { + A8kEcode[] values = A8kEcode.values(); + for (A8kEcode e : values) { + if (e.toInt() == val) + return e; + } + return null; + } + + public static String toString(int val) { + A8kEcode[] values = A8kEcode.values(); + for (A8kEcode e : values) { + if(e.toInt() == val){ + return e.toString(); + } + } + return "unkown("+val+")"; + } +} diff --git a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java index 3c6a44a..c229656 100644 --- a/src/main/java/a8k/a8k_can_protocol/A8kPacket.java +++ b/src/main/java/a8k/a8k_can_protocol/A8kPacket.java @@ -41,9 +41,11 @@ public class A8kPacket { raw = new byte[cmd.length]; System.arraycopy(cmd, 0, raw, 0, cmd.length); } + public void setPacketIndex(int packetIndex) { - ByteArray.setU16bit(raw,0,packetIndex); + ByteArray.setU16bit(raw, 0, packetIndex); } + public int getPacketIndex() { return ByteArray.readU16bit(raw, 0); } @@ -93,7 +95,7 @@ public class A8kPacket { ret = String.format("[ACK ] PI:0x%x (cmd:%s mid:%d :[%s])", getPacketIndex(), cmdIdInfo.name, getModuleId(), ByteArray.toByteString(getCmdContent())); } } else if (packetType == PACKET_TYPE_ERROR_ACK) { - ret = String.format("[EACK ] PI:0x%x (cmd:%s mid:%d :[%s])", getPacketIndex(), cmdIdInfo.name, getModuleId(), Errorcode.toString(getContentI32(0))); + ret = String.format("[EACK ] PI:0x%x (cmd:%s mid:%d :[%s])", getPacketIndex(), cmdIdInfo.name, getModuleId(), A8kEcode.toString(getContentI32(0))); } else if (packetType == PACKET_TYPE_EVENT) { if (cmdIdInfo.cmdAttachType == CmdIdInfo.ATTACH_IS_INT32) { ret = String.format("[EVENT] PI:0x%x (cmd:%s mid:%d :[%s])", getPacketIndex(), cmdIdInfo.name, getModuleId(), formatInt32ATTACH(getCmdContent())); diff --git a/src/main/java/a8k/a8k_can_protocol/Errorcode.java b/src/main/java/a8k/a8k_can_protocol/Errorcode.java deleted file mode 100644 index f8c97b4..0000000 --- a/src/main/java/a8k/a8k_can_protocol/Errorcode.java +++ /dev/null @@ -1,172 +0,0 @@ -package a8k.a8k_can_protocol; - -public class Errorcode { - - public static final int ksucc = (0 + 0); - public static final int kfail = (0 + 1); - /*********************************************************************************************************************** - * 协议错误码 * - ***********************************************************************************************************************/ - public static final int kparam_out_of_range = (100 + 2); // 参数超出范围 - public static final int kcmd_not_support = (100 + 3); // 操作不支持 - public static final int kdevice_is_busy = (100 + 4); // 设备忙 - public static final int kdevice_is_offline = (100 + 5); // 设备离线 - public static final int kovertime = (100 + 6); - public static final int knoack = (100 + 7); - public static final int kerrorack = (100 + 8); - public static final int kdevice_offline = (100 + 9); - public static final int ksubdevice_overtime = (100 + 11); - public static final int kbuffer_not_enough = (100 + 12); - public static final int kcmd_param_num_error = (100 + 14); - public static final int kcheckcode_is_error = (100 + 15); - public static final int killegal_operation = (100 + 16); - public static final int kaction_overtime = (100 + 17); - /*********************************************************************************************************************** - * 模块错误码 * - ***********************************************************************************************************************/ - public static final int kmodule_opeation_break_by_user = (200 + 2); // 用户中断 - public static final int kmodule_not_find_reg = (200 + 7); // et 未找到配置索引 - - /*********************************************************************************************************************** - * XY电机驱动错误码 * - ***********************************************************************************************************************/ - public static final int kxymotor_x_find_zero_edge_fail = (300 + 6); // 离开零点失败 - public static final int kxymotor_y_find_zero_edge_fail = (300 + 7); // 离开零点失败 - public static final int kxymotor_not_enable = (300 + 8); - public static final int kxymotor_target_pos_outof_range = (300 + 9); - /*********************************************************************************************************************** - * 移液枪错误码 * - ***********************************************************************************************************************/ - public static final int kpipette_error_NoError = (400 + 0); // 无错误 - public static final int kpipette_error_InitFail = (400 + 1); // 初始化失败 - public static final int kpipette_error_InvalidCmd = (400 + 2); // 无效命令 - public static final int kpipette_error_InvalidArg = (400 + 3); // 无效参数 - public static final int kpipette_error_PressureSensorError = (400 + 4); // 压力传感器故障 - public static final int kpipette_error_OverPressure = (400 + 5); // 超过压力 - public static final int kpipette_error_LLDError = (400 + 6); // LLD 错误 - public static final int kpipette_error_DeviceNotInit = (400 + 7); // 设备未初始化 - public static final int kpipette_error_TipPopError = (400 + 8); // Tip 弹出错误 - public static final int kpipette_error_PumpOverload = (400 + 9); // 泵过载 - public static final int kpipette_error_TipDrop = (400 + 10); // Tip 脱落 - public static final int kpipette_error_CanBusError = (400 + 11); // CAN 总线故障 - public static final int kpipette_error_InvalidChecksum = (400 + 12); // 无效校验和 - public static final int kpipette_error_EEPROMError = (400 + 13); // EEPROM 故障 - public static final int kpipette_error_CmdBufferEmpty = (400 + 14); // 命令缓冲区为空 - public static final int kpipette_error_CmdBufferOverflow = (400 + 15); // 命令溢出 - public static final int kpipette_error_TipBlock = (400 + 16); // Tip 堵塞 - public static final int kpipette_error_AirSuction = (400 + 17); // 吸入空气 - public static final int kpipette_error_Bubble = (400 + 18); // 液体中有气泡/泡沫 - public static final int kpipette_error_VolumeError = (400 + 19); // 吸取/分配量不准确 - public static final int kpipette_error_TipAlreadyLoad = (400 + 20); // Tip已经装载 - public static final int kpipette_error_TipLoadFail = (400 + 21); - public static final int kpipette_error_tipisload_when_lld_prepare = (500 + 0); // 未卸载Tip就进行LLD准备 - public static final int kpipette_error_uninited = (500 + 1); // 泵机未初始化 - public static final int kpipette_error_not_lld_prepare = (500 + 2); // 为执行lld_prepare - public static final int kpipette_error_pump_load_val_is_not_empty = (500 + 3); // 为执行lld_prepare - - /*********************************************************************************************************************** - * 步进电机错误码 * - ***********************************************************************************************************************/ - public static final int kstep_motor_not_found_zero_point = (600 + 0); // 未找到零点 - public static final int kstep_motor_not_go_zero = (600 + 1); // 设备未归零 - public static final int kstep_motor_over_temperature = (600 + 2); // 过温 - public static final int kstep_motor_over_voltage = (600 + 3); // 过压 - public static final int kstep_motor_run_overtime = (600 + 4); // 运行超时 - public static final int kstep_motor_not_enable = (600 + 5); // 电机未使能 - public static final int kstep_motor_ioindex_out_of_range = (600 + 6); // IO超出范围 - public static final int kstep_motor_subic_reset = (600 + 7); // 子IC复位 - public static final int kstep_motor_drv_err = (600 + 8); // 驱动器异常 - public static final int kstep_motor_uv_cp = (600 + 9); // 驱动器异常 - public static final int kstep_motor_not_found_point_edge = (600 + 10); // 未找到零点 - public static final int kstep_motor_lost_step = (600 + 11); // 电机丢步 - /*********************************************************************************************************************** - * 舵机错误码 * - ***********************************************************************************************************************/ - public static final int kmini_servo_not_enable = (700 + 0); // - public static final int kmini_servo_mode_not_support = (700 + 1); // - /*********************************************************************************************************************** - * 风扇错误码 * - ***********************************************************************************************************************/ - public static final int kfan_hardware_fault = (800 + 0); // - - /*********************************************************************************************************************** - * 水冷错误码 * - ***********************************************************************************************************************/ - public static final int kwater_cooling_fan_error = (900 + 0); // - public static final int kwater_cooling_temperature_sensor_error = (900 + 2); // - public static final int kwater_cooling_pump_is_error = (900 + 3); // - public static final int kwater_cooling_pelter_is_error = (900 + 4); // - - static public String toString(Integer ecode) { - return switch (ecode) { - case ksucc -> "ksucc"; - case kfail -> "kfail"; - case kparam_out_of_range -> "kparam_out_of_range"; - case kcmd_not_support -> "kcmd_not_support"; - case kdevice_is_busy -> "kdevice_is_busy"; - case kdevice_is_offline -> "kdevice_is_offline"; - case kovertime -> "kovertime"; - case knoack -> "knoack"; - case kerrorack -> "kerrorack"; - case kdevice_offline -> "kdevice_offline"; - case ksubdevice_overtime -> "ksubdevice_overtime"; - case kbuffer_not_enough -> "kbuffer_not_enough"; - case kcmd_param_num_error -> "kcmd_param_num_error"; - case kcheckcode_is_error -> "kcheckcode_is_error"; - case killegal_operation -> "killegal_operation"; - case kaction_overtime -> "kaction_overtime"; - case kmodule_opeation_break_by_user -> "kmodule_opeation_break_by_user"; - case kmodule_not_find_reg -> "kmodule_not_find_reg"; - case kxymotor_x_find_zero_edge_fail -> "kxymotor_x_find_zero_edge_fail"; - case kxymotor_y_find_zero_edge_fail -> "kxymotor_y_find_zero_edge_fail"; - case kxymotor_not_enable -> "kxymotor_not_enable"; - case kxymotor_target_pos_outof_range -> "kxymotor_target_pos_outof_range"; - case kpipette_error_NoError -> "kpipette_error_NoError"; - case kpipette_error_InitFail -> "kpipette_error_InitFail"; - case kpipette_error_InvalidCmd -> "kpipette_error_InvalidCmd"; - case kpipette_error_InvalidArg -> "kpipette_error_InvalidArg"; - case kpipette_error_PressureSensorError -> "kpipette_error_PressureSensorError"; - case kpipette_error_OverPressure -> "kpipette_error_OverPressure"; - case kpipette_error_LLDError -> "kpipette_error_LLDError"; - case kpipette_error_DeviceNotInit -> "kpipette_error_DeviceNotInit"; - case kpipette_error_TipPopError -> "kpipette_error_TipPopError"; - case kpipette_error_PumpOverload -> "kpipette_error_PumpOverload"; - case kpipette_error_TipDrop -> "kpipette_error_TipDrop"; - case kpipette_error_CanBusError -> "kpipette_error_CanBusError"; - case kpipette_error_InvalidChecksum -> "kpipette_error_InvalidChecksum"; - case kpipette_error_EEPROMError -> "kpipette_error_EEPROMError"; - case kpipette_error_CmdBufferEmpty -> "kpipette_error_CmdBufferEmpty"; - case kpipette_error_CmdBufferOverflow -> "kpipette_error_CmdBufferOverflow"; - case kpipette_error_TipBlock -> "kpipette_error_TipBlock"; - case kpipette_error_AirSuction -> "kpipette_error_AirSuction"; - case kpipette_error_Bubble -> "kpipette_error_Bubble"; - case kpipette_error_VolumeError -> "kpipette_error_VolumeError"; - case kpipette_error_TipAlreadyLoad -> "kpipette_error_TipAlreadyLoad"; - case kpipette_error_TipLoadFail -> "kpipette_error_TipLoadFail"; - case kpipette_error_tipisload_when_lld_prepare -> "kpipette_error_tipisload_when_lld_prepare"; - case kpipette_error_uninited -> "kpipette_error_uninited"; - case kpipette_error_not_lld_prepare -> "kpipette_error_not_lld_prepare"; - case kpipette_error_pump_load_val_is_not_empty -> "kpipette_error_pump_load_val_is_not_empty"; - case kstep_motor_not_found_zero_point -> "kstep_motor_not_found_zero_point"; - case kstep_motor_not_go_zero -> "kstep_motor_not_go_zero"; - case kstep_motor_over_temperature -> "kstep_motor_over_temperature"; - case kstep_motor_over_voltage -> "kstep_motor_over_voltage"; - case kstep_motor_run_overtime -> "kstep_motor_run_overtime"; - case kstep_motor_not_enable -> "kstep_motor_not_enable"; - case kstep_motor_ioindex_out_of_range -> "kstep_motor_ioindex_out_of_range"; - case kstep_motor_subic_reset -> "kstep_motor_subic_reset"; - case kstep_motor_drv_err -> "kstep_motor_drv_err"; - case kstep_motor_uv_cp -> "kstep_motor_uv_cp"; - case kstep_motor_not_found_point_edge -> "kstep_motor_not_found_point_edge"; - case kstep_motor_lost_step -> "kstep_motor_lost_step"; - case kmini_servo_not_enable -> "kmini_servo_not_enable"; - case kmini_servo_mode_not_support -> "kmini_servo_mode_not_support"; - case kfan_hardware_fault -> "kfan_hardware_fault"; - case kwater_cooling_fan_error -> "kwater_cooling_fan_error"; - case kwater_cooling_temperature_sensor_error -> "kwater_cooling_temperature_sensor_error"; - case kwater_cooling_pump_is_error -> "kwater_cooling_pump_is_error"; - case kwater_cooling_pelter_is_error -> "kwater_cooling_pelter_is_error"; - default -> "unkown" + "(" + ecode + ")"; - }; - } -} diff --git a/src/main/java/a8k/appbean/AppErrorCode.java b/src/main/java/a8k/appbean/AppErrorCode.java deleted file mode 100644 index 0c87ee7..0000000 --- a/src/main/java/a8k/appbean/AppErrorCode.java +++ /dev/null @@ -1,38 +0,0 @@ -package a8k.appbean; - -public enum AppErrorCode { - Success("成功", 0), // - TubeNotHasHat("全血试管未盖帽", 1), // - SampleLiquidLevelWasNotDetected("取样时未探测到液面", 2),// - LargeBufferNotEnough("大瓶缓冲液不足", 3), // - PasswdError("密码错误", 4), // - UserDoesNotExist("用户不存在", 5), // - GripperMPosError("抓手舵机位置异常", 6), // - GripperZMPosError("抓手升降电机位置异常", 8), // - GripperYMPosError("抓手前后移动舵机位置异常", 9),// - TubesInShakeModule("摇匀模组位置有试管", 10),// - PlateStuckDetectorSensorTrigger("卡板检查光电触发", 11),// - PlateBoxNotCover("板夹仓盖子未关闭", 12),// - - PullerMInitPosError("板夹钩爪电机没有处于转盘中央", 13),// - PusherMInitPosError("板夹仓推杆电机没有处于零点位置", 14),// - RecycleBinOverflow("回收仓满", 15),// - ; - - final private String chName; - final private int errorIndex; - - private AppErrorCode(String chname, int errorIndex) { - this.chName = chname; - this.errorIndex = errorIndex; - } - - public String getChName() { - return chName; - } - - public int getErrorCode() { - return errorIndex; - } - -} diff --git a/src/main/java/a8k/appbean/HardwareException.java b/src/main/java/a8k/appbean/HardwareException.java index 8f10f12..81cd939 100644 --- a/src/main/java/a8k/appbean/HardwareException.java +++ b/src/main/java/a8k/appbean/HardwareException.java @@ -1,6 +1,6 @@ package a8k.appbean; -import a8k.a8k_can_protocol.Errorcode; +import a8k.a8k_can_protocol.A8kEcode; import a8k.a8k_can_protocol.ModId; public class HardwareException extends Exception { @@ -14,7 +14,7 @@ public class HardwareException extends Exception { } public HardwareException(int moduleId, int HardwareErrorCode) { - super(String.format("Module ID %s has error code %s", ModId.ModuleId2Name(moduleId), Errorcode.toString(HardwareErrorCode))); + super(String.format("Module ID %s has error code %s", ModId.ModuleId2Name(moduleId), A8kEcode.toString(HardwareErrorCode))); this.errorCode = HardwareErrorCode; this.moduleId = moduleId; } diff --git a/src/main/java/a8k/appbean/ecode/AppEcode.java b/src/main/java/a8k/appbean/ecode/AppEcode.java index a640cdd..f834c36 100644 --- a/src/main/java/a8k/appbean/ecode/AppEcode.java +++ b/src/main/java/a8k/appbean/ecode/AppEcode.java @@ -1,25 +1,25 @@ package a8k.appbean.ecode; import a8k.a8k_can_protocol.MId; -import a8k.appbean.AppErrorCode; +import a8k.a8k_can_protocol.A8kEcode; public class AppEcode { - public AppErrorCode errorCode; + public A8kEcode errorCode; public MId mid; - public AppEcode(AppErrorCode errorCode, MId mid) { + public AppEcode(A8kEcode errorCode, MId mid) { this.errorCode = errorCode; this.mid = mid; } - public AppEcode(AppErrorCode errorCode) { + public AppEcode(A8kEcode errorCode) { this.errorCode = errorCode; this.mid = MId.NotSet; } public boolean isOk() { - return errorCode == AppErrorCode.Success; + return errorCode == A8kEcode.Success; } public MId getMid() { diff --git a/src/main/java/a8k/base_hardware/A8kCanBusService.java b/src/main/java/a8k/base_hardware/A8kCanBusService.java index dc2248f..682fb9b 100644 --- a/src/main/java/a8k/base_hardware/A8kCanBusService.java +++ b/src/main/java/a8k/base_hardware/A8kCanBusService.java @@ -285,7 +285,7 @@ public class A8kCanBusService { } else if (ioid.mtype == ModuleType.kmini_servo_motor_module) { return callcmd(ioid.mid, CmdId.kmini_servo_read_io_state, ioid.ioIndex).getContentI32(0) != 0; } else { - throw new HardwareException(ioid.mid, Errorcode.killegal_operation); + throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation.toInt()); } } @@ -293,7 +293,7 @@ public class A8kCanBusService { if (ioid.mtype == ModuleType.kboard) { callcmd(ioid.mid, CmdId.kextboard_write_outio, ioid.ioIndex, val ? 1 : 0); } else { - throw new HardwareException(ioid.mid, Errorcode.killegal_operation); + throw new HardwareException(ioid.mid, A8kEcode.IllegalOperation.toInt()); } } @@ -311,7 +311,7 @@ public class A8kCanBusService { } long now = System.currentTimeMillis(); if (now - startedAt > acitionOvertime) { - throw new HardwareException(mid.toInt(), Errorcode.kovertime); + throw new HardwareException(mid.toInt(), A8kEcode.Overtime.toInt()); } Thread.sleep(100); @@ -389,7 +389,7 @@ public class A8kCanBusService { try { return this.sendCmd(pack, A8kPacket.CMD_OVERTIME); } catch (HardwareException e) { - if (e.getErrorCode() != Errorcode.kovertime) { + if (e.getErrorCode() != A8kEcode.Overtime.toInt()); { throw e; } } @@ -416,7 +416,7 @@ public class A8kCanBusService { long now = System.currentTimeMillis(); if (now - startedAt > acitionOvertime) { - throw new HardwareException(pack.getModuleId(), Errorcode.kovertime); + throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); } Thread.sleep(100); @@ -443,11 +443,11 @@ public class A8kCanBusService { receipt = receiptQueue.poll(overtime, TimeUnit.MILLISECONDS); } catch (InterruptedException e) { isWaitingReceipt = false; - throw new HardwareException(pack.getModuleId(), Errorcode.kovertime); + throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); } isWaitingReceipt = false; if (receipt == null) { - throw new HardwareException(pack.getModuleId(), Errorcode.kovertime); + throw new HardwareException(pack.getModuleId(), A8kEcode.Overtime.toInt()); } if (receipt.getPacketType() == A8kPacket.PACKET_TYPE_ERROR_ACK) { diff --git a/src/main/java/a8k/controller/TmpTestController.java b/src/main/java/a8k/controller/TmpTestController.java index 354b073..c34cd1c 100644 --- a/src/main/java/a8k/controller/TmpTestController.java +++ b/src/main/java/a8k/controller/TmpTestController.java @@ -2,7 +2,6 @@ package a8k.controller; import a8k.a8k_can_protocol.CmdId; import a8k.a8k_can_protocol.ModId; -import a8k.appbean.AppErrorCode; import a8k.appbean.HardwareException; import a8k.appbean.ecode.AppEcode; import a8k.base_hardware.A8kCanBusService; diff --git a/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java b/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java index 6293d17..bc7f990 100644 --- a/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java +++ b/src/main/java/a8k/service/ctrl_service/DeviceInitializationCtrlService.java @@ -1,8 +1,8 @@ package a8k.service.ctrl_service; +import a8k.a8k_can_protocol.A8kEcode; import a8k.a8k_can_protocol.IOId; import a8k.a8k_can_protocol.MId; -import a8k.appbean.AppErrorCode; import a8k.appbean.HardwareException; import a8k.appbean.ecode.AppEcode; import a8k.base_hardware.A8kCanBusService; @@ -43,47 +43,46 @@ public class DeviceInitializationCtrlService { // 试管夹紧电机打开一点,好方便有试管夹住的时,突然断电时,将试管取出 canBus.stepMotorEasyMoveBy(MId.ShakeModClampingM, 2); canBus.waitForMod(MId.ShakeModClampingM, actionOvertime); - - return new AppEcode(AppErrorCode.Success); + return new AppEcode(A8kEcode.Success); } private AppEcode checkDeviceState() throws HardwareException { //试管平移通道是否有障碍 if (canBus.getIOState(IOId.THChInterPPS) || canBus.getIOState(IOId.THChOuterPPS)) { logger.warn("THChInterPPS or THChOuterPPS is trigger"); - return new AppEcode(AppErrorCode.PlateStuckDetectorSensorTrigger); + return new AppEcode(A8kEcode.PlateStuckDetectorSensorTrigger); } //板夹仓盖子是否盖上 if (!canBus.getIOState(IOId.PlateBoxCoverClosurePPS)) { logger.warn("PlateBoxCoverClosure is open"); - return new AppEcode(AppErrorCode.PlateBoxNotCover); + return new AppEcode(A8kEcode.PlateBoxNotCover); } //板夹仓卡板检测 if (canBus.getIOState(IOId.PlateBoxPlateStuckPPS)) { logger.warn("PlateBoxPlateStuckPPS is trigger"); - return new AppEcode(AppErrorCode.PlateStuckDetectorSensorTrigger); + return new AppEcode(A8kEcode.PlateStuckDetectorSensorTrigger); } //检查钩板电机是否处于终点位置 if (!canBus.getIOState(IOId.PullerMZeroPPS)) { logger.warn("PullerM is not in zero pos"); - return new AppEcode(AppErrorCode.PullerMInitPosError); + return new AppEcode(A8kEcode.PullerMInitPosError); } //检查板夹仓光电是否处于起点位置 if (!canBus.getIOState(IOId.PusherMZeroPPS)) { logger.warn("PusherM is not in zero pos"); - return new AppEcode(AppErrorCode.PusherMInitPosError); + return new AppEcode(A8kEcode.PusherMInitPosError); } //板夹仓光电 if (canBus.getIOState(IOId.RecycleBinOverflowPPS)) { logger.warn("RecycleBinOverflow is trigger"); - return new AppEcode(AppErrorCode.RecycleBinOverflow); + return new AppEcode(A8kEcode.RecycleBinOverflow); } - return new AppEcode(AppErrorCode.Success); + return new AppEcode(A8kEcode.Success); } private AppEcode moveMotorToZero() throws HardwareException, InterruptedException { @@ -137,7 +136,7 @@ public class DeviceInitializationCtrlService { //canBus.waitForMod(MId.ShakeModGripperZM, actionOvertime); - return new AppEcode(AppErrorCode.Success); + return new AppEcode(A8kEcode.Success); } @@ -183,7 +182,7 @@ public class DeviceInitializationCtrlService { } - return new AppEcode(AppErrorCode.Success); + return new AppEcode(A8kEcode.Success); } diff --git a/src/main/java/a8k/service/data_service/UsrMgrService.java b/src/main/java/a8k/service/data_service/UsrMgrService.java index 6d282f1..5a6a8a3 100644 --- a/src/main/java/a8k/service/data_service/UsrMgrService.java +++ b/src/main/java/a8k/service/data_service/UsrMgrService.java @@ -1,6 +1,6 @@ package a8k.service.data_service; -import a8k.appbean.AppErrorCode; +import a8k.a8k_can_protocol.A8kEcode; import a8k.service.appdb.dao.AppUsrDao; import a8k.service.appdb.entity.AppUsr; import a8k.service.state_service.A8kStateMgrService; @@ -32,13 +32,13 @@ public class UsrMgrService { } //TODO - public AppErrorCode addUsr(AppUsr usr) { - return AppErrorCode.Success; + public A8kEcode addUsr(AppUsr usr) { + return A8kEcode.Success; } //TODO - public AppErrorCode updateUsr(String uname, String passwd) { - return AppErrorCode.Success; + public A8kEcode updateUsr(String uname, String passwd) { + return A8kEcode.Success; } @@ -51,13 +51,13 @@ public class UsrMgrService { * * */ - public AppErrorCode verifyAndLoginAppUsr(Integer loginType, String uname, String passwd) { + public A8kEcode verifyAndLoginAppUsr(Integer loginType, String uname, String passwd) { /* *TODO * 实现描述: * 1. 校验成功,则调用A8kStateMgrService.loginAppUsr 或者 A8kStateMgrService.loginDebugPageUsr */ - return AppErrorCode.UserDoesNotExist; + return A8kEcode.UserDoesNotExist; } diff --git a/src/main/java/a8k/service/hardware/HbotControlService.java b/src/main/java/a8k/service/hardware/HbotControlService.java index c992ad8..f0bb18c 100644 --- a/src/main/java/a8k/service/hardware/HbotControlService.java +++ b/src/main/java/a8k/service/hardware/HbotControlService.java @@ -1,6 +1,6 @@ package a8k.service.hardware; -import a8k.appbean.AppErrorCode; +import a8k.a8k_can_protocol.A8kEcode; /** * Hbot控制服务 @@ -26,10 +26,11 @@ public class HbotControlService { } //丢tip - public AppErrorCode dropTip() { - return AppErrorCode.Success; + public A8kEcode dropTip() { + return A8kEcode.Success; } + //扫描板夹仓二维码 public String scanPlatesCode(int index, int overtime) { return ""; diff --git a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java index 242e07c..30ec32a 100644 --- a/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java +++ b/src/main/java/a8k/service/hardware/MotorTubeRackMoveCtrlService.java @@ -69,7 +69,7 @@ public class MotorTubeRackMoveCtrlService { var dval = a8kCanBusService.module_read_reg(ModId.FeedingModXM, RegIndex.kreg_step_motor_dpos); if (Math.abs(dval - distance) > params.horizontalMotorLostStepThresholdVal) { - throw new HardwareException(ModId.FeedingModXM, Errorcode.kstep_motor_lost_step); + throw new HardwareException(ModId.FeedingModXM, A8kEcode.MotorLostStep.toInt()); } //先通过move_to 指令移动到零点 diff --git a/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java b/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java index 84e619b..34a87f4 100644 --- a/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java +++ b/src/main/java/a8k/service/hardware/SamplesPreProcessModuleCtrlService.java @@ -1,9 +1,9 @@ package a8k.service.hardware; +import a8k.a8k_can_protocol.A8kEcode; import a8k.a8k_can_protocol.CmdId; import a8k.a8k_can_protocol.ModId; import a8k.appbean.A8kTubeType; -import a8k.appbean.AppErrorCode; import a8k.appbean.HardwareException; import a8k.base_hardware.A8kCanBusService; import a8k.service.db.dao.A8kTubeInfoDao; @@ -102,6 +102,7 @@ public class SamplesPreProcessModuleCtrlService { CmdId.kmini_servo_enable, enable ? 1 : 0 ); + } @@ -118,7 +119,7 @@ public class SamplesPreProcessModuleCtrlService { * @param tubeType TubeType_HighBlood,TubeType_ShortBlood,TubeType_Mini,TubeType_MiniBlood,TubeType_BulletTube1P5,TubeType_BulletTube0P5 * @param judgeCapExist 是否判断试管帽子存在与否 */ - public AppErrorCode takeTube(String tubeType,boolean judgeCapExist) throws HardwareException, InterruptedException { + public A8kEcode takeTube(String tubeType,boolean judgeCapExist) throws HardwareException, InterruptedException { var params = this.samplesPreProcessModuleCtrlParamsService; this.a8kCanBusService.callblockcmd( ModId.ShakeModGripperYM, @@ -155,7 +156,7 @@ public class SamplesPreProcessModuleCtrlService { CmdId.kmini_servo_read_pos ); if ( pos.getContentI32(0) > params.getGripperServo_hatDeterminesPosThres() ) { - return AppErrorCode.TubeNotHasHat; + return A8kEcode.TubeNotHasHat; } } @@ -217,13 +218,13 @@ public class SamplesPreProcessModuleCtrlService { 4. 无论是否抓取成功,只要不向外抛出异常,方法结束时,该模块涉及到组件均需要返回待机位置。 */ - return AppErrorCode.Success; + return A8kEcode.Success; } /** * 取试管帽 */ - public AppErrorCode takeTubeCap( String tubeType ) throws HardwareException, InterruptedException { + public A8kEcode takeTubeCap( String tubeType ) throws HardwareException, InterruptedException { var params = this.samplesPreProcessModuleCtrlParamsService; this.a8kCanBusService.callblockcmd( ModId.ShakeModGripperYM, @@ -271,7 +272,7 @@ public class SamplesPreProcessModuleCtrlService { params.getHorizontalMotor_standbyPos(), params.getActionOvertime() ); - return AppErrorCode.Success; + return A8kEcode.Success; } /** diff --git a/zhaohe_app.db b/zhaohe_app.db index 8ef332353adc6b1a34c82bd10c4422ae01eaa1f3..5fd87a84188bf293abdec7f2fe1f5bf32f14ba4a 100644 GIT binary patch delta 40 vcmZozAltA&c7ilx*hCp;#<0eO)&$1Z1g6#m=GFw3)&$np1h%aS>5p)eB delta 40 vcmZozAltA&c7ilx$V3@u#*oH@)&$1Z1g6#m=GFw3)&$np1h%aS>5dsY#