gateway_mcu/CH32V303-FreeRTOS/App/application/Src/parameter.c

184 lines
3.4 KiB
C

#include "parameter.h"
#pragma pack(push, 1)
typedef struct _parameterInfo {
float WorkCurrent; //工作电流
float WorkVoltage; //工作电压
float Temperature; //温度
uint32_t upWard_Uart_Baud; //与网关通信波特率
uint32_t J1_485_Baud; //与J1_485通信波特率
uint32_t J2_485_Baud; //与J2_485通信波特率
uint32_t J3_485_Baud; //与J3_485通信波特率
uint32_t J4_485_Baud; //与J4_485通信波特率
uint32_t J5_0_485_Baud; //与J5_0_485通信波特率
}parameterInfo;
#pragma pack(pop)
static parameterInfo parameter;
#define startConfigAddr 0x00
#define configSize (sizeof(configInfo))
/**
* @brief 读取配置文件参数
* @param
* @retval
*/
void readConfigParameter(void)
{
configInfo tempConfig;
read_Flash((uint8_t *)&tempConfig, startConfigAddr, configSize);
/* 配置文件校验通过 */
if (tempConfig.crc == checkModebusCrc((uint8_t *)&tempConfig, configSize - 2)) {
parameter.J1_485_Baud = tempConfig.J1_485_Baud;
parameter.J2_485_Baud = tempConfig.J2_485_Baud;
parameter.J3_485_Baud = tempConfig.J3_485_Baud;
parameter.J4_485_Baud = tempConfig.J4_485_Baud;
parameter.J5_0_485_Baud = tempConfig.J5_0_485_Baud;
parameter.upWard_Uart_Baud = tempConfig.upWard_Uart_Baud;
}
/* 未通过则使用默认参数 */
else {
parameter.J1_485_Baud = 9600;
parameter.J2_485_Baud = 9600;
parameter.J3_485_Baud = 9600;
parameter.J4_485_Baud = 9600;
parameter.J5_0_485_Baud = 9600;
parameter.upWard_Uart_Baud = 115200;
}
}
/**
* @brief 写入配置文件参数
* @param inConfigInfo 配置文件
* @retval
*/
void writeConfigParameter(configInfo inConfigInfo)
{
write_Flash((uint8_t *)&inConfigInfo, startConfigAddr, configSize);
}
/**
* @brief 得到工作电流
* @param
* @retval
*/
float getWorkCurrent(void)
{
return parameter.WorkCurrent;
}
/**
* @brief 设置工作电流
* @param
* @retval
*/
void setWorkCurrent(float Curr)
{
parameter.WorkCurrent = Curr;
}
/**
* @brief 得到工作电压
* @param
* @retval
*/
float getWorkVoltage(void)
{
return parameter.WorkVoltage;
}
/**
* @brief 设置工作电压
* @param
* @retval
*/
void setWorkVoltage(float Voltage)
{
parameter.WorkVoltage = Voltage;
}
/**
* @brief 得到温度
* @param
* @retval
*/
float getTemperature(void)
{
return parameter.Temperature;
}
/**
* @brief 设置温度
* @param
* @retval
*/
void setTemperature(float Temperature)
{
parameter.Temperature = Temperature;
}
/**
* @brief 得到对智能模块通信波特率
* @param
* @retval
*/
uint32_t getUpWard_Uart_Baud(void)
{
return parameter.upWard_Uart_Baud;
}
/**
* @brief 得到对J1通信波特率
* @param
* @retval
*/
uint32_t getJ1_485_Baud(void)
{
return parameter.J1_485_Baud;
}
/**
* @brief 得到对J2通信波特率
* @param
* @retval
*/
uint32_t getJ2_485_Baud(void)
{
return parameter.J2_485_Baud;
}
/**
* @brief 得到对J3通信波特率
* @param
* @retval
*/
uint32_t getJ3_485_Baud(void)
{
return parameter.J3_485_Baud;
}
/**
* @brief 得到对J4通信波特率
* @param
* @retval
*/
uint32_t getJ4_485_Baud(void)
{
return parameter.J4_485_Baud;
}
/**
* @brief 得到对J5_0通信波特率
* @param
* @retval
*/
uint32_t getJ5_0_485_Baud(void)
{
return parameter.J5_0_485_Baud;
}