#ifndef _Callback_H_
#define _Callback_H_

#include "main.h"



/*
	* @ 电控API阀参数信息
*/

//DeviceParams_t g_deviceParams = {
//    .Firmware_Version = 0x0007B94F,    
//		.SlaveDevice_addr = 0x00FF,
//		.Serial_baud_rate = 0x0002,
//    .Device_SN = {0x00FF,0x1906,0x0A01},   
//    .magic = FLASH_PARAMS_MAGIC
//};
//extern DeviceParams_t g_deviceParams;

//extern uint32_t Firmware_Version[4];			//	固件版本号 [主版本][子版本][定制版本][打包日期]
//extern uint16_t Hardware_Version ;				//	硬件版本号 [主版本][次版本]
//extern uint32_t Device_SN ;						//	设备编号 [年份][月份][日期][序号]
//extern uint16_t Device_type;							//	设备类型 [主型号][子型号]
//extern uint16_t SlaveDevice_addr; 				//	从机设备地址
//extern uint16_t Serial_baud_rate;					//	串口波特率01 - 08对应4800 - 256000bps
extern uint16_t Valve_status;							//	阀状态0000关0001开
extern uint32_t Magnetic_angle;						//	磁角度
extern uint32_t hall_data[4];							//	霍尔1到4的数据
extern uint16_t Motor_status;							//	电机状态0000关0001开
extern uint32_t Motor_current;						//	电机电流
extern uint32_t Motor_speed;							//	电机转速





void Process_Uart485callback(void);
bool is_modbus_03_response(uint8_t *data);
void process_modbus_03(uint8_t *data) ;

bool is_modbus_06_response(uint8_t *data) ;
void process_modbus_06(uint8_t *data)  ;

void process_modbus_42(uint8_t *data)  ; 
bool is_modbus_42_response(uint8_t *data)  ;
	
bool is_modbus_errorfunc_response(uint8_t *data) ;
void process_modbus_errorfunc(uint8_t *data) ;
  
bool is_modbus_error_regaddr_response(uint8_t *data) ;
void process_modbus_error_regaddr(uint8_t *data) ;

void process_modbus_error_data(uint8_t *data);
#endif

