mirror of
https://git.mirrors.martin98.com/https://github.com/luc-github/ESP3D.git
synced 2025-08-05 03:21:11 +08:00

### Maintenance page * Add add tab color for mobile view * Add spellcheck off / autocorect off in input * Add disconnect button when authenticate enabled * Add Invalid user or password message when authentication failed ### Board support * Add ESP32 S2 support * Add ESP32 S3 support * Add ESP32 C3 support ### ESP commands * Add command 701 to control GCODE streaming * Remove command 901 as duplicate * Update command 420 to add more details * Use text as default output * All json on all commands for formated output ### Core * Add benchmak function to check transfer speed (for test only-not production) * Merge code for ESP3DLib support * Add better printer display support (M117 / Serial TFT) * Use ESP32 analogWrite instead of emulated one ### Modules * Display * Refactor code * Remove SPI ILI 9341 / 9488 support as not suitable * Add ST7789 support (135x240 / 240x240) * Filesystem * Bug fixes due to esp core updates * Better SD sharing mecanism * Better global FS management * FTP * Add SD sharing support * Better global FS management * GCODE Host * Add basic support for macro files * Add ESP command support * Use not blocking method to stream commands / handle response * Notifications * Add IFTTT notification service * Add WebUI notification * Add ESP3D display notification * WebDav * Add SD sharing support * Add bug fix from https://github.com/d-a-v/ESPWebDAV * Better global FS management * Websocket * Add function to handle zombies connections * WiFi * Fix connection to AP sometime fail * Fix low signal not diplayed in ESP420 even connected * Add AP Setup mode ### Libraries * Update SDFat-2.0.6 to 2.1.2 * Update ESP32SSDP 1.1.1 to 1.2.0 * Update TFT_eSPI-1.4.11 to 2.4.61 * Update arduinoWebSockets-2.3.5 to 2.3.6 * Update esp8266-oled-ssd1306-4.0.0 to 4.3.0 * Remove lvgl support ### Tools * Add I2C scanner script * Add python script to simulate/stress printer serial communication ### PlatformIO * Use latest 4.4.0 Espressif32 release (ESP32-arduino core 2.0.3) * Add fix for Flash more than 4MB * Add Esp32 S2/S3/C3 env * Add ESP32-ST7789 / esp32-TTGO_T_Display env
133 lines
4.2 KiB
Python
133 lines
4.2 KiB
Python
#!/usr/bin/python3
|
|
|
|
import json
|
|
import configparser
|
|
import argparse
|
|
import re
|
|
import os
|
|
import datetime
|
|
|
|
travis_dir = os.path.dirname(os.path.abspath(__file__))
|
|
base_dir = os.path.abspath(travis_dir + "/../")
|
|
|
|
def write_header_file(version):
|
|
hvs = version.split('.')
|
|
intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2])
|
|
now = datetime.datetime.now()
|
|
|
|
text = f'''/**
|
|
* @file WebSocketsVersion.h
|
|
* @date {now.strftime("%d.%m.%Y")}
|
|
* @author Markus Sattler
|
|
*
|
|
* Copyright (c) 2015 Markus Sattler. All rights reserved.
|
|
* This file is part of the WebSockets for Arduino.
|
|
*
|
|
* This library is free software; you can redistribute it and/or
|
|
* modify it under the terms of the GNU Lesser General Public
|
|
* License as published by the Free Software Foundation; either
|
|
* version 2.1 of the License, or (at your option) any later version.
|
|
*
|
|
* This library is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
* Lesser General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU Lesser General Public
|
|
* License along with this library; if not, write to the Free Software
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
|
*
|
|
*/
|
|
|
|
#ifndef WEBSOCKETSVERSION_H_
|
|
#define WEBSOCKETSVERSION_H_
|
|
|
|
#define WEBSOCKETS_VERSION "{version}"
|
|
|
|
#define WEBSOCKETS_VERSION_MAJOR {hvs[0]}
|
|
#define WEBSOCKETS_VERSION_MINOR {hvs[1]}
|
|
#define WEBSOCKETS_VERSION_PATCH {hvs[2]}
|
|
|
|
#define WEBSOCKETS_VERSION_INT {intversion}
|
|
|
|
#endif /* WEBSOCKETSVERSION_H_ */
|
|
'''
|
|
with open(f'{base_dir}/src/WebSocketsVersion.h', 'w') as f:
|
|
f.write(text)
|
|
|
|
|
|
def get_library_properties_version():
|
|
library_properties = {}
|
|
with open(f'{base_dir}/library.properties', 'r') as f:
|
|
library_properties = configparser.ConfigParser()
|
|
library_properties.read_string('[root]\n' + f.read())
|
|
return library_properties['root']['version']
|
|
|
|
|
|
def get_library_json_version():
|
|
library_json = {}
|
|
with open(f'{base_dir}/library.json', 'r') as f:
|
|
library_json = json.load(f)
|
|
return library_json['version']
|
|
|
|
|
|
def get_header_versions():
|
|
data = {}
|
|
define = re.compile('^#define WEBSOCKETS_VERSION_?(.*) "?([0-9\.]*)"?$')
|
|
with open(f'{base_dir}/src/WebSocketsVersion.h', 'r') as f:
|
|
for line in f:
|
|
m = define.match(line)
|
|
if m:
|
|
name = m[1]
|
|
if name == "":
|
|
name = "VERSION"
|
|
data[name] = m[2]
|
|
return data
|
|
|
|
|
|
parser = argparse.ArgumentParser(description='Checks and update Version files')
|
|
parser.add_argument(
|
|
'--update', action='store_true', default=False)
|
|
parser.add_argument(
|
|
'--check', action='store_true', default=True)
|
|
|
|
args = parser.parse_args()
|
|
|
|
if args.update:
|
|
library_properties_version = get_library_properties_version()
|
|
|
|
with open(f'{base_dir}/library.json', 'r') as f:
|
|
library_json = json.load(f)
|
|
|
|
library_json['version'] = library_properties_version
|
|
|
|
with open(f'{base_dir}/library.json', 'w') as f:
|
|
json.dump(library_json, f, indent=4, sort_keys=True)
|
|
|
|
write_header_file(library_properties_version)
|
|
|
|
|
|
library_json_version = get_library_json_version()
|
|
library_properties_version = get_library_properties_version()
|
|
header_version = get_header_versions()
|
|
|
|
print("WebSocketsVersion.h", header_version)
|
|
print(f"library.json: {library_json_version}")
|
|
print(f"library.properties: {library_properties_version}")
|
|
|
|
if args.check:
|
|
if library_json_version != library_properties_version or header_version['VERSION'] != library_properties_version:
|
|
raise Exception('versions did not match!')
|
|
|
|
hvs = header_version['VERSION'].split('.')
|
|
if header_version['MAJOR'] != hvs[0]:
|
|
raise Exception('header MAJOR version wrong!')
|
|
if header_version['MINOR'] != hvs[1]:
|
|
raise Exception('header MINOR version wrong!')
|
|
if header_version['PATCH'] != hvs[2]:
|
|
raise Exception('header PATCH version wrong!')
|
|
|
|
intversion = int(hvs[0]) * 1000000 + int(hvs[1]) * 1000 + int(hvs[2])
|
|
if int(header_version['INT']) != intversion:
|
|
raise Exception('header INT version wrong!')
|