Fórum Root.cz
Hlavní témata => Software => Téma založeno: prezek 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
-
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ů.
-
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.
-
jedná se o průmyslový modem s jedním sériovým portem. Modem si bohužel nemůžu vybírat.
-
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
-
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
sudo socat PTY,link=/dev/ttyS98 PTY,link=/dev/ttyS99
pří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.
-
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
-
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.