add config period
Signed-off-by: YoungSoo Shin <shinys000114@gmail.com>
This commit is contained in:
@@ -359,7 +359,7 @@
|
||||
</form>
|
||||
</div>
|
||||
<div class="tab-pane fade" id="device-settings-pane" role="tabpanel">
|
||||
<div class="mb-3">
|
||||
<div class="mb-3 p-3 border rounded">
|
||||
<label for="baud-rate-select" class="form-label">UART Baud Rate</label>
|
||||
<select class="form-select" id="baud-rate-select">
|
||||
<option value="9600">9600</option>
|
||||
@@ -372,6 +372,16 @@
|
||||
<option value="921600">921600</option>
|
||||
<option value="1500000" selected>1500000</option>
|
||||
</select>
|
||||
<div class="d-flex justify-content-end mt-2">
|
||||
<button type="button" class="btn btn-primary btn-sm" id="baud-rate-apply-button">Apply</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 p-3 border rounded">
|
||||
<label for="period-slider" class="form-label">Sensor Period: <span class="fw-bold text-primary" id="period-value">...</span> ms</label>
|
||||
<input type="range" class="form-range" id="period-slider" min="500" max="5000" step="100">
|
||||
<div class="d-flex justify-content-end mt-2">
|
||||
<button type="button" class="btn btn-primary btn-sm" id="period-apply-button">Apply</button>
|
||||
</div>
|
||||
</div>
|
||||
<hr>
|
||||
<div class="mb-3">
|
||||
@@ -380,7 +390,6 @@
|
||||
<button type="button" class="btn btn-danger" id="reboot-button">Reboot Now</button>
|
||||
</div>
|
||||
<div class="d-flex justify-content-end pt-3 border-top mt-3">
|
||||
<button type="button" class="btn btn-primary me-2" id="baud-rate-apply-button">Apply</button>
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal">Close</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -104,7 +104,6 @@ export async function postNetworkSettings(payload) {
|
||||
* Posts the selected UART baud rate to the server.
|
||||
* @param {string} baudrate The selected baud rate.
|
||||
* @returns {Promise<Response>} A promise that resolves to the raw fetch response.
|
||||
* @throws {Error} Throws an error if the request fails.
|
||||
*/
|
||||
export async function postBaudRateSetting(baudrate) {
|
||||
const response = await fetch('/api/setting', {
|
||||
@@ -113,7 +112,24 @@ export async function postBaudRateSetting(baudrate) {
|
||||
'Content-Type': 'application/json',
|
||||
...getAuthHeaders(),
|
||||
},
|
||||
body: JSON.stringify({baudrate}),
|
||||
body: JSON.stringify({ baudrate }),
|
||||
});
|
||||
return await handleResponse(response);
|
||||
}
|
||||
|
||||
/**
|
||||
* Posts the selected sensor period to the server.
|
||||
* @param {string} period The selected period in milliseconds.
|
||||
* @returns {Promise<Response>} A promise that resolves to the raw fetch response.
|
||||
*/
|
||||
export async function postPeriodSetting(period) {
|
||||
const response = await fetch('/api/setting', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
...getAuthHeaders(),
|
||||
},
|
||||
body: JSON.stringify({ period }),
|
||||
});
|
||||
return await handleResponse(response);
|
||||
}
|
||||
|
||||
@@ -76,6 +76,9 @@ export const apPasswordInput = document.getElementById('ap-password');
|
||||
// --- Device Settings Elements ---
|
||||
export const baudRateSelect = document.getElementById('baud-rate-select');
|
||||
export const baudRateApplyButton = document.getElementById('baud-rate-apply-button');
|
||||
export const periodSlider = document.getElementById('period-slider');
|
||||
export const periodValue = document.getElementById('period-value');
|
||||
export const periodApplyButton = document.getElementById('period-apply-button');
|
||||
export const rebootButton = document.getElementById('reboot-button');
|
||||
|
||||
// --- Current Limit Settings Elements ---
|
||||
|
||||
@@ -77,8 +77,9 @@ export function setupEventListeners() {
|
||||
dom.networkApplyButton.addEventListener('click', ui.applyNetworkSettings);
|
||||
dom.apModeApplyButton.addEventListener('click', ui.applyApModeSettings);
|
||||
dom.baudRateApplyButton.addEventListener('click', ui.applyBaudRateSettings);
|
||||
dom.periodApplyButton.addEventListener('click', ui.applyPeriodSettings);
|
||||
|
||||
// --- Device Settings (Reboot) ---
|
||||
// --- Device Settings (Reboot & Period Slider) ---
|
||||
if (dom.rebootButton) {
|
||||
dom.rebootButton.addEventListener('click', () => {
|
||||
if (confirm('Are you sure you want to reboot the device?')) {
|
||||
@@ -101,6 +102,12 @@ export function setupEventListeners() {
|
||||
});
|
||||
}
|
||||
|
||||
if (dom.periodSlider) {
|
||||
dom.periodSlider.addEventListener('input', () => {
|
||||
dom.periodValue.textContent = dom.periodSlider.value;
|
||||
});
|
||||
}
|
||||
|
||||
// --- Current Limit Settings ---
|
||||
dom.vinSlider.addEventListener('input', () => updateSliderValue(dom.vinSlider, dom.vinValueSpan));
|
||||
dom.mainSlider.addEventListener('input', () => updateSliderValue(dom.mainSlider, dom.mainValueSpan));
|
||||
|
||||
@@ -301,6 +301,24 @@ export async function applyBaudRateSettings() {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Applies the selected sensor period by sending it to the server.
|
||||
*/
|
||||
export async function applyPeriodSettings() {
|
||||
const period = dom.periodSlider.value;
|
||||
dom.periodApplyButton.disabled = true;
|
||||
dom.periodApplyButton.innerHTML = `<span class="spinner-border spinner-border-sm" aria-hidden="true"></span> Applying...`;
|
||||
|
||||
try {
|
||||
await api.postPeriodSetting(period);
|
||||
} catch (error) {
|
||||
console.error('Error applying period:', error);
|
||||
} finally {
|
||||
dom.periodApplyButton.disabled = false;
|
||||
dom.periodApplyButton.innerHTML = 'Apply';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetches and displays the current network and device settings in the settings modal.
|
||||
*/
|
||||
@@ -338,6 +356,10 @@ export async function initializeSettings() {
|
||||
if (data.baudrate) {
|
||||
dom.baudRateSelect.value = data.baudrate;
|
||||
}
|
||||
if (data.period) {
|
||||
dom.periodSlider.value = data.period;
|
||||
dom.periodValue.textContent = data.period;
|
||||
}
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error initializing settings:', error);
|
||||
|
||||
Reference in New Issue
Block a user