Files
VSMD/src/VSMD_command_handler.h
2025-07-08 21:15:48 +08:00

138 lines
4.0 KiB
C
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef VSMD_COMMAND_HANDLER_H
#define VSMD_COMMAND_HANDLER_H
#include <ArduinoJson.h>
#include "vsmd_parser.h"
// 外部变量声明
extern bool deviceEnabled;
extern int32_t pulsePerSecond;
extern uint8_t sendBuffer[];
extern int32_t packedLength;
extern VSMDParser parser;
// 串口通信函数
void send_vsmd_cmd(const char* cmd, int value = -1);
// send_vsmd_cmd("dev"); // 不带参数,使用默认值-1
// send_vsmd_cmd("pos", value); // 带参数
// 打印Serial串口收到的原始数据
void printSerialRawData(const uint8_t* buffer, int bytesRead);
//VSMD串口数据解析
String readAndParseSerialData();
// JSON响应函数
void sendJsonResponse(const char* command, const char* status, int value = -1);
// 打包并发送字符串响应
void sendStringResponse(const char* response);
// JSON命令处理函数
void processJsonCommand(const char* jsonString);
// 处理字符串命令
void processStringCommand(const char* stringData);
//获取参数值
void handle_cfg_cmd();
//握手,获取型号和版本号
void handle_dev_cmd();
//获取运行状态(速度、位置、状态)
void handle_sts_cmd();
//电机使能
void handle_ena_cmd();
//电机脱机
void handle_off_cmd();
//以指定速度连续运转
void handle_mov_cmd();
//移动到指定位置
void handle_pos_cmd(int value);
//相对移动
void handle_rmv_cmd(int value);
//移动到预设位置有value时预设目标位置
void handle_pps_cmd(int value = -1);
//指定当前位置位原点
void handle_org_cmd();
//停止
void handle_stp_cmd(int value = 0);
//执行归零
void handle_zero_start_cmd();
//停止归零
void handle_zero_stop_cmd();
//设置波特率
void handle_cfg_bdr_cmd(int baudrate);
//设置微步细分
void handle_cfg_mcs_cmd(int value);
//设置速度
void handle_cfg_spd_cmd(int value);
//设置加速速度
void handle_cfg_accSpeed_cmd(int value);
//设置减速度
void handle_cfg_decSpeed_cmd(int value);
//设置加速时电流
void handle_cfg_cra_cmd(float value);
//设置匀速时电流
void handle_cfg_crn_cmd(float value);
//设置HOLD电流
void handle_cfg_crh_cmd(float value);
// ***************************SENSOR事件、工作模式处理**********************/
void handle_cfg_sensor_cmd(const char* sensorType, int value);
// ***************************SENSOR端口输出控制处理**********************/
void handle_port_output_cmd(const char* portType, const char* action);
// //设置S1下降沿触发事件
// void handle_cfg_s1f_cmd(int value);
// //设置S1上升沿触发事件
// void handle_cfg_s1r_cmd(int value);
// //设置S2下降沿触发事件
// void handle_cfg_s2f_cmd(int value);
// //设置S2上升沿触发事件
// void handle_cfg_s2r_cmd(int value);
//设置归零功能
void handle_cfg_zmd_cmd(int value);
//设置归零用传感器
void handle_cfg_snr_cmd(int value);
//设置归零传感器OPEN时电平
void handle_cfg_osv_cmd(int value);
//设置归零速度
void handle_cfg_zsd_cmd(int value);
//设置归零后的安全位置
void handle_cfg_zsp_cmd(int value);
//设置离线运行模式
void handle_cfg_dmd_cmd(int value);
//设置无握手启动时间
void handle_cfg_dar_cmd(int value);
//设置负极限传感器
void handle_cfg_msr_cmd(int value);
//设置负极限触发电平
void handle_cfg_msv_cmd(int value);
//设置正极限传感器
void handle_cfg_psr_cmd(int value);
//设置正极限触发电平
void handle_cfg_psv_cmd(int value);
//设置上电使能
void handle_cfg_pae_cmd(int value);
//***************************编码器相关配置*********************************/
// 编码器模式
void handle_cfg_emod_cmd(int value);
// 编码器线数
void handle_cfg_elns_cmd(int value);
// 电机每圈整步数
void handle_cfg_estp_cmd(int value);
// 堵转后重试次数
void handle_cfg_erty_cmd(int value);
// 编码器方向
void handle_cfg_edir_cmd(int value);
// 编码器灵敏度
void handle_cfg_ez_cmd(int value);
// 堵转后动作
void handle_cfg_ewr_cmd(int value);
//*********************************************************************/
//保存参数到FLASH
void handle_sav_cmd();
#endif