sanqi73 před 3 dny
rodič
revize
1603745f23
2 změnil soubory, kde provedl 128 přidání a 0 odebrání
  1. 6 0
      README.md
  2. 122 0
      server.py

+ 6 - 0
README.md

@@ -25,3 +25,9 @@ npm run lint
 ### Customize configuration
 
 See [Configuration Reference](https://cli.vuejs.org/config/).
+
+
+
+后端Flask 文件
+
+server.py

+ 122 - 0
server.py

@@ -0,0 +1,122 @@
+from flask import Flask, request, jsonify
+import configparser
+import os
+from flask_cors import CORS
+import logging
+
+app = Flask(__name__)
+
+CORS(app)
+
+CONFIG_FILE_PATH = '/oem/usr/etc/myconf/IMX283_set.conf'
+USER_CONFIG_PATH = '/oem/usr/etc/myconf/USER.conf'
+
+config = configparser.ConfigParser()
+user_config = configparser.ConfigParser()
+
+def load_config():
+    global config
+    try:
+        config.read(CONFIG_FILE_PATH, encoding='utf-8')
+    except Exception as e:
+        app.logger.error(f"Error loading config file: {e}")
+
+def load_user_config():
+    global user_config
+    try:
+        user_config.read(USER_CONFIG_PATH,encoding='utf-8')
+    except Exception as e:
+        app.logger.error(f"Error loading config file: {e}")
+
+load_config()
+load_user_config()
+
+
+@app.route('/getUserConfig',methods=['GET'])
+def get_user_config():
+    try:
+        user_config_dict = {}
+        for section in user_config.sections():
+            user_config_dict[section] = {}
+            for key,value in user_config.items(section):
+                user_config_dict[section][key] =value
+
+        return jsonify(user_config_dict),200
+    except Exception as e:
+        app.logger.error(f"Error reading config: {e}")
+        return jsonify({"error": str(e), 'code': 500}), 500
+
+
+@app.route('/getConfig', methods=['GET'])
+def get_config():
+    try:
+        config_dict = {}
+        for section in config.sections():
+            config_dict[section] = {}
+            for key, value in config.items(section):
+                config_dict[section][key] = value
+
+        return jsonify(config_dict), 200
+    except Exception as e:
+        app.logger.error(f"Error reading config: {e}")
+        return jsonify({"error": str(e), 'code': 500}), 500
+
+@app.route('/setUserConfig',methods=['POST'])
+def set_user_config():
+    try:
+        update_config = request.json
+        if not update_config:
+            return jsonify({"error": "No configuration provided", 'code': 400}), 400
+        for section,items in update_config.items():
+            if section not in config:
+                user_config.add_section(section)
+            for key ,value in items.items():
+                app.logger.debug(f"Setting {section} -> {key} = {value}")
+                user_config.set(section, key, value)
+        with open(USER_CONFIG_PATH, 'w', encoding='utf-8') as configfile:
+            user_config.write(configfile)
+
+        load_user_config()
+
+        return jsonify({"message": "Configuration updated successfully", 'code': 200}), 200
+
+    except Exception as e:
+        app.logger.error(f"Error updating config: {e}")
+        return jsonify({"error": str(e), 'code': 500}), 500
+
+@app.route('/setConfig', methods=['POST'])
+def set_config():
+    try:
+        updated_config = request.json
+        if not updated_config:
+            return jsonify({"error": "No configuration provided", 'code': 400}), 400
+
+        for section, items in updated_config.items():
+            if section not in config:
+                config.add_section(section)
+            for key, value in items.items():
+                app.logger.debug(f"Setting {section} -> {key} = {value}")
+                config.set(section, key, value)
+
+        with open(CONFIG_FILE_PATH, 'w', encoding='utf-8') as configfile:
+            config.write(configfile)
+
+        load_config()
+
+        return jsonify({"message": "Configuration updated successfully", 'code': 200}), 200
+
+    except Exception as e:
+        app.logger.error(f"Error updating config: {e}")
+        return jsonify({"error": str(e), 'code': 500}), 500
+
+@app.route('/reboot', methods=['POST'])
+def reboot():
+    try:
+        os.system('reboot')  # 重启系统
+        return jsonify({'message': 'System is rebooting...', 'code': 200}), 200  # 返回消息和状态码
+    except Exception as e:
+        return jsonify({'message': 'Error occurred while attempting to reboot.', 'error': str(e), 'code': 500}), 500  # 出错时返回错误信息和状态码
+
+if __name__ == '__main__':
+    app.run(debug=True, host='0.0.0.0', port=5000)
+