- 論壇徽章:
- 0
|
本帖最后由 p0w3r 于 2015-11-09 16:11 編輯
家里有一個樹莓派, 長期插了一個USB 3G網(wǎng)卡用來防止內網(wǎng)設備出問題之后,還可以鏈接進去處理。
用的是 pppd + chat 進行撥號到3G ,但是USB 3G網(wǎng)卡有時候不知道什么情況,會無法撥號,chat的腳本執(zhí)行不成功。
但是把樹莓派重置了就又正常了 。
我是打算利用cpu 的看門狗, 開機之后就打開開門狗。
然后如果3G 撥號成功,就在pppd 的循環(huán)里面 自動喂狗 。
然后如果一直撥號不成功,那么程序就不能進入到 喂狗的循環(huán) ,從而系統(tǒng)重置。
由于 我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);
- }
- }
- }
復制代碼 而我現(xiàn)在自己看的代碼 只跟蹤到這里 , " info("TEST0" ; " 是我自己添加的.
而我這段代碼加了之后 , 觀看日志,無論是否3G撥號是否成功都會執(zhí)行這個. 然而這樣并不能達到我想要效果啊.
有人可以幫個忙, 解答一下,應該在什么地方加喂狗呢? 以及是不是有辦法可以判斷撥號是不是成功了. |
|