view Documentations/setGPLHeader.py @ 976:0b81ac558e89
Evo_2_23
Devbugfix UART buffer cleaning:
In the previous version a buffer cleaning function was used which resets the ringbuffer read index. As result the processing of data was stopped until the DMA write comes to the index 0. When reaching it the complete buffer was proceeded including possibly invalid data.
The usage of the cleanbuffer function was replaced by the flush buffer function (meaning the data is discarded but the data index is maintained). There was already a function for this. Because the function was 99% the same as the read function, it was integrated into the ReadData function. Calling the function with parameter flush = 1 will result in a buffer flush.
The workaround of the previous revision was updated to only be applied in case a DiveO2 sensor is operated in stand alone mode.
author
Ideenmodellierer
date
Wed, 29 Jan 2025 17:21:20 +0100 (2 months ago)
parents
6237372f76a4
children
line source
#! /usr/bin/env python3+ −
+ −
from __future__ import print_function+ −
import os, sys, glob,re, codecs+ −
+ −
##############################################################################+ −
+ −
OSTC4=os.getcwd()+ −
if not os.path.exists( os.path.join(OSTC4, 'Discovery') ):+ −
raise 'Wrong start directory...'+ −
+ −
##############################################################################+ −
+ −
def walk(OSTC4):+ −
for dir in ['BootLoader', 'Common', 'Discovery', 'FontPack', 'Small_CPU']:+ −
# Make sure we have the top directory...+ −
if not os.path.exists( os.path.join(OSTC4, dir) ):+ −
raise 'Missing ' + dir+ −
+ −
# Then walk in all its existing source sub-directories...+ −
for sub in ['.', 'Inc', 'Src']:+ −
path = os.path.join(OSTC4, dir, sub)+ −
if not os.path.exists(path):+ −
continue+ −
print(path + ':')+ −
for file in sorted( glob.iglob( os.path.join(path, '*.[chs]') ) ):+ −
try:+ −
work(file)+ −
except Exception as e:+ −
raise RuntimeError('Cannot process ' + file + ':\n\t' + str(e))+ −
+ −
##############################################################################+ −
+ −
with open(os.path.join(OSTC4, 'Documentations', 'GPL_template.txt')) as f:+ −
template = f.read()+ −
+ −
def work(file):+ −
+ −
# Unclear what is done if encoding is not yet UTF-8...+ −
with open(file, 'rt', encoding='cp1252') as f:+ −
lines = f.read().splitlines()+ −
+ −
# Set defaults+ −
kw = {}+ −
kw['file'] = file.replace(OSTC4+'/', '')+ −
kw['brief'] = ''+ −
kw['date'] = '2018'+ −
+ −
# Try to gather info from existing header, if any:+ −
for line in lines:+ −
# Skip files that already have a GNU license:+ −
if 'GNU General Public License' in line:+ −
print('(done)\t' + file)+ −
return+ −
+ −
get(line, 'brief', kw)+ −
get(line, 'date', kw)+ −
+ −
# Replace kw in header+ −
header = template+ −
for k,v in kw.items():+ −
header = header.replace('$'+k, v)+ −
+ −
# Overwrite resulting file, normalizing EOL+ −
with open(file, 'wt', encoding='utf-8') as f:+ −
for line in header.splitlines():+ −
f.write(line.rstrip() + '\n')+ −
for line in lines:+ −
f.write(line.rstrip() + '\n')+ −
print('+\t' + file)+ −
+ −
##############################################################################+ −
+ −
def get(line, word, kw):+ −
m = re.search('(@|\\\\)' + word + '\s*(.*)', line)+ −
if m:+ −
kw[word] = m.group(2)+ −
+ −
##############################################################################+ −
+ −
walk(OSTC4)+ −