FreeAC
FreeAC
https://www.right.com.cn/forum/thread-180295-1-1.html
https://gitee.com/freeac/FreeAC
https://github.com/ycsunjane/acctl
https://github.com/hokamyuen/openwrt-acctl
从FreeAC的网站上看到AP端协议部分的源码,于是下载了一份进行了测试,主要测试报告如下:
一、拓扑设计
网站上说AP可以穿透N层NAT被AC管理到,为了方便我自己的电脑在NAT内测,云AC使用的是公网上的http://ac.freeac.cn 。我自己的机器上跑虚拟机,虚拟机是通过本机NAT出去的。换句话说,我的AP程序和AC之间经过了两次NAT。
VM的网卡设置如下:
经过测试,PING外网域名通畅。网络环境准备完毕。
二、准备编译环境
gcc version 4.4.7 20120313 (Red Hat 4.4.7-11) (GCC)
NetBeans IDE 8.0.2 这是一个可选的工具,为了集成化调试方便。如下图:
三、获取源码
http://www.freeac.cn/index.php/d ... ce/14-nswmp-ap.html
下载后解压缩到本地目录。直接make就可以生成ap这个可执行文件。主要参数如下:
[root@localhost ap-1.0.8]# ./ap -h
Usage:
-h --help
-d --debug
以上是使用说明。 -d为DEBUG模式,推荐在调试的时候使用这个模式。
四、关键参数修改
打开源码的global.h文件,可以初始化如下的参数,强烈建议修改这些参数。
static char devid[] = "00112233-4455-6677-8899-AABBCCDDEEFF\0"; //AP的ID,一定要修改,否则和别人冲突了就找不到你的AP了。随便修改几个字符就可以了。这是一个UUID。
static char orgid[] = "E51E9451-1902-CB1E-90AD-EEDBC2EACA89\0"; //商家ID,当你成功注册ac.freeac.cn的账号后,就会生成一个店铺ID。有了这个ID,你的AP才可以能出现你的管理界面里。
static char brcid[] = "132\0"; //店铺ID,生成一个店铺后,就会有这个ID。
static char acip[] = "211.88.76.235\0"; //这是 ac.freeac.cn的云主机地址。这个不必修改,除非你 有自己的AC。
static char S_nsap_board_name[512] = "FreeAC-Demo-HD\0"; // 不需要修改。
static char S_wtp_board_name[512] = "NS-120-bgn\0"; // 不能修改。
五、申请云平台
如何申请云平台,请参与这篇文章。
http://www.freeac.cn/index.php/solution/22-ap-cloud-setup.html
六、测试代码
各项工作准备好后,就可以开始运行 ./ap -d 了。下面是我这里的运行结果:
[root@localhost ap-1.0.8]# ./ap -d
2015-12-28 13:47:29 Debug : NS-AP Device-Id is "00112233-4455-6677-8899-AABBCCDDEEFF"
2015-12-28 13:47:29 Debug : NS-AP Board-Name is ""
2015-12-28 13:47:29 Debug : NS-AP Firmware-Version is "1.0.8"
2015-12-28 13:47:29 Debug : -NSAP-DSCV- AC address : 211.88.76.235
2015-12-28 13:47:29 Debug : -NSAP-DSCV- off-line 211.88.76.235
2015-12-28 13:47:29 Debug : NS-AP Discovery-Address is "211.88.76.235"
2015-12-28 13:47:29 Debug : NS-AP prep init done
2015-12-28 13:47:29 Debug : ==========INIT STATE==========
2015-12-28 13:47:29 Debug : brcid is : 132
2015-12-28 13:47:29 Debug : Send ORGBRC to kernel
2015-12-28 13:47:29 Debug : AC address 211.88.76.235
2015-12-28 13:47:29 Debug : get net mode : bridge
2015-12-28 13:47:29 Debug : Now will sleep 3s to DSCV-State
2015-12-28 13:47:32 Debug : ==========DSCV STATE==========
2015-12-28 13:47:32 Error : S_wtp_board_name = NS-120-bgn
2015-12-28 13:47:32 Debug : brcid is : 132
2015-12-28 13:47:32 Debug : orgid is : E51E9451-1902-CB1E-90AD-EEDBC2EACA89
2015-12-28 13:47:32 Debug : ==========JOIN STATE==========
2015-12-28 13:47:32 Error : S_wtp_board_name = NS-120-bgn
2015-12-28 13:47:32 Debug : apid is 00112233-4455-6677-8899-AABBCCDDEEFF
2015-12-28 13:47:37 Debug : wifi channel is : 11
2015-12-28 13:47:37 Debug : wifi ssid is : FreeAC-SSID
2015-12-28 13:47:37 Debug : Enabled portal : 1
2015-12-28 13:47:38 Debug : portal url is : http://211.88.76.235:8081
2015-12-28 13:48:06 Error : Wifi is starting...
2015-12-28 13:48:06 Debug : ==========RUN STATE==========
2015-12-28 13:48:06 Debug : -RUN- select timeout 120s
2015-12-28 13:50:07 Debug : Send ECHO-REQ message
2015-12-28 13:50:07 Debug : ==========RUN STATE==========
2015-12-28 13:50:07 Debug : -RUN- select timeout 120s
2015-12-28 13:50:07 Debug : AC message code=8, length=24
2015-12-28 13:50:07 Debug : Hand ECHO-REP message
红色部分是global.h中设置的。
蓝色部分是ac.freeac.cn云平台上设置的,由AP程序连接进去后获取的。
下图是ac.freeac.cn云平台上的设置:
如果您没有给AP分配店铺ID,那么AP就在“无线管理”--》“AP管理”中显示。
如果分配了店铺ID,AP列表就会出现在,“商家管理”--》“店铺列表” 点开AP所在的店铺条目后,选择“设备管理”就可以看到这个AP了。
============== End