SMS a internet pomocí user space device driveru?

prezek

  • ***
  • 229
    • Zobrazit profil
SMS a internet pomocí user space device driveru?
« kdy: 17. 12. 2015, 09:45:00 »
Zdravím. Mám Raspberry Pi s GPRS modemem připojený přes převodník USB<->Seriový port a při aktivním internetovém připojení bych potřeboval přijímat SMS. Internet funguje přes ppp protokol. Pppd startuji pomocí wvdialu. Myslel jsem, že bych mezi pppd a soubor ovladače sériového portu (/dev/ttyUSB0) vložil virtuální soubor, ve kterém bych mohl komunikaci přerušit, přečíst a poslat SMS a pak zase pokračovat. Pokud víte o lepším řešení, tak sem s ním.

Jde vytvořit v user space virtuální soubor tak, abych měl plnou kontrolu nad tím, co z něho programy čtou a co zapisují?(v user space simulovat character device)

Díky, Petr


Re:SMS a internet pomocí user space device driveru?
« Odpověď #1 kdy: 17. 12. 2015, 10:21:54 »
Nemá ten modem víc sériových portů? Modemy, co jsem zkoušel, měly třeba tři. Možná by šlo posílat SMSky po některém z těch zbývajících portů.

k

Re:SMS a internet pomocí user space device driveru?
« Odpověď #2 kdy: 17. 12. 2015, 10:36:53 »
Modem který umí dělat něco jiného při navázaném internetovém spojení má rovnou ovladač který vytvoří více sériových portů. Starší GSM/EDGE modemy to uměly skoro všechny, dnešní 3G/4G jen občas.

prezek

  • ***
  • 229
    • Zobrazit profil
Re:SMS a internet pomocí user space device driveru?
« Odpověď #3 kdy: 17. 12. 2015, 10:48:23 »
jedná se o průmyslový modem s jedním sériovým portem. Modem si bohužel nemůžu vybírat.

Radek

Re:SMS a internet pomocí user space device driveru?
« Odpověď #4 kdy: 17. 12. 2015, 11:21:22 »
Ahoj,

kolega to kdysi resil, ale pak se kuli nespolehlivosti od tohoto reseni upustilo. Modem(tenkrat se to resilo pro wavecom) jde vetsinou prepnout do multiplexopvaneho rezimu a pak jde mit jak GPRS tak i SMS. Ale asi by sis musel napsat vlastni "ovladac" co by to dokazal rozdelovat na vice portu, nebo to predavat nejak bokem pppd.

Radek


prezek

  • ***
  • 229
    • Zobrazit profil
Re:SMS a internet pomocí user space device driveru?
« Odpověď #5 kdy: 17. 12. 2015, 12:50:31 »
Chtěl jsem data předávat bokem a nechtěl jsem psát kernel modul, kvůli tomu abych udělal char device. Vypadá to, že jsem našel řešení ve formě 2 virtuálních tty
Kód: [Vybrat]
sudo socat PTY,link=/dev/ttyS98 PTY,link=/dev/ttyS99příkaz vytvoří /dev/ttyS98 a /dev/ttyS99, které jsou mezi sebou provázané, co se zapíše do ttyS98, to se dá vyčíst z ttyS99 a naopak. Hledal jsem poměrně dlouho a našel jsem to až po dotazu zde  :).

Pokud vás napadá lepší řešení, nebo nějaký důvod nepoužívání zmíněného příkazu, dejte vědět.

Radek

Re:SMS a internet pomocí user space device driveru?
« Odpověď #6 kdy: 17. 12. 2015, 15:00:39 »
Ahoj,
ja si myslim ze ten napad se socat neni spatnej. Pripadne muzes volat socat ze sveho programu. Taky jsem nasel neco ohledne toho multiplexu. Koukni sem : https://www.kernel.org/doc/Documentation/serial/n_gsm.txt  https://github.com/Rtone/cmux to je co mi google vratil na dotaz CMUX. Tim se obecne ten multiplex oznacuje.

Radek

prezek

  • ***
  • 229
    • Zobrazit profil
Re:SMS a internet pomocí user space device driveru?
« Odpověď #7 kdy: 17. 12. 2015, 16:48:15 »
Ahoj Radku, díky, na CMUX se podívám.

socat budu moct vynechat otevřením /dev/ptmx mi vznikne v /dev/pty pseudotty, do kterého můžu přeposílat data. Už jsem si ověřil, že při přeposílání dat z modemu mi internet funguje, odesláním +++ ho můžu pozastavit, přečíst SMS a pak zase obnovit. Přesně to jsem potřeboval.