feat():initial version
This commit is contained in:
112
code_generator/backup/old/main.py
Normal file
112
code_generator/backup/old/main.py
Normal file
@@ -0,0 +1,112 @@
|
||||
# coding=utf-8
|
||||
import time
|
||||
import tkinter as tk
|
||||
from tkinter import Button, Checkbutton, Entry, Image, IntVar, Label, StringVar, scrolledtext, ttk, filedialog, messagebox
|
||||
from datetime import datetime
|
||||
from string import Template
|
||||
import tkinter_ui as gui
|
||||
import template as tmpl
|
||||
|
||||
|
||||
# 获取当前时间
|
||||
def Time(): #getCurrentTime
|
||||
current_time = time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
|
||||
return current_time
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
# #全局风格类型变量
|
||||
# entry_width = 30
|
||||
# short_entry_width = 15
|
||||
# font_pix = 15
|
||||
# font_type = "微软雅黑"
|
||||
# #window.geometry('1000x500+0+0')
|
||||
# #window.resizable(0,0)
|
||||
# #setWindowCenter(window, 700, 400) #窗口居中,传入窗口句柄和窗口宽高
|
||||
|
||||
#主窗口
|
||||
#实例化一个窗体
|
||||
window = gui.instantiate_the_window("Someip Service Code Generator") #窗口名
|
||||
note = gui.instantiate_the_note(window)
|
||||
#在窗体win中创建一个Notebook,并承载以下两个选项卡
|
||||
TabMain = gui.instantiate_the_tab(note, "Main") #选项卡1
|
||||
Tab2 = gui.instantiate_the_tab(note, "Tab2")
|
||||
|
||||
## 以下为Main选项卡
|
||||
# 第一组 :Create/Modify
|
||||
group_app = gui.instantiate_the_group(TabMain,"App") #创建Frame一组
|
||||
|
||||
|
||||
|
||||
#设置输入框控件,使用textvariable参数来接收变量
|
||||
# 定义输入框1
|
||||
label1 = Label(group_app, text='Run Config File Path')
|
||||
label1.grid(sticky="w", padx=15)
|
||||
entry1 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.runConfigFilename)
|
||||
entry1.grid(row=0,column=1,sticky="w")
|
||||
entry1.config(state='normal') #'readonly'
|
||||
# Button(group_app, text='...', command=open_file).grid(row=0, column=2)
|
||||
# 定义输入框2
|
||||
label2 = Label(group_app, text='App name')
|
||||
label2.grid(sticky="w", padx=15)
|
||||
entry2 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.appName)
|
||||
entry2.grid(row=1,column=1,sticky="w")
|
||||
# 定义输入框3
|
||||
label3 = Label(group_app, text='Service ID')
|
||||
label3.grid(sticky="w", padx=15)
|
||||
entry3 = Entry(group_app, width=tmpl.entry_width, textvariable=tmpl.serviceID)
|
||||
entry3.grid(row=2,column=1)
|
||||
entry3.config(state='readonly')
|
||||
# 定义输入框4
|
||||
label4 = Label(group_app, text='Instance ID')
|
||||
label4.grid(sticky="w", padx=15)
|
||||
entry4 = Entry(group_app, width=tmpl.ntry_width, textvariable=tmpl.instanceID)
|
||||
entry4.grid(row=3,column=1)
|
||||
entry4.config(state='readonly')
|
||||
|
||||
|
||||
# 设置复选框控件,使用variable参数来接收变量
|
||||
check0 = Checkbutton(window, text="use_tcp",variable = tmpl.use_tcp,onvalue=1,offvalue=0)
|
||||
check1 = Checkbutton(window, text="offer_F-F_method",variable = tmpl.offer_F_F_method,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
check2 = Checkbutton(window, text="offer_R-R_method",variable = tmpl.offer_R_R_method,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
check3 = Checkbutton(window, text="offer_setter",variable = tmpl.offer_setter,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
check4 = Checkbutton(window, text="offer_getter",variable = tmpl.offer_getter,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
check56 = Checkbutton(window, text="offer_event",variable = tmpl.offer_event,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
check78 = Checkbutton(window, text="offer_field_notifier",variable = tmpl.offer_field_notifier,onvalue=1,offvalue=0, command=tmpl.entryState)
|
||||
|
||||
check0.grid(sticky="w")
|
||||
check1.grid(sticky="w")
|
||||
check2.grid(sticky="w")
|
||||
check3.grid(sticky="w")
|
||||
check4.grid(sticky="w")
|
||||
check56.grid(sticky="w")
|
||||
check78.grid(sticky="w")
|
||||
|
||||
# 设置各种服务类型的IDs,使用textvariable参数来接收变量
|
||||
idEntry1 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.F_F_method_ids)
|
||||
idEntry2 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.R_R_method_ids)
|
||||
idEntry3 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.setter_ids)
|
||||
idEntry4 = Entry(window, width=tmpl.entry_width, textvariable=tmpl.getter_ids)
|
||||
idEntry5 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.eventgroup_ids)
|
||||
idEntry6 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.event_ids)
|
||||
idEntry7 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.ield_eventgroup_ids)
|
||||
idEntry8 = Entry(window, width=tmpl.short_entry_width, textvariable=tmpl.field_event_ids)
|
||||
|
||||
idEntry1.grid_forget()
|
||||
idEntry2.grid_forget()
|
||||
idEntry3.grid_forget()
|
||||
idEntry4.grid_forget()
|
||||
idEntry5.grid_forget()
|
||||
idEntry6.grid_forget()
|
||||
idEntry7.grid_forget()
|
||||
idEntry8.grid_forget()
|
||||
|
||||
# 按钮
|
||||
button1 = Button(window, text="Generate", command=tmpl.generate)
|
||||
button1.grid(row=11, column=0, sticky="w", padx=15, pady=5)
|
||||
|
||||
button2 = Button(window, text='Exit',command=window.quit)
|
||||
button2.grid(row=11, column=1, sticky="e", padx=15, pady=5)
|
||||
|
||||
window.mainloop()
|
||||
54
code_generator/backup/old/sample_cfg_ids.hpp.template
Normal file
54
code_generator/backup/old/sample_cfg_ids.hpp.template
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
|
||||
/// @author liuzhimin@huaxu.com
|
||||
|
||||
/// @generate date: ${GENE_DATE}
|
||||
|
||||
/// [注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置py脚本来重新生成.]
|
||||
|
||||
#ifndef VSOMEIP_${APP_NAME}_CFG_IDS_HPP
|
||||
#define VSOMEIP_${APP_NAME}_CFG_IDS_HPP
|
||||
|
||||
#define VSOMEIP_CONFIGURATION "${RUN_CONFIG_FILENAME}"
|
||||
#define APP_NAME "${APP_NAME}"
|
||||
|
||||
#define ${APP_NAME}_SERVICE_ID ${SERVICE_ID}
|
||||
#define ${APP_NAME}_INSTANCE_ID ${INSTANCE_ID}
|
||||
|
||||
#define USE_TCP ${USE_TCP}
|
||||
|
||||
#define OFFER_F_F_METHOD ${OFFER_F_F_METHOD}
|
||||
#define OFFER_R_R_METHOD ${OFFER_R_R_METHOD}
|
||||
#define OFFER_SETTER ${OFFER_SETTER}
|
||||
#define OFFER_GETTER ${OFFER_GETTER}
|
||||
#define OFFER_EVENT ${OFFER_EVENT}
|
||||
#define OFFER_FIELD_EVENT ${OFFER_FIELD_EVENT}
|
||||
|
||||
#if OFFER_F_F_METHOD
|
||||
#define ${APP_NAME}_${FF_METHOD_NAME}_F_F_METHOD_ID 0x0100 //0x0101,0x0102...
|
||||
#endif
|
||||
|
||||
#if OFFER_R_R_METHOD
|
||||
#define ${APP_NAME}_${RR_METHOD_NAME}_R_R_METHOD_ID 0x0200 //0x0201,0x0202...
|
||||
#endif
|
||||
|
||||
#if OFFER_GETTER
|
||||
#define ${APP_NAME}_${GET_METHOD_NAME}_GET_METHOD_ID 0x0300 //0x0301,0x0302...
|
||||
#endif
|
||||
|
||||
#if OFFER_SETTER
|
||||
#define ${APP_NAME}_${SET_METHOD_NAME}_SET_METHOD_ID 0x0400 //0x0401,0x0402...
|
||||
#endif
|
||||
|
||||
#if OFFER_EVENT
|
||||
#define ${APP_NAME}_${EVENTGROUP_NAME}_EVENTGROUP_ID 0x8100 //0x8200,0x8300...
|
||||
#define ${APP_NAME}_${EVENT_NAME}_EVENT_ID 0x8101 //0x8102,0x8103...
|
||||
#endif
|
||||
|
||||
#if OFFER_FIELD_EVENT
|
||||
#define ${APP_NAME}_${FIELD_EVENTGROUP_NAME}_FIELD_EVENTGROUP_ID 0x8800 //0x8900,0x8a00...
|
||||
#define ${APP_NAME}_${FIELD_EVENT_NAME}_FIELD_EVENT_ID 0x8801 //0x8802,0x8803...
|
||||
#endif
|
||||
|
||||
#endif // VSOMEIP_EXAMPLES_SAMPLE_CFG_IDS_HPP
|
||||
|
||||
54
code_generator/backup/old/tcu_cfg_ids.hpp
Normal file
54
code_generator/backup/old/tcu_cfg_ids.hpp
Normal file
@@ -0,0 +1,54 @@
|
||||
|
||||
|
||||
/// @author liuzhimin@huaxu.com
|
||||
|
||||
/// @generate date: 2022-07-20 16:22:40
|
||||
|
||||
/// [注:本文件为自动生成,不需要人为编辑,若有修改,请通过配置py脚本来重新生成.]
|
||||
|
||||
#ifndef VSOMEIP_TCU_CFG_IDS_HPP
|
||||
#define VSOMEIP_TCU_CFG_IDS_HPP
|
||||
|
||||
#define VSOMEIP_CONFIGURATION "/etc/vsomeip"
|
||||
#define APP_NAME "TCU"
|
||||
|
||||
#define TCU_SERVICE_ID 0x1000
|
||||
#define TCU_INSTANCE_ID 0x2000
|
||||
|
||||
#define USE_TCP 1
|
||||
|
||||
#define OFFER_F_F_METHOD 1
|
||||
#define OFFER_R_R_METHOD 1
|
||||
#define OFFER_SETTER 1
|
||||
#define OFFER_GETTER 1
|
||||
#define OFFER_EVENT 0
|
||||
#define OFFER_FIELD_EVENT 1
|
||||
|
||||
#if OFFER_F_F_METHOD
|
||||
#define TCU_ADASOFF_F_F_METHOD_ID 0x0100 //0x0101,0x0102...
|
||||
#endif
|
||||
|
||||
#if OFFER_R_R_METHOD
|
||||
#define TCU_CAMSTATUS_R_R_METHOD_ID 0x0200 //0x0201,0x0202...
|
||||
#endif
|
||||
|
||||
#if OFFER_GETTER
|
||||
#define TCU_DISTANCE_GET_METHOD_ID 0x0300 //0x0301,0x0302...
|
||||
#endif
|
||||
|
||||
#if OFFER_SETTER
|
||||
#define TCU_LIMITEDSPEED_SET_METHOD_ID 0x0400 //0x0401,0x0402...
|
||||
#endif
|
||||
|
||||
#if OFFER_EVENT
|
||||
#define TCU_SIGNDETECTED_EVENTGROUP_ID 0x8100 //0x8200,0x8300...
|
||||
#define TCU_SPEEDLIMITSIGNDETECTED_EVENT_ID 0x8101 //0x8102,0x8103...
|
||||
#endif
|
||||
|
||||
#if OFFER_FIELD_EVENT
|
||||
#define TCU_SIGNDETECTED_FIELD_EVENTGROUP_ID 0x8800 //0x8900,0x8a00...
|
||||
#define TCU_SPEEDLIMITSIGNDETECTED_FIELD_EVENT_ID 0x8801 //0x8802,0x8803...
|
||||
#endif
|
||||
|
||||
#endif // VSOMEIP_EXAMPLES_SAMPLE_CFG_IDS_HPP
|
||||
|
||||
112
code_generator/backup/old/template.py
Normal file
112
code_generator/backup/old/template.py
Normal file
@@ -0,0 +1,112 @@
|
||||
# coding=utf-8
|
||||
from datetime import datetime
|
||||
from string import Template
|
||||
from tkinter import Image, IntVar, StringVar,filedialog, messagebox
|
||||
|
||||
#以下是所有需获取的变量
|
||||
runConfigFilename = StringVar("/etc/vsomeip")
|
||||
appName = StringVar(None,"tcu")
|
||||
serviceID = StringVar(None,"0x1000")
|
||||
instanceID = StringVar(None,"0x2000")
|
||||
|
||||
use_tcp = IntVar()
|
||||
offer_F_F_method = IntVar()
|
||||
offer_R_R_method = IntVar()
|
||||
offer_setter = IntVar()
|
||||
offer_getter = IntVar()
|
||||
offer_event = IntVar()
|
||||
offer_field_notifier = IntVar()
|
||||
|
||||
F_F_method_ids = StringVar(None,"adasOFF")
|
||||
R_R_method_ids = StringVar(None,"camStatus")
|
||||
setter_ids = StringVar(None,"limitedSpeed")
|
||||
getter_ids = StringVar(None,"distance")
|
||||
eventgroup_ids = StringVar(None,"SignDetected")
|
||||
event_ids = StringVar(None,"speedLimitSignDetected")
|
||||
field_eventgroup_ids = StringVar(None,"SignDetected")
|
||||
field_event_ids = StringVar(None,"speedLimitSignDetected")
|
||||
|
||||
def generate():
|
||||
filePath = r'%s_cfg_ids.hpp' % appName.get().lower()
|
||||
class_file = open(filePath,'w')
|
||||
lines = []
|
||||
#模版文件
|
||||
template_file = open(r'sample_cfg_ids.hpp.template','r')
|
||||
tmpl = Template(template_file.read())
|
||||
#模版替换
|
||||
lines.append(tmpl.substitute(
|
||||
GENE_DATE = datetime.now().strftime('%Y-%m-%d %H:%M:%S'), #代码生成日期设置
|
||||
RUN_CONFIG_FILENAME = runConfigFilename.get(),
|
||||
APP_NAME = appName.get().upper(),
|
||||
#MODULE_NAME = appName.get().upper(),
|
||||
SERVICE_ID = serviceID.get(),
|
||||
INSTANCE_ID = instanceID.get(),
|
||||
USE_TCP = use_tcp.get(),
|
||||
OFFER_F_F_METHOD = offer_F_F_method.get(),
|
||||
OFFER_R_R_METHOD = offer_R_R_method.get(),
|
||||
OFFER_SETTER = offer_setter.get(),
|
||||
OFFER_GETTER = offer_getter.get(),
|
||||
OFFER_EVENT = offer_event.get(),
|
||||
OFFER_FIELD_EVENT = offer_field_notifier.get(),
|
||||
FF_METHOD_NAME = F_F_method_ids.get().upper(),
|
||||
RR_METHOD_NAME = R_R_method_ids.get().upper(),
|
||||
GET_METHOD_NAME = getter_ids.get().upper(),
|
||||
SET_METHOD_NAME = setter_ids.get().upper(),
|
||||
EVENTGROUP_NAME = eventgroup_ids.get().upper(),
|
||||
EVENT_NAME = event_ids.get().upper(),
|
||||
FIELD_EVENTGROUP_NAME = field_eventgroup_ids.get().upper(),
|
||||
FIELD_EVENT_NAME = field_event_ids.get().upper(),
|
||||
))
|
||||
# 0.将生成的代码写入文件
|
||||
class_file.writelines(lines)
|
||||
class_file.close()
|
||||
print('generate "%s" success. ~_~' % filePath)
|
||||
messagebox.showinfo("tips",'Generate "%s" success.' % filePath)
|
||||
|
||||
def open_file():
|
||||
try:
|
||||
global file
|
||||
filepath = filedialog.askopenfilename() # 打开文件,返回该文件的完整路径
|
||||
runConfigFilename.set(filepath)
|
||||
file = Image.open(runConfigFilename.get())
|
||||
except Exception as e:
|
||||
print("您没有选择任何文件",e)
|
||||
|
||||
def entryState():
|
||||
None
|
||||
# if offer_F_F_method.get():
|
||||
# idEntry1.grid(row=5,column=1)
|
||||
# else:
|
||||
# idEntry1.grid_forget() # the same as grid_remove()
|
||||
|
||||
# if offer_R_R_method.get():
|
||||
# idEntry2.grid(row=6,column=1)
|
||||
# else:
|
||||
# idEntry2.grid_forget()
|
||||
|
||||
# if offer_setter.get():
|
||||
# idEntry3.grid(row=7,column=1)
|
||||
# else:
|
||||
# idEntry3.grid_forget()
|
||||
|
||||
# if offer_getter.get():
|
||||
# idEntry4.grid(row=8,column=1)
|
||||
# else:
|
||||
# idEntry4.grid_forget()
|
||||
|
||||
# if offer_event.get():
|
||||
# idEntry5.grid(sticky="w",row=9,column=1)
|
||||
# idEntry6.grid(sticky="e",row=9,column=1)
|
||||
# else:
|
||||
# idEntry5.grid_forget()
|
||||
# idEntry6.grid_forget()
|
||||
|
||||
# if offer_field_notifier.get():
|
||||
# idEntry7.grid(sticky="w",row=10,column=1)
|
||||
# idEntry8.grid(sticky="e",row=10,column=1)
|
||||
# else:
|
||||
# idEntry7.grid_forget()
|
||||
# idEntry8.grid_forget()
|
||||
|
||||
def modifyContent():
|
||||
print("modifyContent")
|
||||
52
code_generator/backup/old/tkinter_ui.py
Normal file
52
code_generator/backup/old/tkinter_ui.py
Normal file
@@ -0,0 +1,52 @@
|
||||
# coding=utf-8
|
||||
from doctest import OutputChecker
|
||||
import sys
|
||||
import tkinter as tk
|
||||
from tkinter import scrolledtext, ttk, messagebox
|
||||
import time
|
||||
|
||||
# 获取当前时间
|
||||
def Time(): #getCurrentTime
|
||||
current_time = time.strftime('[%Y-%m-%d %H:%M:%S]',time.localtime(time.time()))
|
||||
return current_time
|
||||
|
||||
#设置窗口宽高,以及窗口在屏幕居中显示
|
||||
def setWindowCenter(root, width, height):
|
||||
screenwidth = root.winfo_screenwidth() # 获取显示屏宽度
|
||||
screenheight = root.winfo_screenheight() # 获取显示屏高度
|
||||
size = '%dx%d+%d+%d' % (width, height, (screenwidth - width) / 2, (screenheight - height) / 2) # 设置窗口居中参数
|
||||
root.geometry(size) # 让窗口居中显示
|
||||
|
||||
def instantiate_the_window(window_name):
|
||||
#实例化一个窗体
|
||||
window = tk.Tk()
|
||||
window.title(window_name) #窗口名
|
||||
#setWindowCenter(window, 800, 400) #窗口居中,传入窗口句柄和窗口宽高
|
||||
return window
|
||||
|
||||
def instantiate_the_note(window):
|
||||
#在窗体win中创建一个Notebook,并承载以下两个选项卡
|
||||
note = ttk.Notebook(window)
|
||||
return note
|
||||
|
||||
def instantiate_the_tab(note, tab_name):
|
||||
#在窗体win中创建一个Notebook,并承载以下两个选项卡
|
||||
tab = ttk.Frame(note,relief="solid",borderwidth=1)
|
||||
note.add(tab, text = tab_name) #选项卡
|
||||
note.pack()
|
||||
return tab
|
||||
|
||||
def instantiate_the_group(tab, group_name, _row=0, _column=0, _padx=10, _pady=10):
|
||||
group = tk.LabelFrame(tab, text=group_name) #创建Frame一组
|
||||
group.grid(row = _row, column = _column, padx = _padx, pady = _pady)
|
||||
return group
|
||||
|
||||
def instantiate_the_element(group,ele_type,ele_name,row,column,padx,pady):
|
||||
#if ele_type
|
||||
None
|
||||
|
||||
# 打印日志定向到滚动文本框
|
||||
def direct_log_to_scrolledtext(tab):
|
||||
log_data_Text = scrolledtext.ScrolledText(tab, width=100, height=10, relief="solid")
|
||||
log_data_Text.pack()
|
||||
sys.stdout = OutputChecker.StdoutRedirector(log_data_Text)
|
||||
Reference in New Issue
Block a user