/*
 * @Date: 2025-06-26 09:17:59
 * @Author: mypx
 * @LastEditors: mypx mypx_coder@163.com
 * @LastEditTime: 2025-07-22 15:08:28
 * @FilePath: h00_motor_args.h
 * @Description:
 * Copyright (c) 2025 by mypx, All Rights Reserved.
 */
#ifndef __H00_MOTOR_ARGS_H__
#define __H00_MOTOR_ARGS_H__
#include "sv_common.h"

/*======================================================================
 * H00 group Servo Motor Parameters Macro Definitions (0x2000-0x202Ch)
 *====================================================================*/

/* H00.00 Motor ID */
#define REG_H00_00_MOTOR_ID         (0x0000)
#define REG_H00_00_MOTOR_ID_MIN     (0)
#define REG_H00_00_MOR_ID_MAX       (65535)
#define REG_H00_00_MOTOR_ID_DEFAULT (14101)
#define REG_H00_00_MOTOR_ID_TYPE    UINT16
#define REG_H00_00_MOTOR_ID_DESC    "Inovance 18-bit absolute encoder motor ID (default: 14101)"

/* H00.02 Non-standard Label */
#define REG_H00_02_NON_LABEL         (0x0002)
#define REG_H00_02_NON_LABEL_MIN     (0.00f)
#define REG_H00_02_NON_LABEL_MAX     (42949672.95f)
#define REG_H00_02_NON_LABEL_DEFAULT (0.00f)
#define REG_H00_02_NON_LABEL_TYPE    UINT32
#define REG_H00_02_NON_LABEL_DESC    "MCU non-standard software version identifier (standard machine is 0.00)"

/* H00.04 Encoder Version */
#define REG_H00_04_ENC_VERSION         (0x0004)
#define REG_H00_04_ENC_VERSION_MIN     (0.0f)
#define REG_H00_04_ENC_VERSION_MAX     (6553.5f)
#define REG_H00_04_ENC_VERSION_DEFAULT (0.0f)
#define REG_H00_04_ENC_VERSION_TYPE    UINT16
#define REG_H00_04_ENC_VERSION_DESC    "Encoder software version number (stored in the encoder)"

/* H00.05 Bus Motor ID */
#define REG_H00_05_BUS_MOTOR_ID         (0x0005)
#define REG_H00_05_BUS_MOTOR_ID_MIN     (0)
#define REG_H00_05_BUS_MOTOR_ID_MAX     (65535)
#define REG_H00_05_BUS_MOTOR_ID_DEFAULT (0)
#define REG_H00_05_BUS_MOTOR_ID_TYPE    UINT16
#define REG_H00_05_BUS_MOTOR_ID_DESC    "Bus-type motor model ID (determined by motor model)"

/* H00.06 FPGA Non-standard Label */
#define REG_H00_06_FPGA_NON_LABEL         (0x0006)
#define REG_H00_06_FPGA_NON_LABEL_MIN     (0.00f)
#define REG_H00_06_FPGA_NON_LABEL_MAX     (10485.75f)
#define REG_H00_06_FPGA_NON_LABEL_DEFAULT (0.00f)
#define REG_H00_06_FPGA_NON_LABEL_TYPE    UINT32
#define REG_H00_06_FPGA_NON_LABEL_DESC    "FPGA non-standard software version identifier (standard machine is 0.00)"

/* H00.08 Bus Encoder Type */
#define REG_H00_08_BUS_ENC_TYPE         (0x0008)
#define REG_H00_08_BUS_ENC_TYPE_MIN     (0)
#define REG_H00_08_BUS_ENC_TYPE_MAX     (65535)
#define REG_H00_08_BUS_ENC_TYPE_DEFAULT (0)
#define REG_H00_08_BUS_ENC_TYPE_TYPE    UINT16
#define REG_H00_08_BUS_ENC_TYPE_DESC    "14100 = Multi-turn absolute encoder, others = Single-turn absolute encoder"

/* H00.09 Rated Voltage */
#define REG_H00_09_RATED_VOLTAGE         (0x0009)
#define REG_H00_09_RATED_VOLTAGE_MIN     (0)
#define REG_H00_09_RATED_VOLTAGE_MAX     (1)
#define REG_H00_09_RATED_VOLTAGE_DEFAULT (0) // 0=220V, 1=380V
#define REG_H00_09_RATED_VOLTAGE_TYPE    UINT16
#define REG_H00_09_RATED_VOLTAGE_DESC    "0: 220V, 1: 380V (voltage level setting)"

/* H00.10 Rated Power */
#define REG_H00_10_RATED_POWER         (0x0010)
#define REG_H00_10_RATED_POWER_MIN     (0.01f)
#define REG_H00_10_RATED_POWER_MAX     (655.35f)
#define REG_H00_10_RATED_POWER_DEFAULT (0.01f)
#define REG_H00_10_RATED_POWER_TYPE    UINT16
#define REG_H00_10_RATED_POWER_DESC    "Motor rated power (unit: kW)"

/* H00.11 Rated Current */
#define REG_H00_11_RATED_CURRENT         (0x0011)
#define REG_H00_11_RATED_CURRENT_MIN     (0.01f)
#define REG_H00_11_RATED_CURRENT_MAX     (655.35f)
#define REG_H00_11_RATED_CURRENT_DEFAULT (0.01f)
#define REG_H00_11_RATED_CURRENT_TYPE    UINT16
#define REG_H00_11_RATED_CURRENT_DESC    "Motor rated current (unit: A)"

/* H00.12 Rated Torque */
#define REG_H00_12_RATED_TORQUE         (0x0012)
#define REG_H00_12_RATED_TORQUE_MIN     (0.10f)
#define REG_H00_12_RATED_TORQUE_MAX     (655.35f)
#define REG_H00_12_RATED_TORQUE_DEFAULT (0.10f)
#define REG_H00_12_RATED_TORQUE_TYPE    UINT16
#define REG_H00_12_RATED_TORQUE_DESC    "Motor rated torque (unit: N·m)"

/* H00.13 Maximum Torque */
#define REG_H00_13_MAX_TORQUE         (0x0013)
#define REG_H00_13_MAX_TORQUE_MIN     (0.10f)
#define REG_H00_13_MAX_TORQUE_MAX     (655.35f)
#define REG_H00_13_MAX_TORQUE_DEFAULT (0.10f)
#define REG_H00_13_MAX_TORQUE_TYPE    UINT16
#define REG_H00_13_MAX_TORQUE_DESC    "Maximum allowable torque of the motor (unit: N·m)"

/* H00.14 Rated Speed */
#define REG_H00_14_RATED_SPEED         (0x0014)
#define REG_H00_14_RATED_SPEED_MIN     (100)
#define REG_H00_14_RATED_SPEED_MAX     (9000)
#define REG_H00_14_RATED_SPEED_DEFAULT (100)
#define REG_H00_14_RATED_SPEED_TYPE    UINT16
#define REG_H00_14_RATED_SPEED_DESC    "Motor rated speed (unit: rpm)"

/* H00.15 Maximum Speed */
#define REG_H00_15_MAX_SPEED         (0x0015)
#define REG_H00_15_MAX_SPEED_MIN     (100)
#define REG_H00_15_MAX_SPEED_MAX     (9000)
#define REG_H00_15_MAX_SPEED_DEFAULT (100)
#define REG_H00_15_MAX_SPEED_TYPE    UINT16
#define REG_H00_15_MAX_SPEED_DESC    "Maximum allowable speed of the motor (unit: rpm)"

/* H00.16 Moment of Inertia Jm */
#define REG_H00_16_MOMENT_OF_INERTIA         (0x0016)
#define REG_H00_16_MOMENT_OF_INERTIA_MIN     (0.01f)
#define REG_H00_16_MOMENT_OF_INERTIA_MAX     (655.35f)
#define REG_H00_16_MOMENT_OF_INERTIA_DEFAULT (0.01f)
#define REG_H00_16_MOMENT_OF_INERTIA_TYPE    UINT16
#define REG_H00_16_MOMENT_OF_INERTIA_DESC    "Moment of inertia of the motor (unit: kg·cm²)"

/* H00.17 Number of Pole Pairs of Permanent Magnet Synchronous Motor */
#define REG_H00_17_POLE_PAIRS         (0x0017)
#define REG_H00_17_POLE_PAIRS_MIN     (2)
#define REG_H00_17_POLE_PAIRS_MAX     (360)
#define REG_H00_17_POLE_PAIRS_DEFAULT (2)
#define REG_H00_17_POLE_PAIRS_TYPE    UINT16
#define REG_H00_17_POLE_PAIRS_DESC    "Number of pole pairs of permanent magnet synchronous motor"

/* H00.18 Stator Resistance */
#define REG_H00_18_STATOR_RESISTANCE         (0x0018)
#define REG_H00_18_STATOR_RESISTANCE_MIN     (0.001f)
#define REG_H00_18_STATOR_RESISTANCE_MAX     (65.535f)
#define REG_H00_18_STATOR_RESISTANCE_DEFAULT (0.001f)
#define REG_H00_18_STATOR_RESISTANCE_TYPE    UINT16
#define REG_H00_18_STATOR_RESISTANCE_DESC    "Stator resistance (unit: Ω)"

/* H00.19 Stator Inductance Lq */
#define REG_H00_19_STATOR_INDUCTANCE_LQ         (0x0019)
#define REG_H00_19_STATOR_INDUCTANCE_LQ_MIN     (0.01f)
#define REG_H00_19_STATOR_INDUCTANCE_LQ_MAX     (655.35f)
#define REG_H00_19_STATOR_INDUCTANCE_LQ_DEFAULT (0.01f)
#define REG_H00_19_STATOR_INDUCTANCE_LQ_TYPE    UINT16
#define REG_H00_19_STATOR_INDUCTANCE_LQ_DESC    "Stator quadrature axis inductance (unit: mH)"

/* H00.20 Stator Inductance Ld */
#define REG_H00_20_STATOR_INDUCTANCE_LD         (0x0020)
#define REG_H00_20_STATOR_INDUCTANCE_LD_MIN     (0.01f)
#define REG_H00_20_STATOR_INDUCTANCE_LD_MAX     (655.35f)
#define REG_H00_20_STATOR_INDUCTANCE_LD_DEFAULT (0.01f)
#define REG_H00_20_STATOR_INDUCTANCE_LD_TYPE    UINT16
#define REG_H00_20_STATOR_INDUCTANCE_LD_DESC    "Stator direct axis inductance (unit: mH)"

/* H00.21 Line Back EMF Coefficient */
#define REG_H00_21_BACK_EMF_COEFF         (0x0021)
#define REG_H00_21_BACK_EMF_COEFF_MIN     (0.01f)
#define REG_H00_21_BACK_EMF_COEFF_MAX     (655.35f)
#define REG_H00_21_BACK_EMF_COEFF_DEFAULT (0.01f)
#define REG_H00_21_BACK_EMF_COEFF_TYPE    UINT16
#define REG_H00_21_BACK_EMF_COEFF_DESC    "Line back EMF coefficient (unit: mV/rpm)"

/* H00.22 Torque Coefficient Kt */
#define REG_H00_22_TORQUE_COEFF_KT         (0x0022)
#define REG_H00_22_TORQUE_COEFF_KT_MIN     (0.01f)
#define REG_H00_22_TORQUE_COEFF_KT_MAX     (655.35f)
#define REG_H00_22_TORQUE_COEFF_KT_DEFAULT (0.01f)
#define REG_H00_22_TORQUE_COEFF_KT_TYPE    UINT16
#define REG_H00_22_TORQUE_COEFF_KT_DESC    "Torque coefficient (unit: N·m/Arms)"

/* H00.23 Electrical Time Constant Te */
#define REG_H00_23_ELECTRICAL_TIME_CONST         (0x0023)
#define REG_H00_23_ELECTRICAL_TIME_CONST_MIN     (0.01f)
#define REG_H00_23_ELECTRICAL_TIME_CONST_MAX     (655.35f)
#define REG_H00_23_ELECTRICAL_TIME_CONST_DEFAULT (0.01f)
#define REG_H00_23_ELECTRICAL_TIME_CONST_TYPE    UINT16
#define REG_H00_23_ELECTRICAL_TIME_CONST_DESC    "Electrical time constant (unit: ms)"

/* H00.24 Mechanical Time Constant Tm */
#define REG_H00_24_MECHANICAL_TIME_CONST         (0x0024)
#define REG_H00_24_MECHANICAL_TIME_CONST_MIN     (0.01f)
#define REG_H00_24_MECHANICAL_TIME_CONST_MAX     (655.35f)
#define REG_H00_24_MECHANICAL_TIME_CONST_DEFAULT (0.01f)
#define REG_H00_24_MECHANICAL_TIME_CONST_TYPE    UINT16
#define REG_H00_24_MECHANICAL_TIME_CONST_DESC    "Mechanical time constant (unit: ms)"

/* H00.27 Number of Sine/Cosine Signals of Bus Motor */
#define REG_H00_27_BUS_SINCOS_COUNT         (0x0027)
#define REG_H00_27_BUS_SINCOS_COUNT_MIN     (0)
#define REG_H00_27_BUS_SINCOS_COUNT_MAX     (65535)
#define REG_H00_27_BUS_SINCOS_COUNT_DEFAULT (1)
#define REG_H00_27_BUS_SINCOS_COUNT_TYPE    UINT16
#define REG_H00_27_BUS_SINCOS_COUNT_DESC    "Number of sine/cosine signals of bus motor"

/* H00.28 Absolute Encoder Position Offset */
#define REG_H00_28_ABS_POS_OFFSET         (0x0028)
#define REG_H00_28_ABS_POS_OFFSET_MIN     (0)
#define REG_H00_28_ABS_POS_OFFSET_MAX     (1073741824)
#define REG_H00_28_ABS_POS_OFFSET_DEFAULT (0)
#define REG_H00_28_ABS_POS_OFFSET_TYPE    UINT32
#define REG_H00_28_ABS_POS_OFFSET_DESC    "Absolute encoder position offset (unit: P/Rev)"

/* H00.30 Encoder Selection */
#define REG_H00_30_ENCODER_SELECT         (0x0030)
#define REG_H00_30_ENCODER_SELECT_MIN     (0)
#define REG_H00_30_ENCODER_SELECT_MAX     (65535)
#define REG_H00_30_ENCODER_SELECT_DEFAULT (19) // 19 = Inovance Encoder
#define REG_H00_30_ENCODER_SELECT_TYPE    UINT16
#define REG_H00_30_ENCODER_SELECT_DESC    "Encoder type selection (19 = Inovance Encoder)"

/* H00.31 Encoder Lines */
#define REG_H00_31_ENCODER_LINES         (0x0031)
#define REG_H00_31_ENCODER_LINES_MIN     (1)
#define REG_H00_31_ENCODER_LINES_MAX     (1073741824)
#define REG_H00_31_ENCODER_LINES_DEFAULT (8388608)
#define REG_H00_31_ENCODER_LINES_TYPE    UINT32
#define REG_H00_31_ENCODER_LINES_DESC    "Encoder lines (pulses per revolution)"

/* H00.35 Bus Encoder Stored Motor ID */
#define REG_H00_35_BUS_ENC_MOTOR_ID         (0x0035)
#define REG_H00_35_BUS_ENC_MOTOR_ID_MIN     (0)
#define REG_H00_35_BUS_ENC_MOTOR_ID_MAX     (65535)
#define REG_H00_35_BUS_ENC_MOTOR_ID_DEFAULT (0)
#define REG_H00_35_BUS_ENC_MOTOR_ID_TYPE    UINT16
#define REG_H00_35_BUS_ENC_MOTOR_ID_DESC    "Bus encoder stored motor ID"

/* H00.37 Encoder Function Flags */
#define REG_H00_37_ENCODER_FUNC_FLAGS         (0x0037)
#define REG_H00_37_ENCODER_FUNC_FLAGS_MIN     (0)
#define REG_H00_37_ENCODER_FUNC_FLAGS_MAX     (255)
#define REG_H00_37_ENCODER_FUNC_FLAGS_DEFAULT (0)
#define REG_H00_37_ENCODER_FUNC_FLAGS_TYPE    UINT16
#define REG_H00_37_ENCODER_FUNC_FLAGS_DESC    "Encoder function setting flags"

/* H00.43 Maximum Current */
#define REG_H00_43_MAX_CURRENT         (0x0043)
#define REG_H00_43_MAX_CURRENT_MIN     (0.00f)
#define REG_H00_43_MAX_CURRENT_MAX     (655.35f)
#define REG_H00_43_MAX_CURRENT_DEFAULT (0.00f)
#define REG_H00_43_MAX_CURRENT_TYPE    UINT16
#define REG_H00_43_MAX_CURRENT_DESC    "Maximum allowed current of the driver (unit: A)"


/**
 * @brief H00.00 Read motor ID
 * @param dev Pointer to servo handle
 * @param value Pointer to store the motor ID
 * @return int 
 */
int sv630p_read_h00_00_motor_id(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.00 Write motor ID
 * @param dev Pointer to servo handle
 * @param value Motor ID to write
 * @return int 
 */
int sv630p_write_h00_00_motor_id(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.02 Read Non-standard Number (32-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_02_non_label(sv630p_handle_t *dev, uint32_t *value);

/**
 * @brief H00.04 Read Encoder Version (16-bit)
 * @param value Pointer to store the value
 * @return nmbs_error
 */
int sv630p_read_h00_04_enc_version(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.05 Read Bus Motor ID (16-bit)
 * @param value Pointer to store the value
 * @return nmbs_error
 */
int sv630p_read_h00_05_bus_motor_id(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.06 Read FPGA Non-standard Number (32-bit)
 * @param value Pointer to store the value
 * @return nmbs_error
 */
int sv630p_read_h00_06_fpga_non_label(sv630p_handle_t *dev, uint32_t *value);

/**
 * @brief H00.08 Read Bus Encoder Type (16-bit)
 * @param value Pointer to store the value
 * @return nmbs_error
 */
int sv630p_read_h00_08_bus_enc_type(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.08 Write Bus Encoder Type (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_08_bus_enc_type(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.09 Read Rated Voltage (16-bit)
 * @param value Pointer to store the value
 * @return nmbs_error
 */
int sv630p_read_h00_09_rated_voltage(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.09 Write Rated Voltage (16-bit)
 * @param value Value to write
 * @return nmbs_error
 */
int sv630p_write_h00_09_rated_voltage(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.10 Read Rated Power (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_10_rated_power(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.10 Write Rated Power (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_10_rated_power(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.11 Read Rated Current (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_11_rated_current(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.11 Write Rated Current (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_11_rated_current(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.12 Read Rated Torque (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_12_rated_torque(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.12 Write Rated Torque (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_12_rated_torque(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.13 Read Maximum Torque (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_13_max_torque(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.13 Write Maximum Torque (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_13_max_torque(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.14 Read Rated Speed (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_14_rated_speed(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.14 Write Rated Speed (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_14_rated_speed(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.15 Read Maximum Speed (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int
 */
int sv630p_read_h00_15_max_speed(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.15 Write Maximum Speed (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int
 */
int sv630p_write_h00_15_max_speed(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.16 Read Moment of Inertia Jm (16-bit, unit: 0.01kg·cm²)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_16_moment_of_inertia(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.16 Write Moment of Inertia Jm (16-bit, unit: 0.01kg·cm²)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_16_moment_of_inertia(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.17 Read Number of Pole Pairs (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_17_pole_pairs(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.17 Write Number of Pole Pairs (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_17_pole_pairs(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.18 Read Stator Resistance (16-bit, unit: 0.001Ω)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_18_stator_resistance(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.18 Write Stator Resistance (16-bit, unit: 0.001Ω)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_18_stator_resistance(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.19 Read Stator Inductance Lq (16-bit, unit: 0.01mH)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_19_stator_inductance_lq(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.19 Write Stator Inductance Lq (16-bit, unit: 0.01mH)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_19_stator_inductance_lq(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.20 Read Stator Inductance Ld (16-bit, unit: 0.01mH)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int
 */
int sv630p_read_h00_20_stator_inductance_ld(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.20 Write Stator Inductance Ld (16-bit, unit: 0.01mH)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int
 */
int sv630p_write_h00_20_stator_inductance_ld(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.21 Read Back EMF Coefficient (16-bit, unit: 0.01mV/rpm)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_21_back_emf_coeff(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.21 Write Back EMF Coefficient (16-bit, unit: 0.01mV/rpm)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_21_back_emf_coeff(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.22 Read Torque Coefficient Kt (16-bit, unit: 0.01N·m/Arms)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_22_torque_coeff_kt(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.22 Write Torque Coefficient Kt (16-bit, unit: 0.01N·m/Arms)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_22_torque_coeff_kt(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.23 Read Electrical Time Constant Te (16-bit, unit: 0.01ms)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_h00_23_read_electrical_constant(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.23 Write Electrical Time Constant Te (16-bit, unit: 0.01ms)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_h00_23_write_electrical_constant(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.24 Read Mechanical Time Constant Tm (16-bit, unit: 0.01ms)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_h00_24_read_mechanical_constant(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.24 Write Mechanical Time Constant Tm (16-bit, unit: 0.01ms)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_24_mechanical_constant(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.27 Read Bus Sine/Cosine Count (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_h00_27_read_bus_sincos_count(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.27 Write Bus Sine/Cosine Count (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_h00_27_write_bus_sincos_count(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.28 Read Absolute Encoder Position Offset (32-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_h00_28_read_abs_pos_offset(sv630p_handle_t *dev, uint32_t *value);

/**
 * @brief H00.28 Write Absolute Encoder Position Offset (32-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_h00_28_write_abs_pos_offset(sv630p_handle_t *dev, uint32_t value);

/**
 * @brief H00.30 Read Encoder Select (HEX) (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_h00_30_read_encoder_select(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.30 Write Encoder Select (HEX) (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_h00_30_write_encoder_select(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.31 Read Encoder Lines (32-bit)
 * @param dev Pointer to servo handle 
 * @param value Pointer to store the value
 * @return int
 */
int sv630p_h00_31_read_encoder_lines(sv630p_handle_t *dev, uint32_t *value);

/**
 * @brief H00.31 Write Encoder Lines (32-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int
 */
int sv630p_h00_31_write_encoder_lines(sv630p_handle_t *dev, uint32_t value);

/**
 * @brief H00.35 Read Bus Encoder Stored Motor ID (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int
 */
int sv630p_h00_35_read_bus_enc_motor_id(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.35 Write Bus Encoder Stored Motor ID (16-bit)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int
 */
int sv630p_h00_35_write_bus_enc_motor_id(sv630p_handle_t *dev, uint16_t value);

/**
 * @brief H00.37 Read Encoder Function Flags (16-bit)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int
 */
int sv630p_h00_37_read_encoder_func_bits(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.43 Read Maximum Current (16-bit, unit: 0.01A)
 * @param dev Pointer to servo handle
 * @param value Pointer to store the value
 * @return int 
 */
int sv630p_read_h00_43_max_current(sv630p_handle_t *dev, uint16_t *value);

/**
 * @brief H00.43 Write Maximum Current (16-bit, unit: 0.01A)
 * @param dev Pointer to servo handle
 * @param value Value to write
 * @return int 
 */
int sv630p_write_h00_43_max_current(sv630p_handle_t *dev, uint16_t value);

#endif
