4g dial up相关

http://www.voidcn.com/blog/robot__man/article/p-5042573.html

3、配置init.rc。
这里是在Android_src/device/samsung/ut4412/conf目录里新建init.mu709.rc,然后在init.ut4412.rc中导入:
import init.mu709.rc,再在init.rc中导入init.ut4412.rc.
init.mu709.rc的内容如下:


最后,可以su,dmesg或者logcat -b radio来看调试信息。 

用MU709模块按如上设置后,用浏览器可以上网,可以打电话,但是通话没有声音,需进行如下设置:
发AT指令:echo -E "AT^CODECPOW=1" > /dev/ttyUSB0
还可以通过如下AT指令来调节声音:
AT+CLVL=n(n为1~12)调节扬声器的,AT+CMIC=n调节mic的。
我仿照nifc 的这个函数生成了nasw的这个函数,请帮我分析,我不太懂这种函数的逻辑。 LOCAL S32 nifc_network_diagnose_callback(dms_handler_t *handler, U8 *mbuf, U32 mlen, U32 sender_dms_id) { NETWORK_DIAGNOSE_RPL_MSG * diagnose_msg = (NETWORK_DIAGNOSE_RPL_MSG *)mbuf; LINK_STATUS link_status = {0}; LINK link_data = {0}; PHY_STATUS phy_status = {0}; NIFC_DEBUG("NIFC diagnose callback"); ds_read(PHY_STATUS_PATH, &phy_status, sizeof(PHY_STATUS)); if (phy_status.diag_phy == PHY_STATUS_DIAG) { phy_status.diag_phy = PHY_STATUS_IDLE; ds_write(PHY_STATUS_PATH, (U8 *)&phy_status, sizeof(PHY_STATUS)); } if (-1 != g_receive_diag_timeout) { NIFC_DEBUG("link up timer is not needed"); inet_del_timer(g_receive_diag_timeout); g_receive_diag_timeout = -1; } /* 原本未开启diagnose模块,现开启diagnose模块只为使用对前端显示网络连接状态的诊断,*/ /* 因此对diagnose模块的诊断消息暂不做后续处理 */ return OK; if (g_network_diagnose_req != TRUE) { NIFC_DEBUG("other modules initiate network diagnose"); return OK; } if (-1 != g_receive_diag_timeout) { NIFC_DEBUG("link up timer is not needed"); inet_del_timer(g_receive_diag_timeout); g_receive_diag_timeout = -1; } ds_read(LINK_PATH, (U8 *)&link_data, sizeof(link_data)); ds_read(PHY_STATUS_PATH, &phy_status, sizeof(PHY_STATUS)); switch (diagnose_msg->res) { case NETWORK_OK: if ((LINK_CODE_PHYDOWN == link_status.error_code) || (LINK_CODE_INET_ERR == link_status.error_code)) { if (WAN_TYPE_DHCP == link_data.wan_type) { wan_dhcp.delay_set_ip = TRUE; } if (link_status.link_status != LINK_UP) { g_link_params.dial[g_link_params.link_type].link_up(); } } break; case NETWORK_PHY_DOWN: break; case NETWORK_GATEWAY_FAILED: nifc_send_exception_msg(GATEWAY_UNREACHABLE); g_link_params.dial[g_link_params.link_type].link_up(); break; case NETWORK_FAILED: nifc_send_exception_msg(NETWORK_PING_FAILED); g_link_params.dial[g_link_params.link_type].link_up(); break; default: nifc_send_exception_msg(CLOUD_UNREACHABLE); g_link_params.dial[g_link_params.link_type].link_up(); break; } if (phy_status.diag_phy == PHY_STATUS_DIAG) { phy_status.diag_phy = PHY_STATUS_IDLE; ds_write(PHY_STATUS_PATH, (U8 *)&phy_status, sizeof(PHY_STATUS)); } g_network_diagnose_req = FALSE; return OK; } 。/* 网络状态回调函数,用于监听网络状态变化 */ LOCAL S32 nasw_network_status_callback(dms_handler_t *handler, U8 *mbuf, U32 mlen, U32 sender_dms_id) { LINK_STATUS link_status; LTE_STATUS lte_status; (void) handler; (void) mlen; (void) sender_dms_id; if (NULL == mbuf) { NIFC_ERROR("Invalid network status message."); return ERROR; } /* 获取当前网络状态(来自 nifc、lte_manager 等) */ ds_read(LINK_STATUS_PATH, &link_status, sizeof(link_status)); ds_read(LTE_STATUS_PATH, &lte_status, sizeof(lte_status)); if (nasw_auto_switch_enabled == 0) { return OK; // 自动切换未启用 } if (link_status.link_status == LINK_UP && nasw_current_mode != NASW_MODE_WIRED) { NIFC_INFO("Switching to WIRED mode."); nasw_current_mode = NASW_MODE_WIRED; nifc_start(); // 启动有线网络 lte_stop(); // 停止4G网络 } else if (lte_status.connected && nasw_current_mode != NASW_MODE_4G) { NIFC_INFO("Switching to 4G mode."); nasw_current_mode = NASW_MODE_4G; lte_start(); // 启动4G网络 nifc_stop(); // 停止有线网络 } return OK; }
10-10
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值