Automatinis modemo prijungimas po atsijungimo

Užsikrovus Raspbian OS paleidžiamas autostartuojantis /etc/rc.local failas, kuriame įrašyta wvdial komanda.
Dingus ryšiui inicijuojamas modemo perkrovimas. Praktika parodė, kad pakanka modemo maitinimo išjungimo-įjungimo. Suprojektuokime 3G modemo įtampos padavimą per elektroninį raktą, valdomą GPIO7 išvadu. Schema atrodytų sekančiai:

Parašykim programėlę GPIO7 išvado valdymui: 3gonoff.

#include <iostream>
#include <stdio.h>
#include <sstream> // for std::stringstream
using namespace std;
#include <string.h>        //used by string
#include <wiringPi.h>
int main(int argc, char *argv[]) {
cout << "Raspbery GPIO 7 porto valdymas: on/off\n";
wiringPiSetup ();
pinMode (7, OUTPUT);
if (argc>1) {
std::stringstream convert(argv[1]);
int myint;
if (!(convert >> myint))
myint = 0;
if (myint==1) {
cout << "įjungiama\n";
digitalWrite(7, HIGH);
} else if (myint==0) {
cout << "išjungiamas\n";
digitalWrite(7, LOW);
} else {
cout << "argumentas turi būti 0 arba 1. Pvz: './3gonoff 0'\n";
}
} else {
cout << "argumentas turi būti 0 arba 1. Pvz: './3gonoff 0'\n";
}
return 0;
}

Kompiliavimo komanda: „g++ 3gonoff.c -o 3gonoff.o -lwiringPi”

Komandinė eilutė: „./3gonoff 1” – reiškia įjungimo komandą, „./3gonoff 0” reiškia išjungimo komandą.

Išsijungia gana lėtai: per 1-3 sek. Matosi kaip gęsta mėlynas 3g modemo indikatorius

Ši programa paruošta, bet dar nenaudojama. Tikiuosi kitų sprendimų, siekiant užtikrinti nenutrūkstamą Ineto darbą.

Parašykite komentarą