Browse Source

add A8kPipetteCtrlModule

tags/v0
zhaohe 11 months ago
parent
commit
7ae0333573
  1. BIN
      app.db
  2. 158
      src/main/java/a8k/hardware/A8kPipetteCtrlModule.java

BIN
app.db

158
src/main/java/a8k/hardware/A8kPipetteCtrlModule.java

@ -0,0 +1,158 @@
package a8k.hardware;
import a8k.hardware.type.a8kcanprotocol.CmdId;
import a8k.hardware.type.a8kcanprotocol.MId;
import a8k.type.HardwareException;
import jakarta.annotation.Resource;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
@Component
public class A8kPipetteCtrlModule {
@Resource
A8kCanBusService canBusService;
final Integer overtime = 10000;
/*
virtual int32_t pipette_zmotor_enable(int32_t enable);
virtual int32_t pipette_zmotor_move_zero();
virtual int32_t pipette_zmotor_move_to_zero_point_quick();
virtual int32_t pipette_zmotor_measure_distance();
virtual int32_t pipette_zmotor_read_measure_distance_result(int32_t *result0);
virtual int32_t pipette_zmotor_move_by(int32_t distance);
virtual int32_t pipette_zmotor_move_to(int32_t position);
virtual int32_t pipette_init_device();
virtual int32_t pipette_put_tip();
virtual int32_t pipette_lld_prepare();
virtual int32_t pipette_lld(int32_t lldtype, int32_t zdpos, int32_t c_threshold, int32_t p_threshold);
virtual int32_t pipette_aspirate_prepare();
virtual int32_t pipette_aspirate_set_llf_velocity(int32_t llf_zm_rpm);
virtual int32_t pipette_aspirate_set_operation_verifi_p_thre(int32_t p_thre);
virtual int32_t pipette_aspirate_set_operation_verifi_eigen_time(int32_t eigen_time);
virtual int32_t pipette_aspirate_set_operation_verifi_tolerance(int32_t tolerance);
virtual int32_t pipette_aspirate(int32_t ul);
virtual int32_t pipette_aspirate_and_verify(int32_t ul);
virtual int32_t pipette_shake_up(int32_t ul, int32_t times);
virtual int32_t pipette_aspirate_infer_pressure(int32_t ul);
virtual int32_t pipette_aspirate_infer_eigen_time(int32_t ul);
virtual int32_t pipette_get_aspirate_infer_pressure_result(int32_t *result);
virtual int32_t pipette_get_aspirate_infer_eigen_time_result(int32_t *result);
virtual int32_t pipette_get_sensor_sample_data(int32_t index, int32_t *motor_pos, int32_t *cval, int32_t *pval);
virtual int32_t pipette_get_sensor_sample_data_num(int32_t *num);
virtual int32_t pipette_zmotor_read_zero_point_state(int32_t *state);
virtual int32_t pipette_zmotor_read_dev_status_cache(int32_t *devStatus);
*/
public void zMotorEnable(int enable) throws HardwareException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_zmotor_enable.toInt(), enable);
}
public void zMotorMoveZeroBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_zmotor_move_zero.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void zMotorMoveToZeroPointQuickBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_zmotor_move_to_zero_point_quick.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void zMotorMoveByBlock(int distance) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_zmotor_move_by.toInt(), distance);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void zMotorMoveToBlock(int position) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_zmotor_move_to.toInt(), position);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void initDeviceBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_init_device.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void putTipBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_put_tip.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void lldPrepareBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_lld_prepare.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void lldBlock(int lldtype, int zdpos, int c_threshold, int p_threshold) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_lld.toInt(), lldtype, zdpos, c_threshold, p_threshold);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void aspiratePrepareBlock() throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_prepare.toInt());
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void aspirateSetLlfVelocity(int llf_zm_rpm) throws HardwareException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_set_llf_velocity.toInt(), llf_zm_rpm);
}
public void aspirateSetOperationVerifPThre(int p_thre) throws HardwareException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_set_operation_verifi_p_thre.toInt(), p_thre);
}
public void aspirateSetOperationVerifEigenTime(int eigen_time) throws HardwareException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_set_operation_verifi_eigen_time.toInt(), eigen_time);
}
public void aspirateSetOperationVerifTolerance(int tolerance) throws HardwareException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_set_operation_verifi_tolerance.toInt(), tolerance);
}
public void aspirateBlock(int ul) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate.toInt(), ul);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void aspirateAndVerifyBlock(int ul) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_and_verify.toInt(), ul);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void shakeUpBlock(int ul, int times) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_shake_up.toInt(), ul, times);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void aspirateInferPressureBlock(int ul) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_infer_pressure.toInt(), ul);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void aspirateInferEigenTimeBlock(int ul) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_aspirate_infer_eigen_time.toInt(), ul);
canBusService.waitForMod(MId.PipetteMod, overtime);
}
public void getAspirateInferPressureResult(int[] result) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_get_aspirate_infer_pressure_result.toInt());
}
public void getAspirateInferEigenTimeResultBlock(int[] result) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_get_aspirate_infer_eigen_time_result.toInt());
}
public void getSensorSampleData(int index, int[] motor_pos, int[] cval, int[] pval) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_get_sensor_sample_data.toInt(), index);
}
public void getSensorSampleDataNum(int[] num) throws HardwareException, InterruptedException {
canBusService.callcmd(MId.PipetteMod.toInt(), CmdId.pipette_get_sensor_sample_data_num.toInt());
}
}
Loading…
Cancel
Save