1.英文翻译中文,直接替换language_en.js里面内容,很方便快捷
2.在home.htm里<style type="text/css">后面可以设置页面居中或其他页面布局
3.双语切换home.htm里增加
<meta http-equiv="Content-Type" content="text/html;charset=<% getLangInfo("charset");%>">
\r
<SCRIPT language=Javascript src='<% getLangInfo("lang");%>'></SCRIPT>
可以调用双语切换的函数脚本
4.dw('<tr><td id="SSIDSiteSurvey_button"><input type="button" value="站点扫描" name="refresh" οnclick="SSIDSiteSurvey.window.siteSurvey('+pass_arg+');"></td></tr>')
替换为:
var hjb_button = '<tr><td id="SSIDSiteSurvey_button"><input type="button" value="';
hjb_button += hjb_site_survey;
hjb_button += '" name="refresh" οnclick="SSIDSiteSurvey.window.siteSurvey('+pass_arg+');"></td></tr>'
dw(hjb_button);
即可把“站点扫描”从js脚本中调取,方便中英文切换
一般是直接用;<script>dw(abcdef)</script>,替换abcdef
或者如下方法替换:
form.format0.options[0].text="ASCII (5 characters)";
\r
form.format0.options[1].text="Hex (10 characters)";
\r
form.format0.options[0].text= ASCII5;
\r
form.format0.options[1].text= HEX10;
\r
5.在fmmget.c里面增加:
cyg_clock_to_counter(cyg_real_time_clock(), &counter_handle);
\r
cyg_alarm_create(counter_handle, alarm_func, 0, &alarm_handle, &alarm_object);
\r
cyg_alarm_initialize(alarm_handle, cyg_current_time()+ALARM_INTERVAL, ALARM_INTERVAL);
\r
cyg_alarm_enable(alarm_handle);
\r
printf("enable alarm\n");
void alarm_func(cyg_handle_t alarm_handle, cyg_addrword_t data)
\r
{
printf("alarm to reboot\n");
\r
RunSystemCmd(NULL_FILE,"reboot",NULL_STR);
\r
}
\r
ecos的时钟、定时器等操作,可以查阅其他资料
这里面有一个bug,alarm_func属于回调函数,里面禁止用printf,这个BUG弄了一天才解除。
6.这两个函数比较有用,设置参数和保存配置的时候用
apmib_set(mibid, (void *)&tmpVal)
\r
apmib_update(CURRENT_SETTING);
7.在apmib.h里面:
-typedef enum {ENGLISH=0,SIMPLE_CHINESE=1,JAPAN,KOREA,TRADITION_CHAIN} LANGUAGE_TYPE_T;
+typedef enum {SIMPLE_CHINESE=0,ENGLISH=1,JAPAN,KOREA,TRADITION_CHAIN} LANGUAGE_TYPE_T;
8
.在
pocket_sitesurvey.htm里
- <table border="1" style="table-layout:fixed" width=610>
+ <table border="0" style="table-layout:fixed" width=610>
可以把页面上的一条线给去掉,这些应该交给UI做的
9.修改5G的默认信道:
在flash.c里面
pMib->wlan[idx][0].channel = 149;
SDK里面找到的配置文件其实没有生效,只能在flash.c里面writeDefault()函数直接修改了
同上修改SSID也是在这flash.c里面修改:
strcpy(pMib->wlan[idx][0].ssid, idx?"RTK_123456789":"RTK_123456789");
10、2.4G只有1~11信道,但中国大陆是1~13信道,故修改方法如下:
在8192cd_util.c文件里面,static struct channel_list reg_channel_2_4g[] = {结构体里
- /* CN */ {{1,2,3,4,5,6,7,8,9,10,11},11},
\r
+ /* CN */ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
因为SDK默认是使用FCC(美国)的信道,所以修改FCC的更方便操作;
- /* FCC */ {{1,2,3,4,5,6,7,8,9,10,11},11},
\r
+ /* FCC */ {{1,2,3,4,5,6,7,8,9,10,11,12,13},13},
\r
11. 当SSID长度太长时会出现BUG,修改方法如下:
+// parent.document.getElementById("wlbasic_ssid0").value = document.getElementById("selSSID_VAL_"+selId).value+"-rpt";
+// parent.document.getElementById("wisp_ap_ssid").value = document.getElementById("selSSID_VAL_"+selId).value+"-rpt";
+ if(hjb_ssid.length >25){
+ hjb_ssid = hjb_ssid.substring(0,24);
+ parent.document.getElementById("wlbasic_ssid0").value = hjb_ssid+"-rpt";
+ parent.document.getElementById("wisp_ap_ssid").value = hjb_ssid+"-rpt";
+ }
+ else {
+ parent.document.getElementById("wlbasic_ssid0").value = document.getElementById("selSSID_VAL_"+selId).value+"-rpt";
+ parent.document.getElementById("wisp_ap_ssid").value = document.getElementById("selSSID_VAL_"+selId).value+"-rpt";
+ }
+
关键点是 hjb_ssid = hjb_ssid.substring(0,24);这一项。
12.网口检测有BUG,无法准确判断是否插入网线,对着datasheet和原理图,检查底层配置
int32 wan_link_status(int port)
{
uint32 regData;
uint32 data0;
regData = READ_MEM32(PSRP0+((port)<<2));
data0 = regData & PortStatusLinkUp;
return data0;
}
而PSRP0+((port)<<2=0xBB80 4128 + 1<<2=0xBB80 412C 这个地址,也的确没错。
那么判断端口状态应该是稳定的,但实际不是。
实际上在
sys_init.c里面,加一个延时就OK了,这个BUG也弄了好几天:
val2 = DHCP_SERVER;
apmib_set( MIB_DHCP, (void *)&val2);
+ sleep(1);
val = wan_link_status(port);
if (val) {
printf(" ==> router mode\n");
12.不需要网口自动检测
在
sys_init.c里面
void auto_opmode(int port)
{
- int val, val2;
+ int val, val2, val3;
apmib_get( MIB_WAN_DETECT, (void *)&val);
if (val == 1) {
apmib_get( MIB_OP_MODE, (void *)&val2);
sleep(2);
- if (val == 1 && val2 == BRIDGE_MODE) { //upgrade kit
+ /* if (val == 1 && val2 == BRIDGE_MODE) { //upgrade kit
printf(" ==> AP mode, ");//by hjb
val = wan_link_status(port);
if (val) {
apmib_set( MIB_WLAN_CHANNEL, (void *)&val);
#endif
}
- }
+ } */
+
+ val3 = DHCP_SERVER;
+ apmib_set( MIB_DHCP, (void *)&val3);
+ if (val2 == 2) {//WISP
+ printf(" ==> WISP mode\n");
+ val = WISP_MODE;
+ apmib_set( MIB_OP_MODE, (void *)&val);
+
+ val = 1;
+ apmib_set( MIB_REPEATER_ENABLED1, (void *)&val);
+ apmib_set( MIB_REPEATER_ENABLED2, (void *)&val);
+
+ #if defined(CONFIG_CMJ_WAN_DETECT)
+ //change to wlan0-vxd
+ apmib_set_vwlanidx(NUM_VWLAN_INTERFACE);
+ apmib_get( MIB_WLAN_CHANNEL, (void *)&val);
+ //change to wlan0
+ apmib_set_vwlanidx(0);
+ apmib_set( MIB_WLAN_CHANNEL, (void *)&val);
+ #endif
+ }
+ else{
+ printf(" ==> router mode\n");
+ val = GATEWAY_MODE;
+ apmib_set( MIB_OP_MODE, (void *)&val);
+
+ val = 0;
+ apmib_set( MIB_REPEATER_ENABLED1, (void *)&val);
+ apmib_set( MIB_REPEATER_ENABLED2, (void *)&val);
+
+ #if defined(CONFIG_CMJ_WAN_DETECT)
+ apmib_set( MIB_WLAN_CHANNEL, (void *)&val);
+ #endif
+ }
关键是屏蔽 val = wan_link_status(port);这个函数。