Browse Source

V1026 | 移液枪 电机支持读取ENC,支持设置MRES

master
zhaohe 4 months ago
parent
commit
5bac83aed5
  1. 4
      .settings/language.settings.xml
  2. 2
      a8000_protocol
  3. 4
      sdk/components/pipette_module/pipette_ctrl_module_v2.cpp
  4. 8
      sdk/components/pipette_module/pipette_ctrl_module_v2.hpp
  5. 2
      usrc/version.h

4
.settings/language.settings.xml

@ -5,7 +5,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1454925727642238918" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1765541362942309185" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>
@ -16,7 +16,7 @@
<provider copy-of="extension" id="org.eclipse.cdt.ui.UserLanguageSettingsProvider"/>
<provider-reference id="org.eclipse.cdt.core.ReferencedProjectsLanguageSettingsProvider" ref="shared-provider"/>
<provider-reference id="org.eclipse.cdt.managedbuilder.core.MBSLanguageSettingsProvider" ref="shared-provider"/>
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="-1381858352396115768" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<provider class="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" console="false" env-hash="1838608738188432335" id="com.st.stm32cube.ide.mcu.toolchain.armnone.setup.CrossBuiltinSpecsDetector" keep-relative-paths="false" name="MCU ARM GCC Built-in Compiler Settings" parameter="${COMMAND} ${FLAGS} -E -P -v -dD &quot;${INPUTS}&quot;" prefer-non-shared="true">
<language-scope id="org.eclipse.cdt.core.gcc"/>
<language-scope id="org.eclipse.cdt.core.g++"/>
</provider>

2
a8000_protocol

@ -1 +1 @@
Subproject commit 49fd379cc25952455fcf735c2e57f8937229aefb
Subproject commit 64b40447f164cb91c875517f4ba370217f2e7251

4
sdk/components/pipette_module/pipette_ctrl_module_v2.cpp

@ -94,6 +94,7 @@ void PipetteModuleV2::create_default_cfg(config_t *defaultcfg) {
defaultcfg->zm_default_velocity = 500;
defaultcfg->zm_run_to_zero_speed = 100;
defaultcfg->zm_look_zero_edge_speed = 100;
defaultcfg->zm_mres = 0;
}
int32_t PipetteModuleV2::getid(int32_t *id) {
*id = m_id;
@ -124,6 +125,7 @@ int32_t PipetteModuleV2::module_active_cfg() {
m_zm->set_vstop(m_cfg.zm_vstop);
m_zm->set_tzerowait(m_cfg.zm_tzerowait);
m_zm->set_enc_resolution(m_cfg.zm_enc_resolution);
m_zm->setMRES((mres_type_t)m_cfg.zm_mres);
if (m_state.enable) {
m_zm->enable(true);
@ -152,6 +154,7 @@ int32_t PipetteModuleV2::module_xxx_reg_impl(int32_t param_id, bool read, int32_
XXX_STATE_REG(kreg_pipette_capactitance_val, /* */ pump_read_capactitance(&val));
XXX_STATE_REG(kreg_pipette_tip_state, /* */ pump_read_tip_state(&val));
XXX_STATE_REG(kreg_pipette_zm_pos, assign_int32(&val, zm_get_now_pos()));
XXX_STATE_REG(kreg_pipette_zm_encpos, assign_int32(&val, m_zm->read_enc_val()));
XXX_STATE_REG(kreg_pipette_zm_is_enable, REG_GET(m_state.enable));
XXX_STATE_REG(kreg_pipette_zm_dpos, REG_GET(m_state.dpos));
XXX_STATE_REG(kreg_pipette_zm_has_move_zero, REG_GET(m_state.zm_has_move_zero));
@ -185,6 +188,7 @@ int32_t PipetteModuleV2::module_xxx_reg_impl(int32_t param_id, bool read, int32_
XXX_CFG_REG(zm_dzero);
XXX_CFG_REG(zm_pos_devi_tolerance);
XXX_CFG_REG(zm_io_trigger_append_distance);
XXX_CFG_REG(zm_mres);
default:
return err::kmodule_not_find_reg;

8
sdk/components/pipette_module/pipette_ctrl_module_v2.hpp

@ -2,11 +2,11 @@
//
#include "a8000_protocol\protocol.hpp"
#include "sdk/os/zos.hpp"
#include "sdk\components\api\zi_module.hpp"
#include "sdk\components\sensors\smtp2_v2\smtp2_v2.hpp"
#include "sdk\components\tmc\basic\tmc_ic_interface.hpp"
#include "sdk\components\tmc\ic\ztmc5130.hpp"
#include "sdk\components\zcancmder\zcanreceiver.hpp"
#include "sdk\components\api\zi_module.hpp"
// #include "StepMotorCtrlModule"
@ -79,6 +79,7 @@ class PipetteModuleV2 : public ZIModule {
int32_t zm_dzero; // 零点偏移
int32_t zm_io_trigger_append_distance;
int32_t zm_pos_devi_tolerance;
int32_t zm_mres;
} config_t;
@ -120,8 +121,8 @@ class PipetteModuleV2 : public ZIModule {
ZGPIO *m_zm0p = nullptr;
TMC51X0 *m_zm = nullptr;
int32_t m_id = 0;
config_t m_cfg = {0};
int32_t m_id = 0;
config_t m_cfg = {0};
config_t m_default_cfg = {0};
bool m_config_update = false;
@ -170,6 +171,7 @@ class PipetteModuleV2 : public ZIModule {
virtual int32_t pipette_zmotor_move_by(int32_t distance);
virtual int32_t pipette_zmotor_move_to(int32_t position);
/***********************************************************************************************************************
* PUMP *
***********************************************************************************************************************/

2
usrc/version.h

@ -1,2 +1,2 @@
#pragma once
#define APP_VERSION 1025
#define APP_VERSION 1026
Loading…
Cancel
Save