-
Notifications
You must be signed in to change notification settings - Fork 2.8k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
2,998 additions
and
3 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
PROG ?= ./example # Program we are building | ||
PACK ?= ./pack # Packing executable | ||
DELETE = rm -rf # Command to remove files | ||
GZIP ?= gzip # For compressing files in web_root/ | ||
OUT ?= -o $(PROG) # Compiler argument for output file | ||
SOURCES = main.c mongoose.c net.c packed_fs.c # Source code files | ||
CFLAGS = -W -Wall -Wextra -g -I. # Build options | ||
|
||
# Mongoose build options. See https://mongoose.ws/documentation/#build-options | ||
CFLAGS_MONGOOSE += -DMG_ENABLE_PACKED_FS=1 | ||
|
||
ifeq ($(OS),Windows_NT) # Windows settings. Assume MinGW compiler. To use VC: make CC=cl CFLAGS=/MD OUT=/Feprog.exe | ||
PROG = example.exe # Use .exe suffix for the binary | ||
PACK = pack.exe # Packing executable | ||
CC = gcc # Use MinGW gcc compiler | ||
CFLAGS += -lws2_32 # Link against Winsock library | ||
DELETE = cmd /C del /Q /F /S # Command prompt command to delete files | ||
GZIP = echo # No gzip on Windows | ||
endif | ||
|
||
# Default target. Build and run program | ||
all: $(PROG) | ||
$(RUN) $(PROG) $(ARGS) | ||
|
||
# Build program from sources | ||
$(PROG): $(SOURCES) | ||
$(CC) $(SOURCES) $(CFLAGS) $(CFLAGS_MONGOOSE) $(CFLAGS_EXTRA) $(OUT) | ||
|
||
# Bundle JS libraries (preact, preact-router, ...) into a single file | ||
web_root/bundle.js: | ||
curl -s https://npm.reversehttp.com/preact,preact/hooks,htm/preact,preact-router -o $@ | ||
|
||
# Create optimised CSS. Prerequisite: npm -g i tailwindcss tailwindcss-font-inter | ||
web_root/main.css: web_root/index.html $(wildcard web_root/*.js) | ||
npx tailwindcss -o $@ --minify | ||
|
||
# Generate packed filesystem for serving Web UI | ||
packed_fs.c: $(wildcard web_root/*) $(wildcard certs/*) Makefile web_root/main.css web_root/bundle.js | ||
$(GZIP) web_root/* | ||
$(CC) ../../test/pack.c -o $(PACK) | ||
$(PACK) web_root/* certs/* > $@ | ||
$(GZIP) -d web_root/* | ||
|
||
mbedtls: | ||
git clone --depth 1 -b v2.28.2 https://github.com/mbed-tls/mbedtls $@ | ||
|
||
ifeq ($(TLS), mbedtls) | ||
CFLAGS += -DMG_TLS=MG_TLS_MBED -Wno-conversion -Imbedtls/include | ||
CFLAGS += -DMBEDTLS_CONFIG_FILE=\"mbedtls_config.h\" mbedtls/library/*.c | ||
$(PROG): mbedtls | ||
endif | ||
|
||
# Cleanup. Delete built program and all build artifacts | ||
clean: | ||
$(DELETE) $(PROG) $(PACK) *.o *.obj *.exe *.dSYM mbedtls |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,26 @@ | ||
# A complete device dashboard | ||
|
||
This example is a demonstration of how Mongoose Library could be integrated | ||
into an embedded device and provide a complete device dashboard with the | ||
following features: | ||
|
||
- Authentication: login-protected dashboard | ||
- Multiple logins (with possibly different permissions) | ||
- The Web UI can be fully embedded into the firmware binary, then not | ||
needing a filesystem to serve it; so being resilient to FS problems | ||
- All changes are propagated to all connected clients | ||
|
||
## Screenshots | ||
|
||
This is a login screen that prompts for user/password | ||
|
||
![](screenshots/login.webp) | ||
|
||
## Main dashboard | ||
|
||
The main dashboard page shows the interactive console | ||
|
||
![](screenshots/dashboard.webp) | ||
|
||
|
||
See a detailed tutorial at https://mongoose.ws/tutorials/device-dashboard/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../device-dashboard/certs |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,32 @@ | ||
// Copyright (c) 2020-2023 Cesanta Software Limited | ||
// All rights reserved | ||
|
||
#include "mongoose.h" | ||
#include "net.h" | ||
|
||
static int s_sig_num; | ||
static void signal_handler(int sig_num) { | ||
signal(sig_num, signal_handler); | ||
s_sig_num = sig_num; | ||
} | ||
|
||
int main(void) { | ||
struct mg_mgr mgr; | ||
|
||
signal(SIGPIPE, SIG_IGN); | ||
signal(SIGINT, signal_handler); | ||
signal(SIGTERM, signal_handler); | ||
|
||
mg_log_set(MG_LL_DEBUG); // Set debug log level | ||
mg_mgr_init(&mgr); | ||
|
||
web_init(&mgr); | ||
while (s_sig_num == 0) { | ||
mg_mgr_poll(&mgr, 50); | ||
} | ||
|
||
mg_mgr_free(&mgr); | ||
MG_INFO(("Exiting on signal %d", s_sig_num)); | ||
|
||
return 0; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../mongoose.c |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
../../mongoose.h |
Oops, something went wrong.