#ifndef __APP_CIA402_H__
#define __APP_CIA402_H__

#include <stdint.h>
#include <stdbool.h>
#include <stdlib.h> // for abs()
#include "CiA402_defs.h"
#include "CO_ODinterface.h"
#include "Int_TMC2209.h"
#include "CANopen.h"
#include "app_main.h"
#include "app_motor.h"
#include "OD.h"

/* 物理参数定义 */
#define SOFT_LIMIT_MAX_MM 230.0f /* 丝杆有效量程上限 (mm) */
#define SOFT_LIMIT_MIN_MM 0.0f   /* 丝杆有效量程下限 (mm) */

extern Stepper_t stepper_1; // 引用在 app_main.c 中定义的电机对象
extern CO_t *CO;            // 引用在 CO_app_STM32.c 中定义的 CANopen 对象

void Process_StateMachine(void);
void Update_Motion_State_To_OD(void);
void Handle_Homing_Mode(void);
void Handle_Position_Mode(void);

#endif /* __APP_CIA402_H__ */
