This repository has been archived on 2025-02-28. You can view files and clone it, but cannot push or open issues or pull requests.
controller-hd/User/application/inc/convert.h

45 lines
3.4 KiB
C

/**
* @file convert.h
* @author xxx
* @date 2023-08-29 07:58:27
* @brief 头文件 convert.h
* @copyright Copyright (c) 2023 by xxx, All Rights Reserved.
*/
#ifndef __CONVERT_H__
#define __CONVERT_H__
#include "lib.h"
#include "main.h"
#include "entity.h"
#define CURRENT_PERCENT(x) ((x - LOOP_CURRENT_MIN) / (LOOP_CURRENT_MAX - LOOP_CURRENT_MIN)) ///> 电流百分比
extern void calib_param_calculate(calibration_e index, int16_t offset, int16_t span, float32 min, float32 max); // 校准参数计算
extern float32 adc_linear_conversion(calibration_e index, uint16_t adc); // AD值线性转换
extern void dev_serial_number_to_string(char *s, uint8_t *sn, uint8_t len, uint8_t interval, char *fix); // 16进制转ASCII字符串
extern void hart_long_address_to_string(char *s, uint8_t *sn, uint8_t len); // HART长地址转字符串
extern float32 i2psb(float32 in); // 输入电流转换成需要控制的阀门开度
extern float32 temperature_c2unit(float32 in, uint16_t unit); // 温度值转换:摄氏度转华氏度
extern float32 pressure_unit2kpa(float32 in, uint16_t unit); // 压力单位转换,单位转kPa
extern float32 pressure_kpa2unit(float32 kpa, uint16_t unit); // 压力值转换, kPa转单位
extern uint32_t dev_serial_num_deal(void); // 设备序列号处理
extern float32 small_signal_deal(float32 in); // 小信号切除处理
extern float32 dead_zone_deal(float32 in); // 死区处理
extern float32 part_travel_deal(float32 in); // 分程处理
extern void pwm_output_deal(float32 in); // PWM输出处理
extern void swo_output_deal(float32 in); // SWO输出处理
extern float32 target_travel_deal(float32 in); // 目标行程处理
extern void actual_travel_deal(float32 in); // 实际行程处理
extern float32 get_show_actual_travel(float32 tag, float32 cur, float32 err); // 获取显示实际行程
extern float32 get_show_travel(float32 in); // 获取显示行程
extern float32 get_pid_travel(float32 in); // 获取PID控制行程
extern void get_pressure_unit(char *s, uint16_t unit); // 获取压力单位
extern BOOL pressure_unit_need_decimal_display(uint16_t unit); // 压力单位是否需要小数显示
extern float32 voltage2pressure(float32 voltage_ad); // 电压转压力
extern float32 get_pressure_limit_deal(float32 in, uint16_t unit); // 获取压力限制处理
extern float32 pressure_to_percent(float32 pressure); // 压力转百分比
extern BOOL is_double_acting(void); // 是否双作用
extern void last_tuned_state_update(void); // 上次整定状态更新
#endif // __CONVERT_H__