更新参数管理模块代码生成逻辑;

This commit is contained in:
2024-11-04 01:39:56 +08:00
parent 3d1a9e2b1d
commit 06c331080e
5 changed files with 120 additions and 10 deletions

View File

@@ -9,13 +9,32 @@
'''
import numpy as np
from pandas import DataFrame
from pandas import Series, DataFrame
def code_cbb_param(sheet: DataFrame) -> str|None:
""" 参数页代码生成 """
pass
def code_cbb_params(sheets: dict[str, DataFrame]) -> str|None:
""" 完整参数模块配置代码生成 """
pass
pass
param_pages = []
for name, sheet in sheets.items():
""" 解析表格文件页为代码结构体 """
print(sheet.head())
page_meta = sheet.iloc[:9, 3:4].T.reset_index()
page_meta.columns = sheet.iloc[:9, 2:3].T.reset_index().loc[0]
page_data = sheet.iloc[10:, :].reset_index(drop=True)
page_data.columns = sheet.iloc[9,:]
param_page = {
'name': name,
'info': page_meta.loc[0],
'data': page_data
}
param_pages.append(param_page)
for info in param_pages:
""" 依据结构体生成参数页代码 """
file_name = f"param_{info['name'].lower()}_defination.h"
file_text =
def file_header():

View File

@@ -0,0 +1,68 @@
/*
* =====================================================================================
*
* Filename: {{info@name#lower}}
*
* Description:
*
* Version: 1.0
* Created: {{`time.ctime()`}}
* Revision: none
* Compiler: gcc
*
* Author: Linghtiin
* Organization: Topscomm
*
* =====================================================================================
*/
#ifndef __PARAM_{{info@name#upper}}_DEFINATION_H__
#define __PARAM_{{info@name#upper}}_DEFINATION_H__
#include <stdint.h>
#include <stddef.h>
#define {{info@name#upper}}_PARAM_NUM ({{info@data.shape:0}})
<<for >>
#define {{info@name#upper}}_PARAM_{{info@data#upper}}_SIZE (4)
#define COMM_PARAM_REMOTE_PORT_SIZE (sizeof(uint16_t))
#define COMM_PARAM_INTERACTIVE_CYCLE_4G_SIZE (sizeof(uint16_t))
#define COMM_PARAM_GPRS_COM_OVER_TIME_SIZE (sizeof(uint16_t))
#define COMM_PARAM_CAN_ENABLE_SIZE (sizeof(uint8_t))
#define COMM_PARAM_CAN_DEV_ID_SIZE (sizeof(uint16_t))
#define COMM_PARAM_CAN_PARALLEL_NUM_SIZE (sizeof(uint16_t))
#define COMM_PARAM_COM_OVER_TIME_SIZE (sizeof(uint16_t))
#define COMM_PARAM_LOG_LEVEL_SIZE (sizeof(uint8_t))
#define COMM_PARAM_LOG_OUTPUT_SIZE (sizeof(uint8_t))
#define COMM_PARAM_LOG_CHANNEL_SIZE (sizeof(uint8_t))
#define COMM_PARAM_LOG_FILE_SIZE_SIZE (sizeof(uint16_t))
#define COMM_PARAM_LOG_FILE_CNT_SIZE (sizeof(uint16_t))
#define COMM_PARAM_LOG_UDP_PORT_SIZE (sizeof(uint16_t))
#define COMM_PARAM_LOG_UDP_ETH_IP_SIZE (4)
#define COMM_PARAM_PLC_CHECK_COMM_PERIOD_SIZE (sizeof(uint16_t))
typedef struct
{
uint8_t remote_ip[COMM_PARAM_REMOTE_IP_SIZE]; /* 主站IP */
uint16_t remote_port; /* 主站端口号 */
uint16_t interactive_cycle_4g; /* 4G交互周期 */
uint16_t gprs_com_over_time; /* 4G通信超时阈值 */
uint8_t can_enable; /* CAN使能 */
uint16_t can_dev_id; /* CAN并机ID */
uint16_t can_parallel_num; /* CAN并机数量 */
uint16_t com_over_time; /* 通信故障判定时间 */
uint8_t log_level; /* 日志级别 */
uint8_t log_output; /* 日志输出模式 */
uint8_t log_channel; /* 日志监控通道 */
uint16_t log_file_size; /* 日志文件大小 */
uint16_t log_file_cnt; /* 日志文件数量 */
uint16_t log_udp_port; /* 日志网络端口 */
uint8_t log_udp_eth_ip[COMM_PARAM_LOG_UDP_ETH_IP_SIZE]; /* 日志网络地址 */
uint16_t plc_check_comm_period; /* 载波通信超时判断周期 */
} comm_param_t;
#endif /* ----- #ifndef __PARAM_{{info@name#upper}}_DEFINATION_H__ ----- */