20181003_jeffrey - silenceuncrio/diary GitHub Wiki
0840
LTE / Engineer
繼續推進
修改 proscend/prosrc/webcgi/lte.c
為了新增兩組 CGI
- HTTP GET - lte.cgi?get_multi_lock_pci
- HTTP GET - lte.cgi?get_multi_lock_pci_conf_opt
修改如下
@@ -676,6 +676,74 @@ static void _multi_neighbor_pci()
+static json_object * _get_multi_lock_pci_lock_pci()
+{
+ json_object *o = json_object_new_array();
+ for (int i = 0; i < Lock_pci_list.num; i ++)
+ {
+ json_object *e = json_object_new_object();
+ json_object_object_add(e, "idx", json_object_new_int(Lock_pci_list.lock_pci[i].idx));
+ json_object_object_add(e, "frequence", json_object_new_int(Lock_pci_list.lock_pci[i].frequence));
+ json_object_object_add(e, "pcid", json_object_new_int(Lock_pci_list.lock_pci[i].pcid));
+ json_object_object_add(e, "locked", json_object_new_int(Lock_pci_list.lock_pci[i].locked));
+ json_object_array_add(o, e);
+ }
+
+ return o;
+}
+
+static json_object * _get_multi_lock_pci()
+{
+ int res = ICOS_GetSetting(MODULE_LTE, MULTI_LOCK_PCI, 0, &Lock_pci_list, sizeof(Lock_pci_list));
+ if (res != ICOS_SUCCESS)
+ {
+ jweb.http.status(500);
+ jweb.out.json.fail("ICOS_GetSetting fail");
+ }
+
+ json_object *o = json_object_new_object();
+ json_object_object_add(o, "num", json_object_new_int(Lock_pci_list.num));
+ json_object_object_add(o, "lock_pci", _get_multi_lock_pci_lock_pci());
+
+ jweb.out.json.data("multi_lock_pci", o);
+}
+
+
+
+static json_object * _get_multi_lock_pci_conf_opt_lock_pci()
+{
+ json_object *o = json_object_new_array();
+ for (int i = 0; i < Lock_pci_list.num; i ++)
+ {
+ json_object *e = json_object_new_object();
+ json_object_object_add(e, "idx", json_object_new_int(Lock_pci_list.lock_pci[i].idx));
+ json_object_object_add(e, "frequence", json_object_new_int(Lock_pci_list.lock_pci[i].frequence));
+ json_object_object_add(e, "pcid", json_object_new_int(Lock_pci_list.lock_pci[i].pcid));
+ json_object_object_add(e, "locked", json_object_new_int(Lock_pci_list.lock_pci[i].locked));
+ json_object_array_add(o, e);
+ }
+
+ return o;
+}
+
+static json_object * _get_multi_lock_pci_conf_opt()
+{
+ int res = ICOS_GetSetting(MODULE_LTE, MULTI_LOCK_PCI_CONF_OPT, 0, &Lock_pci_list, sizeof(Lock_pci_list));
+ if (res != ICOS_SUCCESS)
+ {
+ jweb.http.status(500);
+ jweb.out.json.fail("ICOS_GetSetting fail");
+ }
+
+ json_object *o = json_object_new_object();
+ json_object_object_add(o, "num", json_object_new_int(Lock_pci_list.num));
+ json_object_object_add(o, "lock_pci", _get_multi_lock_pci_conf_opt_lock_pci());
+
+ jweb.out.json.data("multi_lock_pci_conf_opt", o);
+}
+
+
+
static void _help()
{
jweb.out.json.ok();
@@ -759,6 +827,14 @@ int main(void)
{
_multi_neighbor_pci();
}
+ else if (STRCMP(jweb.in.act, "get_multi_lock_pci"))
+ {
+ _get_multi_lock_pci();
+ }
+ else if (STRCMP(jweb.in.act, "get_multi_lock_pci_conf_opt"))
+ {
+ _get_multi_lock_pci_conf_opt();
+ }
else if (STRCMP(jweb.in.act, "help"))
{
_help();
成果如下 - 不過還沒 implement apply 所以都是空的
lte.cgi?get_multi_lock_pci
lte.cgi?get_multi_lock_pci_conf_opt
先 commit 但不 push
commit 08e79ba366130b8c5d32204a06b0d534238d3610
Refs: [release/v0.08]
Author: jeffrey <[email protected]>
Date: Wed Oct 3 09:11:27 2018 +0800
add 2 CGIs for 'LTE / Engineer' web page:
- HTTP GET - lte.cgi?get_multi_lock_pci
- HTTP GET - lte.cgi?get_multi_lock_pci_conf_opt
proscend/prosrc/webcgi/lte.c | 76 ++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 76 insertions(+)
來作 apply 的部分
- HTTP POST - lte.cgi?act=apply_multi_lock_pci
- HTTP POST - lte.cgi?act=apply_multi_lock_pci_conf_opt
修改如下 - proscend/prosrc/webcgi/lte.c
@@ -744,6 +744,70 @@ static json_object * _get_multi_lock_pci_conf_opt()
+static void _apply_multi_lock_pci()
+{
+ jweb.in.to_int("num", &Neighbour_list.num);
+
+ json_object *neighbor;
+ jweb.in.to_raw("neighbor", &neighbor);
+ for (int i = 0; i < Neighbour_list.num; i ++)
+ {
+ json_object *e = json_object_array_get_idx(neighbor, i);
+ jweb.j.to_nstring(e, "rate", Neighbour_list.neighbor[i].rate, 10 - 1);
+ jweb.j.to_int(e, "earfcn", &Neighbour_list.neighbor[i].earfcn);
+ jweb.j.to_int(e, "pcid", &Neighbour_list.neighbor[i].pcid);
+ jweb.j.to_int(e, "rsrq", &Neighbour_list.neighbor[i].rsrq);
+ jweb.j.to_int(e, "rsrp", &Neighbour_list.neighbor[i].rsrp);
+ jweb.j.to_int(e, "rssi", &Neighbour_list.neighbor[i].rssi);
+ jweb.j.to_int(e, "sinr", &Neighbour_list.neighbor[i].sinr);
+ jweb.j.to_int(e, "cell_resel_priority", &Neighbour_list.neighbor[i].cell_resel_priority);
+ jweb.j.to_bool(e, "select", &Neighbour_list.neighbor[i].select);
+ }
+
+ int res = ICOS_Apply(MODULE_LTE, MULTI_LOCK_PCI, 0, &Neighbour_list, sizeof(Neighbour_list));
+ if (res != ICOS_SUCCESS)
+ {
+ jweb.http.status(500);
+ jweb.out.json.fail("ICOS_Apply fail");
+ }
+
+ jweb.out.json.ok();
+}
+
+
+
+static void _apply_multi_lock_pci_conf_opt()
+{
+ jweb.in.to_int("num", &Neighbour_list.num);
+
+ json_object *neighbor;
+ jweb.in.to_raw("neighbor", &neighbor);
+ for (int i = 0; i < Neighbour_list.num; i ++)
+ {
+ json_object *e = json_object_array_get_idx(neighbor, i);
+ jweb.j.to_nstring(e, "rate", Neighbour_list.neighbor[i].rate, 10 - 1);
+ jweb.j.to_int(e, "earfcn", &Neighbour_list.neighbor[i].earfcn);
+ jweb.j.to_int(e, "pcid", &Neighbour_list.neighbor[i].pcid);
+ jweb.j.to_int(e, "rsrq", &Neighbour_list.neighbor[i].rsrq);
+ jweb.j.to_int(e, "rsrp", &Neighbour_list.neighbor[i].rsrp);
+ jweb.j.to_int(e, "rssi", &Neighbour_list.neighbor[i].rssi);
+ jweb.j.to_int(e, "sinr", &Neighbour_list.neighbor[i].sinr);
+ jweb.j.to_int(e, "cell_resel_priority", &Neighbour_list.neighbor[i].cell_resel_priority);
+ jweb.j.to_bool(e, "select", &Neighbour_list.neighbor[i].select);
+ }
+
+ int res = ICOS_Apply(MODULE_LTE, MULTI_LOCK_PCI_CONF_OPT, 0, &Neighbour_list, sizeof(Neighbour_list));
+ if (res != ICOS_SUCCESS)
+ {
+ jweb.http.status(500);
+ jweb.out.json.fail("ICOS_Apply fail");
+ }
+
+ jweb.out.json.ok();
+}
+
+
+
static void _help()
{
jweb.out.json.ok();
@@ -835,6 +899,14 @@ int main(void)
{
_get_multi_lock_pci_conf_opt();
}
+ else if (STRCMP(jweb.in.act, "apply_multi_lock_pci"))
+ {
+ _apply_multi_lock_pci();
+ }
+ else if (STRCMP(jweb.in.act, "apply_multi_lock_pci_conf_opt"))
+ {
+ _apply_multi_lock_pci_conf_opt();
+ }
else if (STRCMP(jweb.in.act, "help"))
{
_help();
1350
完工
commit 8ae5f83adafc11a09c4d4ad7a6cba7d85ae8ab9c
Refs: [release/v0.08], {origin/release/v0.08}
Author: jeffrey <[email protected]>
Date: Wed Oct 3 13:44:27 2018 +0800
re-design 'LTE / Engineer' web page:
- nav tab Neighbors
- Search
- Lock
- Unlock
- Save for bootup locked
- nav tab Locked PCIs
- Refresh
- nav tab Saved Locked PCIs
- Refresh
proscend/prosrc/webcgi/lte.c | 72 ++++++++++++
proscend/prosrc/www/app/feature/engineer.html | 120 ++++++++++---------
proscend/prosrc/www/app/feature/engineer.js | 139 ++++++++++++-----------
proscend/prosrc/www/app/locale-en.json | 41 ++-----
proscend/prosrc/www/app/locale-fr.json | 35 ++----
proscend/prosrc/www/app/locale-zh-tw.json | 35 ++----
proscend/prosrc/www/app/services/icos.service.js | 12 ++
7 files changed, 248 insertions(+), 206 deletions(-)
push and pull latest then build image... ok
1425
剛剛 aaron 那邊也發生 firmware upgrade javascript 沒要到最後的 finish
aaron 那邊和 john 發生的現象又不一樣
FirmwareUpgrade.log
表示已作完
不過 FirmwareUpgrade.progress
卻還是顯示 busy
aaron 表示他今天利用 web ui 作 upgrade 大概作了 三四 次
我想者問題有待查證
最糟就要退回去 CGI 咬住的狀態了
1450
Lock PCIs
應該算完工了
commit dd1f4ad2d2d13d88e21692b81b8071238e9cad44
Refs: [release/v0.08], {origin/release/v0.08}
Author: jeffrey <[email protected]>
Date: Wed Oct 3 14:47:15 2018 +0800
re-design 'LTE / Engineer' web page:
- rm 'LTE / Engineer' web page
- add 'LTE / Lock PCIs' web page
proscend/prosrc/icos/iweb/iweb.c | 2 +
proscend/prosrc/www/app/feature/engineer.html | 180 -------------------------
proscend/prosrc/www/app/feature/engineer.js | 172 -----------------------
proscend/prosrc/www/app/feature/lock_pcis.html | 180 +++++++++++++++++++++++++
proscend/prosrc/www/app/feature/lock_pcis.js | 157 +++++++++++++++++++++
proscend/prosrc/www/app/locale-en.json | 39 +++---
proscend/prosrc/www/app/locale-fr.json | 39 +++---
proscend/prosrc/www/app/locale-zh-tw.json | 39 +++---
proscend/prosrc/www/src/index.html.src | 2 +-
proscend/prosrc/www/src/menu.html.src | 2 +-
10 files changed, 401 insertions(+), 411 deletions(-)
1505
commit 18652e0b9c65713d5b2b291dfc3d7c5d997c47d7
Refs: [release/v0.08], {origin/release/v0.08}
Author: jeffrey <[email protected]>
Date: Wed Oct 3 15:04:11 2018 +0800
add 'Connection Request Port' field for 'Service / TR069' web page
proscend/prosrc/webcgi/cwmp.c | 4 ++++
proscend/prosrc/www/app/feature/cwmp.html | 8 ++++++++
proscend/prosrc/www/app/locale-en.json | 1 +
proscend/prosrc/www/app/locale-fr.json | 1 +
proscend/prosrc/www/app/locale-zh-tw.json | 1 +
5 files changed, 15 insertions(+)
1515
commit a8759b531f3dd49a00f9c23c78c9b2f5eda8233c
Refs: [release/v0.08], {origin/release/v0.08}
Author: jeffrey <[email protected]>
Date: Wed Oct 3 15:12:05 2018 +0800
about 'Management / Identification' web page:
- rm MAC Address field
- add LAN MAC Address field
- add WAN MAC Address field
proscend/prosrc/www/app/feature/identification.html | 3 ++-
proscend/prosrc/www/app/locale-en.json | 2 ++
proscend/prosrc/www/app/locale-fr.json | 2 ++
proscend/prosrc/www/app/locale-zh-tw.json | 2 ++
4 files changed, 8 insertions(+), 1 deletion(-)
1650
再回頭 check 一下為何 52XXZ 的 zebra 起不來
先把相關的 icos module 都不要 init - proscend/prosrc/icos/icoslib/entry.c
@@ -182,7 +182,7 @@ sAttStringSet moduleInitAry[] =
{ "MODULE_ROUTE", MODULE_ROUTE },
#endif
#ifdef PROSRC_ZEBRA
- { "MODULE_ZEBRA", MODULE_ZEBRA },
+// { "MODULE_ZEBRA", MODULE_ZEBRA },
#endif
#ifdef PROSRC_RIP
{ "MODULE_RIP", MODULE_RIP },
@@ -194,13 +194,13 @@ sAttStringSet moduleInitAry[] =
{ "MODULE_SMTP", MODULE_SMTP },
#endif
#ifdef PROSRC_OSPF_2G
- { "MODULE_OSPF_2G", MODULE_OSPF_2G },
+// { "MODULE_OSPF_2G", MODULE_OSPF_2G },
#endif
#ifdef PROSRC_RIP_2G
- { "MODULE_RIP_2G", MODULE_RIP_2G },
+// { "MODULE_RIP_2G", MODULE_RIP_2G },
#endif
#ifdef PROSRC_BGP
- { "MODULE_BGP", MODULE_BGP },
+// { "MODULE_BGP", MODULE_BGP },
#endif
#ifdef PROSRC_AZ
{ "MODULE_AZ", MODULE_AZ },
發現 quagga package 52XXZ 與 M360P 版本和放的位置都不一樣
M360P
- package/net/quagga
- PKG_VERSION: 1.1.0 52XXZ
- package/feeds/open_applications/quagga
- PKG_VERSION: 0.99.20
先把 52XXZ 的 quagga package 移除
直接在 proscend 外層 make
再進 proscend make clean
後再 make
upgrade via uboot... ok
...
insmod: can't insert '/lib/modules/3.10.12/usb-storage.ko': unknown symbol in module, or unknown parameter
insmod: can't insert '/lib/modules/3.10.12/usbserial.ko': unknown symbol in module, or unknown parameter
insmod: can't insert '/lib/modules/3.10.12/usb_wwan.ko': unknown symbol in module, or unknown parameter
insmod: can't insert '/lib/modules/3.10.12/option.ko': unknown symbol in module, or unknown parameter
...
怎麼跟上次 busybox 更新後的狀況一一樣
不管
直接從 M360P 將 quagga package 複製過來
在 proscend 外層作 make distclean
後再 make