goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略

摘要:
声明:这里面的代码均为网上找的然后有小小的改动,并非原创。

声明:这里面的代码均为网上找的然后有小小的改动,并非原创。但文章为原创

一、.编译

1.1,、下载:进入http://embedthis.com/goahead/下载goahead3.6.3(2017年9月12日还是这版本)

1.2、解压

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第1张,

然后进入goahead-3.6.3-rc目录,进入后为这样

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第2张

然后在进入goahead-3.6.3

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第3张

然后在终端中进入goahead-3.6.3,然后输入make进行编译(该方式默认是生成x86架构的程序),如图:goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第4张

二、简单使用

2.1、首先在生成的可执行文件的同级目录创建一个auth.txt(可以为空)和route.txt(内容为下图中行开始没有‘#’符号的行,#开始表示注释)文件 ,如果不创建的话在运行goahead时需要加参数指定文件,否则goahead无法运行

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第5张

2.2.在编译生成的二进制文件的同一级目录中创建一个目录(名字随意,这里用web)用来存放html和js文件

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第6张

2.3、在web目录中创建一个文件,名为aspTest.html或aspTest.asp(这里为aspTest.asp),内容为

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
</head>
<h4>串口状态</h4>
<table cellspacing="0" cellpadding="0">
<tr>
<th width="">串口</th>
<th width="">线路协议</th>
<th width="">波特率(bps)</th>
<th width="">数据位</th>
<th width="">起始位</th>
<th width="">停止位</th>
<th width="">奇偶校验</th>
<th width="">流控</th>
</tr>
<% MakePortAttributeList("1", "Test", "Lanj"); %>
</table>
</html>

2.4. 在goahead.c文件中的main函数中websServiceEvents(&finished);之前添加websDefineJst("MakePortAttributeList", getPortAttrib);,然后在goahead.c文件的开头声明static void getPortA(Webs *wp, STPortAttributeList *PortAttributeList);和static int getPortAttrib(int eid, Webs *wp, int argc, char **argv); // 原型。然后实现这两个函数

typedef struct PortAttributeList{
char *port;
char *agreement;
char *bandrate;
char *figure;
char *outset;
char *termination;
char *parityCheck;
char *flowControl;
}STPortAttributeList;

static void getPortA(Webs *wp, STPortAttributeList *PortAttributeList)
{
PortAttributeList[0].port="1";
PortAttributeList[0].agreement="RS232";
PortAttributeList[0].bandrate="1200";
PortAttributeList[0].figure="8";
PortAttributeList[0].outset="1";
PortAttributeList[0].termination="1";
PortAttributeList[0].parityCheck="ODD";
PortAttributeList[0].flowControl="Hardware";
PortAttributeList[1].port="2";
PortAttributeList[1].agreement="RS485";
PortAttributeList[1].bandrate="9600";
PortAttributeList[1].figure="8";
PortAttributeList[1].outset="1";
PortAttributeList[1].termination="1";
PortAttributeList[1].parityCheck="EVEN";
PortAttributeList[1].flowControl="NO";
}

static int getPortAttrib(int eid, Webs *wp, int argc, char **argv)
{
int i=0;
int SerialNum = 2;
STPortAttributeList PortAttributeList[SerialNum];
printf("Parameter = %d ",argc);

while(i < argc)
{
printf("Parameter %d = %s ",i,*(argv+i));
i++;
}
i = 0;

getPortA(wp,PortAttributeList);
while(i<SerialNum)
{
websWrite(wp,"<tr>");
websWrite(wp,"<td>%s</td>",PortAttributeList[i].port);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].agreement);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].bandrate);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].figure);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].outset);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].termination);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].parityCheck);
websWrite(wp,"<td>%s</td>",PortAttributeList[i].flowControl);
websWrite(wp,"</tr>");
i++;
}
return 0;
}

2.5.重新编译goahead,然后在终端中进入goahead可运行文件的目录,然后执行sudo ./goahead -v ./web,最后在浏览器中访问127.0.0.1/aspTest.html

goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略第7张

免责声明:文章转载自《goahead3.6.3就基本使用(后台上传信息到html页面),高手请忽略》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LXD 2.0 系列(五):镜像管理Vue -- 基础下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Oracle中的关键字

NVL和COALESCE的区别: nvl(COMMISSION_PCT,0)如果第一个参数为null,则返回第二个参数如果第一个参数为非null,则返回第一个参数 COALESCE(EXPR1,EXPR2,EXPR3...EXPRn)从左往右数,遇到第一个非null值,则返回该非null值。多层判断 第一点区别:从上面可以知道,nvl只适合于两个参数的,C...

Vue安装与简单使用

Vue入门 使用Typora打开https://pan.baidu.com/s/1Mf3ZFSthdVUQevqWr777eA 提取码: hg9b vue中文官网教学 安装与使用,我也经常看这个 点击进入 认识Vue Vue (读音 /vjuː/,类似于 **view**) 是一套用于构建用户界面的**渐进式框架** 安装Node.js...

用js生成PDF的方案

在java里,我们常用Itext来生成pdf,在pdf文件里组合图片,文字,画表格,画线等操作,还会遇到中文支持的问题。 那好,现在想直接在web前端就生成pdf怎么办,目前有以下几个解决方案 1:JSPDF.js 这个库支持不同类型的PDF文件格式,包括:文本,数字,图形,图片,同时你可以自由的编辑标题或者其它类型元素。 还支持互动的内容制作,例如,你可...

C语言之生产者与消费者模型

多线程并发应用程序有一个经典的模型,即生产者/消费者模型。系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后提交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完信息后,通知生产者可以继续提供消息。 要实现这个模型,关键在于消费者和生产者这两个线程进行同步。也就是说:只有缓冲区中有消息时,...

Blocks学习笔记总结

  本文是对Apple的《Blocks Progromming Gude》学习的笔记总结。   对象时C级别的语法和运行时特性。和标准C函数很类似,但除了可执行代码外,还可能包含了变量自动绑定(栈)或内存托管(堆)。所以一个block维护一个状态集(数据),可以在执行的时候用来影响程序行为。Block用来作为回调特别有用。   你可以在MAC OS 10....

开发一个简易的图书增删改查页面

需求 """1. 实现用户登录、注册 2. 列出图书列表、出版社列表、作者列表 3. 点击作者,会在新的页面列出该作者出版的图书列表 4. 点击出版社,会列出该出版社旗下图书列表 5. 可以创建、修改、删除 图书、作者、出版社 A. 点击修改书籍按钮,弹出模态框,模态框中展示该书的信息且信息可以修改, B. 书名不可重复,不可修改 C. 修改图书信息时...