mirror of
https://github.com/sle118/squeezelite-esp32.git
synced 2025-12-14 07:27:03 +03:00
Compare commits
4 Commits
developmen
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
41cdb8bcdd | ||
|
|
8c33acfd35 | ||
|
|
0222a34286 | ||
|
|
a90c9802ab |
@@ -133,7 +133,7 @@ static esp_err_t i2c_write_reg(uint8_t reg, uint8_t val) {
|
|||||||
i2c_master_write_byte(cmd, val, I2C_MASTER_NACK);
|
i2c_master_write_byte(cmd, val, I2C_MASTER_NACK);
|
||||||
|
|
||||||
i2c_master_stop(cmd);
|
i2c_master_stop(cmd);
|
||||||
ret = i2c_master_cmd_begin(i2c_port, cmd, 1000 / portTICK_RATE_MS);
|
ret = i2c_master_cmd_begin(i2c_port, cmd, 100 / portTICK_RATE_MS);
|
||||||
i2c_cmd_link_delete(cmd);
|
i2c_cmd_link_delete(cmd);
|
||||||
|
|
||||||
if (ret != ESP_OK) {
|
if (ret != ESP_OK) {
|
||||||
@@ -161,7 +161,7 @@ static uint8_t i2c_read_reg(uint8_t reg) {
|
|||||||
i2c_master_read_byte(cmd, &data, I2C_MASTER_NACK);
|
i2c_master_read_byte(cmd, &data, I2C_MASTER_NACK);
|
||||||
|
|
||||||
i2c_master_stop(cmd);
|
i2c_master_stop(cmd);
|
||||||
ret = i2c_master_cmd_begin(i2c_port, cmd, 1000 / portTICK_RATE_MS);
|
ret = i2c_master_cmd_begin(i2c_port, cmd, 100 / portTICK_RATE_MS);
|
||||||
i2c_cmd_link_delete(cmd);
|
i2c_cmd_link_delete(cmd);
|
||||||
|
|
||||||
if (ret != ESP_OK) {
|
if (ret != ESP_OK) {
|
||||||
|
|||||||
@@ -253,6 +253,10 @@ void process_received_data(const char * buffer, size_t size){
|
|||||||
if(bMirrorToUART){
|
if(bMirrorToUART){
|
||||||
write(uart_fd, command, size);
|
write(uart_fd, command, size);
|
||||||
}
|
}
|
||||||
|
for(int i=strlen(command);i>=0;i--){
|
||||||
|
// strip any cr/lf
|
||||||
|
if(command[i]== '\n' || command[i]== '\r') command[i]= '\0';
|
||||||
|
}
|
||||||
run_command((char *)command);
|
run_command((char *)command);
|
||||||
}
|
}
|
||||||
free(command);
|
free(command);
|
||||||
|
|||||||
@@ -100,8 +100,95 @@ function RepeatRefreshAPInterval(){
|
|||||||
if(RefreshAPIIntervalActive)
|
if(RefreshAPIIntervalActive)
|
||||||
startRefreshAPInterval();
|
startRefreshAPInterval();
|
||||||
}
|
}
|
||||||
|
function getConfigJson(slimMode){
|
||||||
|
var config = {};
|
||||||
|
$("input.nvs").each(function() {
|
||||||
|
var key = $(this)[0].id;
|
||||||
|
var val = $(this).val();
|
||||||
|
if(!slimMode){
|
||||||
|
var nvs_type = parseInt($(this)[0].attributes.nvs_type.nodeValue,10);
|
||||||
|
if (key != '') {
|
||||||
|
config[key] = {};
|
||||||
|
if(nvs_type == nvs_type_t.NVS_TYPE_U8
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_I8
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_U16
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_I16
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_U32
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_I32
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_U64
|
||||||
|
|| nvs_type == nvs_type_t.NVS_TYPE_I64) {
|
||||||
|
config[key].value = parseInt(val);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
config[key].value = val;
|
||||||
|
}
|
||||||
|
config[key].type = nvs_type;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
config[key] = val;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
var key = $("#nvs-new-key").val();
|
||||||
|
var val = $("#nvs-new-value").val();
|
||||||
|
if (key != '') {
|
||||||
|
if(!slimMode){
|
||||||
|
config[key] = {};
|
||||||
|
config[key].value = val;
|
||||||
|
config[key].type = 33;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
config[key] = val;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return config;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function onFileLoad(elementId, event) {
|
||||||
|
var data={};
|
||||||
|
try{
|
||||||
|
data = JSON.parse(elementId.srcElement.result);
|
||||||
|
}
|
||||||
|
catch (e){
|
||||||
|
alert('Parsing failed!\r\n '+ e);
|
||||||
|
}
|
||||||
|
$("input.nvs").each(function() {
|
||||||
|
var key = $(this)[0].id;
|
||||||
|
var val = $(this).val();
|
||||||
|
if(data[key]){
|
||||||
|
if(data[key] != val){
|
||||||
|
console.log("Changed "& key & " " & val & "==>" & data[key]);
|
||||||
|
$(this).val(data[key]);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
console.log("Value " & key & " missing from file");
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function onChooseFile(event, onLoadFileHandler) {
|
||||||
|
if (typeof window.FileReader !== 'function')
|
||||||
|
throw ("The file API isn't supported on this browser.");
|
||||||
|
let input = event.target;
|
||||||
|
if (!input)
|
||||||
|
throw ("The browser does not properly implement the event object");
|
||||||
|
if (!input.files)
|
||||||
|
throw ("This browser does not support the `files` property of the file input.");
|
||||||
|
if (!input.files[0])
|
||||||
|
return undefined;
|
||||||
|
let file = input.files[0];
|
||||||
|
let fr = new FileReader();
|
||||||
|
fr.onload = onLoadFileHandler;
|
||||||
|
fr.readAsText(file);
|
||||||
|
input.value="";
|
||||||
|
}
|
||||||
$(document).ready(function(){
|
$(document).ready(function(){
|
||||||
|
$("#load-nvs").click(function () {
|
||||||
|
$("#nvsfilename").trigger('click');
|
||||||
|
});
|
||||||
$("#wifi-status").on("click", ".ape", function() {
|
$("#wifi-status").on("click", ".ape", function() {
|
||||||
$( "#wifi" ).slideUp( "fast", function() {});
|
$( "#wifi" ).slideUp( "fast", function() {});
|
||||||
$( "#connect-details" ).slideDown( "fast", function() {});
|
$( "#connect-details" ).slideDown( "fast", function() {});
|
||||||
@@ -334,42 +421,27 @@ $(document).ready(function(){
|
|||||||
console.log('sent config JSON with data:', JSON.stringify(data));
|
console.log('sent config JSON with data:', JSON.stringify(data));
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
$("#save-as-nvs").on("click", function() {
|
||||||
|
var data = { 'timestamp': Date.now() };
|
||||||
|
var config = getConfigJson(true);
|
||||||
|
const a = document.createElement("a");
|
||||||
|
a.href = URL.createObjectURL(
|
||||||
|
new Blob([JSON.stringify(config, null, 2)], {
|
||||||
|
type: "text/plain"
|
||||||
|
}));
|
||||||
|
a.setAttribute("download", "nvs_config" + Date.now() +"json");
|
||||||
|
document.body.appendChild(a);
|
||||||
|
a.click();
|
||||||
|
document.body.removeChild(a);
|
||||||
|
console.log('sent config JSON with headers:', JSON.stringify(headers));
|
||||||
|
console.log('sent config JSON with data:', JSON.stringify(data));
|
||||||
|
});
|
||||||
|
|
||||||
$("#save-nvs").on("click", function() {
|
$("#save-nvs").on("click", function() {
|
||||||
var headers = {};
|
var headers = {};
|
||||||
var data = { 'timestamp': Date.now() };
|
var data = { 'timestamp': Date.now() };
|
||||||
var config = {};
|
var config = getConfigJson(false);
|
||||||
$("input.nvs").each(function() {
|
|
||||||
var key = $(this)[0].id;
|
|
||||||
var val = $(this).val();
|
|
||||||
var nvs_type = parseInt($(this)[0].attributes.nvs_type.nodeValue,10);
|
|
||||||
if (key != '') {
|
|
||||||
config[key] = {};
|
|
||||||
if(nvs_type == nvs_type_t.NVS_TYPE_U8
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_I8
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_U16
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_I16
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_U32
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_I32
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_U64
|
|
||||||
|| nvs_type == nvs_type_t.NVS_TYPE_I64) {
|
|
||||||
config[key].value = parseInt(val);
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
config[key].value = val;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
config[key].type = nvs_type;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
var key = $("#nvs-new-key").val();
|
|
||||||
var val = $("#nvs-new-value").val();
|
|
||||||
if (key != '') {
|
|
||||||
// headers["X-Custom-" +key] = val;
|
|
||||||
config[key] = {};
|
|
||||||
config[key].value = val;
|
|
||||||
config[key].type = 33;
|
|
||||||
}
|
|
||||||
data['config'] = config;
|
data['config'] = config;
|
||||||
$.ajax({
|
$.ajax({
|
||||||
url: '/config.json',
|
url: '/config.json',
|
||||||
@@ -421,7 +493,6 @@ $(document).ready(function(){
|
|||||||
fwurl : {
|
fwurl : {
|
||||||
value : url,
|
value : url,
|
||||||
type : 33
|
type : 33
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -721,6 +721,7 @@ esp_err_t config_post_handler(httpd_req_t *req){
|
|||||||
|
|
||||||
if(err==ESP_OK){
|
if(err==ESP_OK){
|
||||||
httpd_resp_sendstr(req, "{ \"result\" : \"OK\" }");
|
httpd_resp_sendstr(req, "{ \"result\" : \"OK\" }");
|
||||||
|
messaging_post_message(MESSAGING_INFO,MESSAGING_CLASS_SYSTEM,"Save Success");
|
||||||
}
|
}
|
||||||
cJSON_Delete(root);
|
cJSON_Delete(root);
|
||||||
if(bOTA) {
|
if(bOTA) {
|
||||||
|
|||||||
@@ -338,7 +338,10 @@
|
|||||||
<button id="reboot-button" type="submit" class="btn btn-primary">Reboot</button>
|
<button id="reboot-button" type="submit" class="btn btn-primary">Reboot</button>
|
||||||
</form>
|
</form>
|
||||||
</div>
|
</div>
|
||||||
<input id="save-nvs" type="button" class="btn btn-success" value="Save" />
|
<input id="save-nvs" type="button" class="btn btn-success" value="Commit">
|
||||||
|
<input id="save-as-nvs" type="button" class="btn btn-success" value="Download config">
|
||||||
|
<input id="load-nvs" type="button" class="btn btn-success" value="Load File">
|
||||||
|
<input aria-describedby="fileHelp" onchange="onChooseFile(event, onFileLoad.bind(this))" id="nvsfilename" type="file" style="display:none">
|
||||||
</div>
|
</div>
|
||||||
</div> <!-- nvs -->
|
</div> <!-- nvs -->
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user