首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

以 GoAhead 打造嵌入式 Web 應用:ASP 與 GoForms 實戰

     編輯:關於ASP.NET

GoAhead 是輕量、開源、經過大廠(西門子、霍尼韋爾、惠普)驗證的嵌入式 Web 伺服器。本文說明其核心需求、動態頁面技術(ASP/GoForms),並以「動態顯示系統行程」為例完整實作。

嵌入式 Web 伺服器核心需求

  • 易整合:開源碼、支援 RTOS、輕鬆呼叫硬體 API。
  • ROM 儲存網頁:無檔案系統裝置可將網頁編譯連結進映像檔。
  • 加密與帳號管理:支援 SSL、Digest Authentication、角色權限。
  • 動態頁面:提供 ASP、GoForms、Embedded JavaScript 三種機制。

動態頁面兩大引擎

引擎用途綁定方式
ASP 程序產生動態顯示內容(如系統資訊)websAspDefine("TagName", C_Function)
GoForms 程序處理使用者輸入、修改設定、控制裝置websFormDefine("FormName", C_Function)

實作範例:顯示目前執行行程

1. 網頁 (home.asp)

<html><body>
<h2>系統行程資訊</h2>
<% UpdateProcInfo(); %>  <!-- ASP 標籤,執行時會被 C 函數取代 -->
</body></html>

2. C 函數

/* ui.c */
#include "webs.h"
void UpdateProcInfo(webs_t wp, char_t *path, char_t *query)
{
    // 取得行程清單(平台相關 API)
    PROC_INFO *procs = GetProcessList();
    // 輸出 HTML 表格
    websWrite(wp, T(""));
    for (int i=0; procs[i].pid; i++) {
        websWrite(wp, T(""),
                  procs[i].pid, procs[i].name, procs[i].cpu);
    }
    websWrite(wp, T("
PIDNameCPU%
%d%s%.1f
")); FreeProcessList(procs); }

3. 註冊 ASP 程序

/* main.c */
#include "webs.h"
extern void UpdateProcInfo(webs_t, char_t*, char_t*);

int initWebs()
{
    // ... 其他初始化 ...
    websAspDefine(T("UpdateProcInfo"), UpdateProcInfo);
    return 0;
}

GoForms 處理使用者指令

表單送出時呼叫對應 C 函數,可執行重啟服務、修改 IP、更新韌體等動作,回傳 JSON 或重導頁面。

部署建議

  • 網頁預先用 webcomp 編譯為 C 陣列,連結進韌體,免除檔案系統。
  • 啟用 WEBS_SSL 編譯選項支援 HTTPS。
  • 針對記憶體受限裝置,調整 WEBS_MAX_REQUEST、WEBS_MAX_URI 緩衝區大小。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved