mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-09-13 05:34:34 +00:00
move eth_10mbit to Network Settings
This commit is contained in:
+1
-1
@@ -12,7 +12,7 @@ This release is based on the latest Espressif/Arduino core version 3. It brings
|
|||||||
- Commands Service that can be called via MQTT or API or used in the Scheduler Service
|
- Commands Service that can be called via MQTT or API or used in the Scheduler Service
|
||||||
- option to disable factory reset [#3150](https://github.com/emsesp/EMS-ESP32/issues/3150)
|
- option to disable factory reset [#3150](https://github.com/emsesp/EMS-ESP32/issues/3150)
|
||||||
- TLS support with 4MB boards without PSRAM
|
- TLS support with 4MB boards without PSRAM
|
||||||
- added eth_10mbit, which forces 10BASE-T half-duplex & autonegotiation off, halving the PHY’s power draw. It’s off by default as it will cause issues on managed switches with a port forced to 100Mb [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213)
|
- added eth_10mbit to Network Settings, which forces 10BASE-T half-duplex & autonegotiation off, halving the PHY’s power draw. It’s off by default as it will cause issues on managed switches with a port forced to 100Mb [#3213](https://github.com/emsesp/EMS-ESP32/pull/3213)
|
||||||
|
|
||||||
## Fixed
|
## Fixed
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -16,7 +16,8 @@
|
|||||||
"enableMDNS": true,
|
"enableMDNS": true,
|
||||||
"enableCORS": false,
|
"enableCORS": false,
|
||||||
"CORSOrigin": "*",
|
"CORSOrigin": "*",
|
||||||
"tx_power": 0
|
"tx_power": 0,
|
||||||
|
"eth_10mbit": false
|
||||||
},
|
},
|
||||||
"AP": {
|
"AP": {
|
||||||
"provision_mode": 2,
|
"provision_mode": 2,
|
||||||
@@ -129,7 +130,6 @@
|
|||||||
"eth_power": 15,
|
"eth_power": 15,
|
||||||
"eth_phy_addr": 0,
|
"eth_phy_addr": 0,
|
||||||
"eth_clock_mode": 1,
|
"eth_clock_mode": 1,
|
||||||
"eth_10mbit": false,
|
|
||||||
"modbus_enabled": false,
|
"modbus_enabled": false,
|
||||||
"modbus_port": 502,
|
"modbus_port": 502,
|
||||||
"modbus_max_clients": 10,
|
"modbus_max_clients": 10,
|
||||||
|
|||||||
@@ -42,7 +42,7 @@
|
|||||||
"@eslint/js": "^10.0.1",
|
"@eslint/js": "^10.0.1",
|
||||||
"@preact/preset-vite": "^2.10.6",
|
"@preact/preset-vite": "^2.10.6",
|
||||||
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
"@trivago/prettier-plugin-sort-imports": "^6.0.2",
|
||||||
"@types/node": "^26.4.0",
|
"@types/node": "^26.4.1",
|
||||||
"@types/react": "^19.2.18",
|
"@types/react": "^19.2.18",
|
||||||
"@types/react-dom": "^19.2.5",
|
"@types/react-dom": "^19.2.5",
|
||||||
"concurrently": "^10.0.5",
|
"concurrently": "^10.0.5",
|
||||||
|
|||||||
Generated
+26
-26
@@ -56,13 +56,13 @@ importers:
|
|||||||
version: 10.0.1(eslint@10.9.1(supports-color@10.2.2))
|
version: 10.0.1(eslint@10.9.1(supports-color@10.2.2))
|
||||||
'@preact/preset-vite':
|
'@preact/preset-vite':
|
||||||
specifier: ^2.10.6
|
specifier: ^2.10.6
|
||||||
version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))
|
version: 2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))
|
||||||
'@trivago/prettier-plugin-sort-imports':
|
'@trivago/prettier-plugin-sort-imports':
|
||||||
specifier: ^6.0.2
|
specifier: ^6.0.2
|
||||||
version: 6.0.2(prettier@3.9.6)(supports-color@10.2.2)
|
version: 6.0.2(prettier@3.9.6)(supports-color@10.2.2)
|
||||||
'@types/node':
|
'@types/node':
|
||||||
specifier: ^26.4.0
|
specifier: ^26.4.1
|
||||||
version: 26.4.0
|
version: 26.4.1
|
||||||
'@types/react':
|
'@types/react':
|
||||||
specifier: ^19.2.18
|
specifier: ^19.2.18
|
||||||
version: 19.2.18
|
version: 19.2.18
|
||||||
@@ -101,10 +101,10 @@ importers:
|
|||||||
version: 8.69.0(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
|
version: 8.69.0(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)
|
||||||
vite:
|
vite:
|
||||||
specifier: ^8.2.2
|
specifier: ^8.2.2
|
||||||
version: 8.2.2(@types/node@26.4.0)(terser@5.51.2)
|
version: 8.2.2(@types/node@26.4.1)(terser@5.51.2)
|
||||||
vite-plugin-imagemin:
|
vite-plugin-imagemin:
|
||||||
specifier: ^0.6.1
|
specifier: ^0.6.1
|
||||||
version: 0.6.1(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))
|
version: 0.6.1(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))
|
||||||
|
|
||||||
packages:
|
packages:
|
||||||
|
|
||||||
@@ -668,8 +668,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
|
resolution: {integrity: sha512-zmPitbQ8+6zNutpwgcQuLcsEpn/Cj54Kbn7L5pX0Os5kdWplB7xPgEh/g+SWOB/qmows2gpuCaPyduq8ZZRnxA==}
|
||||||
deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
|
deprecated: This is a stub types definition. minimatch provides its own type definitions, so you do not need this installed.
|
||||||
|
|
||||||
'@types/node@26.4.0':
|
'@types/node@26.4.1':
|
||||||
resolution: {integrity: sha512-faiGnoIrLH/V8cibOMEAZ8pMw6oXqSukl29ra4mN8GdaB2ZewzeaLj+INpV5N+Z1eKWzY+IzaIZH2EIR6YZRNQ==}
|
resolution: {integrity: sha512-k97ENvZWtvA6yqz5/FS6a7duDgOPEeOQOc2iKS/nY6mX6qJUKtLnWzQS+Xj6tXweyj6ZcTAK2Qecetnvi9nCLA==}
|
||||||
|
|
||||||
'@types/parse-json@4.0.2':
|
'@types/parse-json@4.0.2':
|
||||||
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
|
resolution: {integrity: sha512-dISoDXWWQwUquiKsyZ4Ng+HX2KsPL7LyHKHQwgGFEA3IaKac4Obd+h2a/a6waisAoepJlBcx9paWqjA8/HVjCw==}
|
||||||
@@ -3394,19 +3394,19 @@ snapshots:
|
|||||||
|
|
||||||
'@popperjs/core@2.11.8': {}
|
'@popperjs/core@2.11.8': {}
|
||||||
|
|
||||||
'@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))':
|
'@preact/preset-vite@2.10.6(@babel/core@7.29.7(supports-color@10.2.2))(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.29.7(supports-color@10.2.2)
|
'@babel/core': 7.29.7(supports-color@10.2.2)
|
||||||
'@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
|
'@babel/plugin-transform-react-jsx': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
|
||||||
'@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
|
'@babel/plugin-transform-react-jsx-development': 7.29.7(@babel/core@7.29.7(supports-color@10.2.2))(supports-color@10.2.2)
|
||||||
'@prefresh/vite': 2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))
|
'@prefresh/vite': 2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))
|
||||||
'@rollup/pluginutils': 5.4.0
|
'@rollup/pluginutils': 5.4.0
|
||||||
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7(supports-color@10.2.2))
|
babel-plugin-transform-hook-names: 1.0.2(@babel/core@7.29.7(supports-color@10.2.2))
|
||||||
debug: 4.4.3(supports-color@10.2.2)
|
debug: 4.4.3(supports-color@10.2.2)
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
picocolors: 1.1.1
|
picocolors: 1.1.1
|
||||||
vite: 8.2.2(@types/node@26.4.0)(terser@5.51.2)
|
vite: 8.2.2(@types/node@26.4.1)(terser@5.51.2)
|
||||||
vite-prerender-plugin: 0.5.13(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))
|
vite-prerender-plugin: 0.5.13(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))
|
||||||
zimmerframe: 1.1.5
|
zimmerframe: 1.1.5
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- preact
|
- preact
|
||||||
@@ -3421,7 +3421,7 @@ snapshots:
|
|||||||
|
|
||||||
'@prefresh/utils@1.2.1': {}
|
'@prefresh/utils@1.2.1': {}
|
||||||
|
|
||||||
'@prefresh/vite@2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2))':
|
'@prefresh/vite@2.4.12(preact@10.29.8)(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/core': 7.29.7(supports-color@10.2.2)
|
'@babel/core': 7.29.7(supports-color@10.2.2)
|
||||||
'@prefresh/babel-plugin': 0.5.3
|
'@prefresh/babel-plugin': 0.5.3
|
||||||
@@ -3429,7 +3429,7 @@ snapshots:
|
|||||||
'@prefresh/utils': 1.2.1
|
'@prefresh/utils': 1.2.1
|
||||||
'@rollup/pluginutils': 4.2.1
|
'@rollup/pluginutils': 4.2.1
|
||||||
preact: 10.29.8
|
preact: 10.29.8
|
||||||
vite: 8.2.2(@types/node@26.4.0)(terser@5.51.2)
|
vite: 8.2.2(@types/node@26.4.1)(terser@5.51.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
@@ -3523,7 +3523,7 @@ snapshots:
|
|||||||
'@types/glob@7.2.0':
|
'@types/glob@7.2.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/minimatch': 6.0.0
|
'@types/minimatch': 6.0.0
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@types/imagemin-gifsicle@7.0.4':
|
'@types/imagemin-gifsicle@7.0.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -3552,23 +3552,23 @@ snapshots:
|
|||||||
|
|
||||||
'@types/imagemin@7.0.1':
|
'@types/imagemin@7.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@types/imagemin@9.0.1':
|
'@types/imagemin@9.0.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@types/json-schema@7.0.15': {}
|
'@types/json-schema@7.0.15': {}
|
||||||
|
|
||||||
'@types/keyv@3.1.4':
|
'@types/keyv@3.1.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@types/minimatch@6.0.0':
|
'@types/minimatch@6.0.0':
|
||||||
dependencies:
|
dependencies:
|
||||||
minimatch: 10.2.6
|
minimatch: 10.2.6
|
||||||
|
|
||||||
'@types/node@26.4.0':
|
'@types/node@26.4.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
undici-types: 8.3.0
|
undici-types: 8.3.0
|
||||||
|
|
||||||
@@ -3590,11 +3590,11 @@ snapshots:
|
|||||||
|
|
||||||
'@types/responselike@1.0.3':
|
'@types/responselike@1.0.3':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@types/svgo@2.6.4':
|
'@types/svgo@2.6.4':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
|
|
||||||
'@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
|
'@typescript-eslint/eslint-plugin@8.69.0(@typescript-eslint/parser@8.69.0(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3))(eslint@10.9.1(supports-color@10.2.2))(supports-color@10.2.2)(typescript@6.0.3)':
|
||||||
dependencies:
|
dependencies:
|
||||||
@@ -5775,7 +5775,7 @@ snapshots:
|
|||||||
spdx-correct: 3.2.0
|
spdx-correct: 3.2.0
|
||||||
spdx-expression-parse: 3.0.1
|
spdx-expression-parse: 3.0.1
|
||||||
|
|
||||||
vite-plugin-imagemin@0.6.1(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2)):
|
vite-plugin-imagemin@0.6.1(supports-color@10.2.2)(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@types/imagemin': 7.0.1
|
'@types/imagemin': 7.0.1
|
||||||
'@types/imagemin-gifsicle': 7.0.4
|
'@types/imagemin-gifsicle': 7.0.4
|
||||||
@@ -5800,11 +5800,11 @@ snapshots:
|
|||||||
imagemin-webp: 6.1.0
|
imagemin-webp: 6.1.0
|
||||||
jpegtran-bin: 6.0.1
|
jpegtran-bin: 6.0.1
|
||||||
pathe: 0.2.0
|
pathe: 0.2.0
|
||||||
vite: 8.2.2(@types/node@26.4.0)(terser@5.51.2)
|
vite: 8.2.2(@types/node@26.4.1)(terser@5.51.2)
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
vite-prerender-plugin@0.5.13(vite@8.2.2(@types/node@26.4.0)(terser@5.51.2)):
|
vite-prerender-plugin@0.5.13(vite@8.2.2(@types/node@26.4.1)(terser@5.51.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
kolorist: 1.8.0
|
kolorist: 1.8.0
|
||||||
magic-string: 0.30.21
|
magic-string: 0.30.21
|
||||||
@@ -5812,9 +5812,9 @@ snapshots:
|
|||||||
simple-code-frame: 1.3.0
|
simple-code-frame: 1.3.0
|
||||||
source-map: 0.7.6
|
source-map: 0.7.6
|
||||||
stack-trace: 1.0.0
|
stack-trace: 1.0.0
|
||||||
vite: 8.2.2(@types/node@26.4.0)(terser@5.51.2)
|
vite: 8.2.2(@types/node@26.4.1)(terser@5.51.2)
|
||||||
|
|
||||||
vite@8.2.2(@types/node@26.4.0)(terser@5.51.2):
|
vite@8.2.2(@types/node@26.4.1)(terser@5.51.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
lightningcss: 1.33.0
|
lightningcss: 1.33.0
|
||||||
picomatch: 4.0.7
|
picomatch: 4.0.7
|
||||||
@@ -5822,7 +5822,7 @@ snapshots:
|
|||||||
rolldown: 1.2.6
|
rolldown: 1.2.6
|
||||||
tinyglobby: 0.2.17
|
tinyglobby: 0.2.17
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
'@types/node': 26.4.0
|
'@types/node': 26.4.1
|
||||||
fsevents: 2.3.3
|
fsevents: 2.3.3
|
||||||
terser: 5.51.2
|
terser: 5.51.2
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,6 @@ export interface Settings {
|
|||||||
eth_power: number;
|
eth_power: number;
|
||||||
eth_phy_addr: number;
|
eth_phy_addr: number;
|
||||||
eth_clock_mode: number;
|
eth_clock_mode: number;
|
||||||
eth_10mbit: boolean;
|
|
||||||
platform: string;
|
platform: string;
|
||||||
modbus_enabled: boolean;
|
modbus_enabled: boolean;
|
||||||
modbus_port: number;
|
modbus_port: number;
|
||||||
|
|||||||
@@ -820,18 +820,6 @@ const ApplicationSettings = () => {
|
|||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
)}
|
)}
|
||||||
{data.phy_type !== 0 && (
|
|
||||||
<BlockFormControlLabel
|
|
||||||
control={
|
|
||||||
<Checkbox
|
|
||||||
checked={data.eth_10mbit}
|
|
||||||
onChange={updateFormValue}
|
|
||||||
name="eth_10mbit"
|
|
||||||
/>
|
|
||||||
}
|
|
||||||
label="Force 10Mbit half-duplex"
|
|
||||||
/>
|
|
||||||
)}
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
<Grid container spacing={2} rowSpacing={0}>
|
<Grid container spacing={2} rowSpacing={0}>
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import {
|
|||||||
|
|
||||||
import * as NetworkApi from 'api/network';
|
import * as NetworkApi from 'api/network';
|
||||||
import { API } from 'api/app';
|
import { API } from 'api/app';
|
||||||
|
import { readSystemStatus } from 'api/system';
|
||||||
|
|
||||||
import { updateState, useRequest } from 'alova/client';
|
import { updateState, useRequest } from 'alova/client';
|
||||||
import type { APIcall } from 'app/main/types';
|
import type { APIcall } from 'app/main/types';
|
||||||
@@ -50,6 +51,8 @@ import { isNetworkOpen, networkSecurityMode } from './WiFiNetworkSelector';
|
|||||||
const NetworkSettings = () => {
|
const NetworkSettings = () => {
|
||||||
const { LL } = useI18nContext();
|
const { LL } = useI18nContext();
|
||||||
|
|
||||||
|
const { data: hardwareData } = useRequest(readSystemStatus);
|
||||||
|
|
||||||
const { selectedNetwork, deselectNetwork } = useContext(WiFiConnectionContext);
|
const { selectedNetwork, deselectNetwork } = useContext(WiFiConnectionContext);
|
||||||
|
|
||||||
const [initialized, setInitialized] = useState(false);
|
const [initialized, setInitialized] = useState(false);
|
||||||
@@ -92,7 +95,8 @@ const NetworkSettings = () => {
|
|||||||
nosleep: true,
|
nosleep: true,
|
||||||
enableMDNS: true,
|
enableMDNS: true,
|
||||||
enableCORS: false,
|
enableCORS: false,
|
||||||
CORSOrigin: '*'
|
CORSOrigin: '*',
|
||||||
|
eth_10mbit: current_data ? current_data.eth_10mbit : false
|
||||||
})
|
})
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
@@ -136,7 +140,7 @@ const NetworkSettings = () => {
|
|||||||
};
|
};
|
||||||
|
|
||||||
const content = () => {
|
const content = () => {
|
||||||
if (!data) {
|
if (!data || !hardwareData) {
|
||||||
return <FormLoader onRetry={loadData} errorMessage={errorMessage || ''} />;
|
return <FormLoader onRetry={loadData} errorMessage={errorMessage || ''} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -246,6 +250,23 @@ const NetworkSettings = () => {
|
|||||||
}
|
}
|
||||||
label={LL.NETWORK_LOW_BAND()}
|
label={LL.NETWORK_LOW_BAND()}
|
||||||
/>
|
/>
|
||||||
|
{hardwareData.esp_platform === 'ESP32' && (
|
||||||
|
<>
|
||||||
|
<Typography sx={{ pt: 2 }} variant="h6" color="primary">
|
||||||
|
Ethernet
|
||||||
|
</Typography>
|
||||||
|
<BlockFormControlLabel
|
||||||
|
control={
|
||||||
|
<Checkbox
|
||||||
|
name="eth_10mbit"
|
||||||
|
checked={data.eth_10mbit}
|
||||||
|
onChange={updateFormValue}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
label="Force 10Mbit half-duplex"
|
||||||
|
/>
|
||||||
|
</>
|
||||||
|
)}
|
||||||
<Typography sx={{ pt: 2 }} variant="h6" color="primary">
|
<Typography sx={{ pt: 2 }} variant="h6" color="primary">
|
||||||
{LL.GENERAL_OPTIONS()}
|
{LL.GENERAL_OPTIONS()}
|
||||||
</Typography>
|
</Typography>
|
||||||
|
|||||||
@@ -54,6 +54,7 @@ export interface NetworkSettingsType {
|
|||||||
enableMDNS: boolean;
|
enableMDNS: boolean;
|
||||||
enableCORS: boolean;
|
enableCORS: boolean;
|
||||||
CORSOrigin: string;
|
CORSOrigin: string;
|
||||||
|
eth_10mbit: boolean;
|
||||||
[key: string]: unknown;
|
[key: string]: unknown;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ class DummySettings {
|
|||||||
// SYSTEM
|
// SYSTEM
|
||||||
bool bandwidth20 = false;
|
bool bandwidth20 = false;
|
||||||
bool nosleep = true;
|
bool nosleep = true;
|
||||||
|
bool eth_10mbit = false;
|
||||||
|
|
||||||
// MQTT
|
// MQTT
|
||||||
uint16_t publish_time = 10;
|
uint16_t publish_time = 10;
|
||||||
|
|||||||
+23
-23
@@ -58,7 +58,6 @@ let settings = {
|
|||||||
eth_power: 15,
|
eth_power: 15,
|
||||||
eth_phy_addr: 0,
|
eth_phy_addr: 0,
|
||||||
eth_clock_mode: 1,
|
eth_clock_mode: 1,
|
||||||
eth_10mbit: false,
|
|
||||||
led_type: 0,
|
led_type: 0,
|
||||||
platform: 'ESP32',
|
platform: 'ESP32',
|
||||||
modbus_enabled: false,
|
modbus_enabled: false,
|
||||||
@@ -96,9 +95,9 @@ let system_status = {
|
|||||||
// network_status: 10, // ethernet connected
|
// network_status: 10, // ethernet connected
|
||||||
// network_status: 6, // wifi disconnected
|
// network_status: 6, // wifi disconnected
|
||||||
wifi_rssi: -41,
|
wifi_rssi: -41,
|
||||||
esp_platform: 'ESP32S3',
|
esp_platform: 'ESP32',
|
||||||
build_flags: 'DEMO',
|
build_flags: 'DEMO',
|
||||||
cpu_type: 'ESP32-S3',
|
cpu_type: 'ESP32',
|
||||||
cpu_rev: 0,
|
cpu_rev: 0,
|
||||||
cpu_cores: 2,
|
cpu_cores: 2,
|
||||||
cpu_freq_mhz: 240,
|
cpu_freq_mhz: 240,
|
||||||
@@ -203,8 +202,8 @@ system_status.partitions[0].version = THIS_VERSION; // app0
|
|||||||
|
|
||||||
// set the ESP platform - using ESP32 will disable OTA and automatic version downloading
|
// set the ESP platform - using ESP32 will disable OTA and automatic version downloading
|
||||||
let emulate_esp: string;
|
let emulate_esp: string;
|
||||||
emulate_esp = 'ESP32S3';
|
// emulate_esp = 'ESP32S3';
|
||||||
// emulate_esp = 'ESP32';
|
emulate_esp = 'ESP32';
|
||||||
|
|
||||||
switch (emulate_esp) {
|
switch (emulate_esp) {
|
||||||
// ESP32 4MB
|
// ESP32 4MB
|
||||||
@@ -330,10 +329,10 @@ function updateMask(entity: any, de: any, dd: any) {
|
|||||||
const old_custom_name = dd.nodes[dd_objIndex].cn;
|
const old_custom_name = dd.nodes[dd_objIndex].cn;
|
||||||
console.log(
|
console.log(
|
||||||
'comparing names, old (' +
|
'comparing names, old (' +
|
||||||
old_custom_name +
|
old_custom_name +
|
||||||
') with new (' +
|
') with new (' +
|
||||||
new_custom_name +
|
new_custom_name +
|
||||||
')'
|
')'
|
||||||
);
|
);
|
||||||
if (old_custom_name !== new_custom_name) {
|
if (old_custom_name !== new_custom_name) {
|
||||||
changed = true;
|
changed = true;
|
||||||
@@ -450,9 +449,9 @@ function upgradeImportantMessages(version: string) {
|
|||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'upgradeImportantMessageType: version=' +
|
'upgradeImportantMessageType: version=' +
|
||||||
version +
|
version +
|
||||||
' type=' +
|
' type=' +
|
||||||
upgradeImportantMessageType_n
|
upgradeImportantMessageType_n
|
||||||
);
|
);
|
||||||
return { upgradeImportantMessageType: upgradeImportantMessageType_n };
|
return { upgradeImportantMessageType: upgradeImportantMessageType_n };
|
||||||
}
|
}
|
||||||
@@ -503,17 +502,17 @@ function get_versions() {
|
|||||||
|
|
||||||
console.log(
|
console.log(
|
||||||
'getVersions: current=' +
|
'getVersions: current=' +
|
||||||
THIS_VERSION +
|
THIS_VERSION +
|
||||||
' stable=' +
|
' stable=' +
|
||||||
LATEST_STABLE_VERSION +
|
LATEST_STABLE_VERSION +
|
||||||
' (upgradeable=' +
|
' (upgradeable=' +
|
||||||
(STABLE_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO') +
|
(STABLE_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO') +
|
||||||
') dev=' +
|
') dev=' +
|
||||||
LATEST_DEV_VERSION +
|
LATEST_DEV_VERSION +
|
||||||
' (upgradeable=' +
|
' (upgradeable=' +
|
||||||
(DEV_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO') +
|
(DEV_VERSION_IS_UPGRADEABLE ? 'YES' : 'NO') +
|
||||||
')' +
|
')' +
|
||||||
(MOCK_OFFLINE ? ' [offline]' : '')
|
(MOCK_OFFLINE ? ' [offline]' : '')
|
||||||
);
|
);
|
||||||
return data;
|
return data;
|
||||||
}
|
}
|
||||||
@@ -583,6 +582,7 @@ let network_settings = {
|
|||||||
enableMDNS: true,
|
enableMDNS: true,
|
||||||
enableCORS: false,
|
enableCORS: false,
|
||||||
CORSOrigin: '*',
|
CORSOrigin: '*',
|
||||||
|
eth_10mbit: false,
|
||||||
local_ip: '',
|
local_ip: '',
|
||||||
gateway_ip: '',
|
gateway_ip: '',
|
||||||
subnet_mask: '',
|
subnet_mask: '',
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ void NetworkSettings::read(NetworkSettings & settings, JsonObject root) {
|
|||||||
root["enableCORS"] = settings.enableCORS;
|
root["enableCORS"] = settings.enableCORS;
|
||||||
root["CORSOrigin"] = settings.CORSOrigin;
|
root["CORSOrigin"] = settings.CORSOrigin;
|
||||||
root["tx_power"] = settings.tx_power;
|
root["tx_power"] = settings.tx_power;
|
||||||
|
root["eth_10mbit"] = settings.eth_10mbit;
|
||||||
|
|
||||||
// extended settings
|
// extended settings
|
||||||
JsonUtils::writeIP(root, "local_ip", settings.localIP);
|
JsonUtils::writeIP(root, "local_ip", settings.localIP);
|
||||||
@@ -51,6 +52,7 @@ StateUpdateResult NetworkSettings::update(JsonObject root, NetworkSettings & set
|
|||||||
settings.enableMDNS = root["enableMDNS"] | true;
|
settings.enableMDNS = root["enableMDNS"] | true;
|
||||||
settings.enableCORS = root["enableCORS"];
|
settings.enableCORS = root["enableCORS"];
|
||||||
settings.CORSOrigin = root["CORSOrigin"] | "*";
|
settings.CORSOrigin = root["CORSOrigin"] | "*";
|
||||||
|
settings.eth_10mbit = root["eth_10mbit"];
|
||||||
|
|
||||||
// extended settings
|
// extended settings
|
||||||
JsonUtils::readIP(root, "local_ip", settings.localIP);
|
JsonUtils::readIP(root, "local_ip", settings.localIP);
|
||||||
|
|||||||
@@ -39,6 +39,7 @@ class NetworkSettings {
|
|||||||
bool enableMDNS = true;
|
bool enableMDNS = true;
|
||||||
bool enableCORS = false;
|
bool enableCORS = false;
|
||||||
String CORSOrigin = "*";
|
String CORSOrigin = "*";
|
||||||
|
bool eth_10mbit = false; // force 10BASE-T half-duplex, no auto-negotiation
|
||||||
|
|
||||||
// optional configuration for static IP address
|
// optional configuration for static IP address
|
||||||
IPAddress localIP;
|
IPAddress localIP;
|
||||||
|
|||||||
@@ -49,15 +49,15 @@ void Network::begin() {
|
|||||||
nosleep_ = settings.nosleep;
|
nosleep_ = settings.nosleep;
|
||||||
tx_power_ = settings.tx_power;
|
tx_power_ = settings.tx_power;
|
||||||
bssid_ = settings.bssid;
|
bssid_ = settings.bssid;
|
||||||
|
eth_10mbit_ = settings.eth_10mbit;
|
||||||
});
|
});
|
||||||
|
|
||||||
// read Ethernet settings
|
// read Ethernet hardware settings
|
||||||
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
EMSESP::webSettingsService.read([&](WebSettings & settings) {
|
||||||
phy_type_ = settings.phy_type;
|
phy_type_ = settings.phy_type;
|
||||||
eth_power_ = settings.eth_power;
|
eth_power_ = settings.eth_power;
|
||||||
eth_phy_addr_ = settings.eth_phy_addr;
|
eth_phy_addr_ = settings.eth_phy_addr;
|
||||||
eth_clock_mode_ = settings.eth_clock_mode;
|
eth_clock_mode_ = settings.eth_clock_mode;
|
||||||
eth_10mbit_ = settings.eth_10mbit;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
// get Access Point settings
|
// get Access Point settings
|
||||||
|
|||||||
@@ -79,7 +79,6 @@ void WebSettings::read(WebSettings & settings, JsonObject root) {
|
|||||||
root["eth_power"] = settings.eth_power;
|
root["eth_power"] = settings.eth_power;
|
||||||
root["eth_phy_addr"] = settings.eth_phy_addr;
|
root["eth_phy_addr"] = settings.eth_phy_addr;
|
||||||
root["eth_clock_mode"] = settings.eth_clock_mode;
|
root["eth_clock_mode"] = settings.eth_clock_mode;
|
||||||
root["eth_10mbit"] = settings.eth_10mbit;
|
|
||||||
root["modbus_enabled"] = settings.modbus_enabled;
|
root["modbus_enabled"] = settings.modbus_enabled;
|
||||||
root["modbus_port"] = settings.modbus_port;
|
root["modbus_port"] = settings.modbus_port;
|
||||||
root["modbus_max_clients"] = settings.modbus_max_clients;
|
root["modbus_max_clients"] = settings.modbus_max_clients;
|
||||||
@@ -121,7 +120,6 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) {
|
|||||||
settings.eth_power = root["eth_power"];
|
settings.eth_power = root["eth_power"];
|
||||||
settings.eth_phy_addr = root["eth_phy_addr"];
|
settings.eth_phy_addr = root["eth_phy_addr"];
|
||||||
settings.eth_clock_mode = root["eth_clock_mode"];
|
settings.eth_clock_mode = root["eth_clock_mode"];
|
||||||
settings.eth_10mbit = root["eth_10mbit"];
|
|
||||||
settings.led_type = root["led_type"]; // 1 = RGB-LED
|
settings.led_type = root["led_type"]; // 1 = RGB-LED
|
||||||
|
|
||||||
reset_flags();
|
reset_flags();
|
||||||
@@ -147,7 +145,6 @@ StateUpdateResult WebSettings::update(JsonObject root, WebSettings & settings) {
|
|||||||
if (settings.phy_type != PHY_type::PHY_TYPE_NONE) {
|
if (settings.phy_type != PHY_type::PHY_TYPE_NONE) {
|
||||||
check_flag(original_settings.eth_power, settings.eth_power, ChangeFlags::RESTART);
|
check_flag(original_settings.eth_power, settings.eth_power, ChangeFlags::RESTART);
|
||||||
check_flag(original_settings.eth_clock_mode, settings.eth_clock_mode, ChangeFlags::RESTART);
|
check_flag(original_settings.eth_clock_mode, settings.eth_clock_mode, ChangeFlags::RESTART);
|
||||||
check_flag(original_settings.eth_10mbit, settings.eth_10mbit, ChangeFlags::RESTART);
|
|
||||||
if (settings.eth_power != -1) { // Ethernet Power -1 means disabled
|
if (settings.eth_power != -1) { // Ethernet Power -1 means disabled
|
||||||
EMSESP::system_.remove_gpio(settings.eth_power, true);
|
EMSESP::system_.remove_gpio(settings.eth_power, true);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -119,7 +119,6 @@ class WebSettings {
|
|||||||
int8_t eth_power; // -1 means disabled
|
int8_t eth_power; // -1 means disabled
|
||||||
uint8_t eth_phy_addr;
|
uint8_t eth_phy_addr;
|
||||||
uint8_t eth_clock_mode;
|
uint8_t eth_clock_mode;
|
||||||
bool eth_10mbit; // force 10BASE-T half-duplex, no auto-negotiation
|
|
||||||
|
|
||||||
bool developer_mode; // developer mode
|
bool developer_mode; // developer mode
|
||||||
bool disable_reset; // disable reset
|
bool disable_reset; // disable reset
|
||||||
|
|||||||
Reference in New Issue
Block a user