- 论坛徽章:
- 0
|
本帖最后由 p0w3r 于 2015-11-09 16:11 编辑
家里有一个树莓派, 长期插了一个USB 3G网卡用来防止内网设备出问题之后,还可以链接进去处理。
用的是 pppd + chat 进行拨号到3G ,但是USB 3G网卡有时候不知道什么情况,会无法拨号,chat的脚本执行不成功。
但是把树莓派重置了就又正常了 。
我是打算利用cpu 的看门狗, 开机之后就打开开门狗。
然后如果3G 拨号成功,就在pppd 的循环里面 自动喂狗 。
然后如果一直拨号不成功,那么程序就不能进入到 喂狗的循环 ,从而系统重置。
由于 我C语言 只会 很简单的皮毛 , 各种运算以及一些标准输入输出 ,指针这些还不懂 。
看了一天 pppd 2.4.7 的代码 , 只看 main.c 都头大,不知道去哪里下手啊.- #main.c (539-558)
- lcp_open(0); /* Start protocol */
- start_link(0);
- while (phase != PHASE_DEAD) {
- handle_events();
- info("TEST0");
- get_input();
- if (kill_link)
- lcp_close(0, "User request");
- if (asked_to_quit) {
- bundle_terminating = 1;
- if (phase == PHASE_MASTER)
- mp_bundle_terminated();
- }
- if (open_ccp_flag) {
- if (phase == PHASE_NETWORK || phase == PHASE_RUNNING) {
- ccp_fsm[0].flags = OPT_RESTART; /* clears OPT_SILENT */
- (*ccp_protent.open)(0);
- }
- }
- }
复制代码 而我现在自己看的代码 只跟踪到这里 , " info("TEST0" ; " 是我自己添加的.
而我这段代码加了之后 , 观看日志,无论是否3G拨号是否成功都会执行这个. 然而这样并不能达到我想要效果啊.
有人可以帮个忙, 解答一下,应该在什么地方加喂狗呢? 以及是不是有办法可以判断拨号是不是成功了. |
|