完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
嵌入式框架构建方案
关键内容
实战演习 main.py import yaml from mako.template import Template import os def deep_merge_dict(dict1, ditc2): for key in ditc2: if key not in dict1: dict1.setdefault(key, ditc2[key]) else: if isinstance(ditc2[key], dict): deep_merge_dict(dict1[key], ditc2[key]) else: pass def load_yaml(dir_): fn_dic = {} os.chdir(os.getcwd()) for dir_lst in os.walk(dir_): fn_lst = dir_lst[2]; for fn in fn_lst: if fn.endswith('.yml'): fn_path = dir_lst[0] + '\' + fn; if fn_path not in fn_dic: fn_dic.setdefault(fn, fn_path); else: print("- Error: 1"); else: pass return fn_dic yaml_path = load_yaml("src") data = {} for key in yaml_path: yaml_fs = open(yaml_path[key], 'r', encoding = "utf-8") yaml_data = yaml_fs.read() yaml_fs.close() data1 = yaml.load(yaml_data) deep_merge_dict(data, data1) l_data = data[':RSTMGR']['RST'].copy() for key in l_data: if isinstance(l_data[key]['PRIO'], str): if l_data[key]['PRIO'] == 'LOW': l_data[key]['PRIO'] = -1 elif l_data[key]['PRIO'] == 'HIGH': l_data[key]['PRIO'] = 0xFFFFFFFF else: print("err-----") t_data = sorted(l_data.items(), key=lambda x:x[1]['PRIO'], reverse=True) t = Template(filename = "test.tpl.c", module_directory = "C:/Python34/tpl") f = open("test.txt", 'w') txt = t.render(data = data, t_data = t_data) txt = txt.replace('r', '') f.write(txt) f.close() 资源文件.yml :RSTMGR: RST: Test: OWNER: Test PRIO: 100 FNCT: Test_vReset :RESMGR: INIT: ActiveBios: Test: OWNER: Test PRIO: 100 FNCT: Test_vInit ActiveIgn: Test: OWNER: Test PRIO: 100 FNCT: Test_vInitIgn :CYCMGR: CYC: CYCMGR_nen100ms: Test: OWNER: Test PRIO: 100 FNCT: Test_vMain DEPCY_RESON: [ActiveIgn] DEPCY_RESOFF: [] :EVMGR: EVENT: TestUpdate: OWNER: Test 模板 <%def name="print_k(area, i=0)"> % for k in area: <%_str = "--" * i%> % if isinstance(area[k], dict): ${_str}${k}: <%print_k(area[k], i+1)%> % else: ${_str}${k}: ${area[k]} % endif % endfor %def> ${print_k(data)} % for i in range(0, len(t_data)): ${t_data[1]['FNCT']}, /* RST_${t_data[1]['OWNER']} */ %endfor |
|
|
|
只有小组成员才能发言,加入小组>>
imx6ull 和 lan8742 工作起来不正常, ping 老是丢包
2780 浏览 0 评论
3351 浏览 9 评论
3030 浏览 16 评论
3525 浏览 1 评论
9131 浏览 16 评论
1258浏览 3评论
647浏览 2评论
const uint16_t Tab[10]={0}; const uint16_t *p; p = Tab;//报错是怎么回事?
638浏览 2评论
用NUC131单片机UART3作为打印口,但printf没有输出东西是什么原因?
2386浏览 2评论
NUC980DK61YC启动随机性出现Err-DDR是为什么?
1950浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-2 15:30 , Processed in 1.419171 second(s), Total 77, Slave 58 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号