Odp: 3G INFO
Tzn z ostatnią cyfrą kontrolną czy bez?
Nie jesteś zalogowany. Proszę się zalogować lub zarejestrować.
eko.one.pl → Oprogramowanie / Software → 3G INFO
Strony Poprzednia 1 2 3 4 5 6 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
Tzn z ostatnią cyfrą kontrolną czy bez?
z cyfrą, bez cyfry to ok. 1000, odebrana wczoraj więc chyba z tej nowej puli.
No to ta sama pula, ja jestem 100 wcześniej.
U mnie wciąż problem z Play.
Edit.
skracam posta żeby nie śmiecić
Jak widzisz - modem nie reaguje na polecenie wydane w PDU, natomiast reaguje na zwykłe tekstowe, ale odpowiedź nie jest tekstowa ani PDU (przynajmniej dekoder online nie potrafi sobie poradzić).
Przerób sobie skrypt play_fresh.gcom, żeby nie czekał do 0 Wyjscie tylko "+CUSD:", ale i tak trzeba będzie powalczyć w wynikiem. Pokaż co zwraca AT+CSCS?
AT+CSCS=?
+CSCS: ("IRA","GSM","UCS2")Jak pytam go "tekstowo" gcom'em to również cisza (skryptem play_fresh.
gcom,
to co pokazuje picocom w odpowiedzi to jakieś dziwne kodowanie
EDIT:
domyślnie idzie IRA
zmieniłem, że nie czeka na "0 Wyjście"
Teraz w odpowiedzi mam te szyfry ![]()
Jeszcze AT+CSCS? (nie cscs=?) niech pokaże co ma domyślnie.
Terminal ready
AT+CSCS?
+CSCS: "IRA"
OKPozmieniałem skrypt i teraz
root@Gargoyle:~# gcom -d /dev/ttyUSB2 -s /usr/share/3ginfo/scripts/play_fresh2.gcom
"0050006C006100790020003200340020004D0065006E0075000A00310020004B006F006E0074006F000A0032002000550073006C0075006700690020002F002000500072006F006D006F0063006A0065000A0030002000570079006A0073006300690065000A00570069006500630065006A0020006F00700063006A00690020007A006E0061006A0064007A006900650073007A0020007700200050006C00610079003200340020006E006100200068007400740070003A002F002F00320034002E0070006C00610079002E0070006C",72"I co z tym dalej zrobić to nie wiem. Przed każdym znakiem 0x00. Co to za kod?
Edit:
Właśnie wklepałem hexy do hexedytora i to jest ASCII. To znaczy za pomocą ASCII idzie kod HEX który mówi jak to znak ASCII.
Jakiś obłęd ![]()
@Cezary,
Jak bym zrobił dekoder w C/C++ do tego to dasz radę to skompilować dla ASUSA 500gP V1?
Tak, dało by radę.
Pewnie dało by się to w skrypcie zrobić.
Na razie w C:
// updu2txt.c
#include <stdio.h>
char fh(char h)
{
char r=0;
if ((h>='0') && (h<='9')) {r=h-'0';};
if ((h>='A') && (h<='F')) {r=h-'A'+10;};
if ((h>='a') && (h<='f')) {r=h-'a'+10;};
return r;
}
int main(int argc, char* argv[])
{
int i=0;
char c1,c2,c;
if (argc==2)
{
while ((argv[1][i]) && (argv[1][i+1]))
{
c1=argv[1][i];
c2=argv[1][i+1];
if ((c1!='0') || (c2!='0'))
{
c=((fh(c1)<<4) | (fh(c2)));
printf("%c",c);
}
i+=2;
};
};
printf("\n");
return 0;
}jak dam updu2txt 00xx00yy00zz... to wróci normalny ASCII
testowałem pod Ubuntu i dla tego co podałem u góry to wychodzi:
Play 24 Menu
1 Konto
2 Uslugi / Promocje
0 Wyjscie
Wiecej opcji znajdziesz w Play24 na http://24.play.plJeśli możesz to skompiluj mi proszę dla ASUS WL500gP v1 Backfire (10.03.x, latest version. Always.)
Nie ma potrzeby, masz:
A="0050006C006100790020003200340020004D0065006E0075000A00310020004B006F006E0074006F000A0032002000550073006C0075006700690020002F002000500072006F006D006F0063006A0065000A0030002000570079006A0073006300690065000A00570069006500630065006A0020006F00700063006A00690020007A006E0061006A0064007A006900650073007A0020007700200050006C00610079003200340020006E006100200068007400740070003A002F002F00320034002E0070006C00610079002E0070006C"
echo $A | awk '{for(i=1;;i=i+2) if (substr($1,i,2) != "") {idx++; if (idx % 2 == 0) printf "%c", (index("0123456789ABCDEF",substr($1,i,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+1,1))-1) } else exit;} 'Sprawdziłem na Ubuntu i działa. Wstawię to w skrypt na routerku. Powinno być dobrze.
Działa, bo sprawdzałem u siebie...
PS. na normalnym awk jest prościej bo na tym z busyboxa paru przydatnych funkcji nie ma, np. strtonum...
OK, Śmiga elegancko.
Po złożeniu do kupy.
play_fresh2.gcom
opengt
set com 115200n81
set comecho off
set senddelay 0.02
waitquiet 0.2 0.2
send "AT+CUSD=1,\"*111#\",15^m"
waitfor 10 "+CUSD: "
if % = -1 goto noresponse
send "AT+CUSD=1,\"1\",15^m"
waitfor 10 "+CUSD: "
if % = -1 goto noresponse
send "AT+CUSD=1,\"3\",15^m"
waitfor 10 "+CUSD: "
if % = -1 goto noresponse
get 1 "^m" $s
print $s
send "AT+CUSD=1,\"0\",15^m"
waitfor 10 "+CUSD: "
exit 0
:noresponse
print ""
exit 0play_fresh2.sh
#!/bin/sh
DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device)
O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/play_fresh2.gcom | cut -f2 -d\")
if [ ! -z "$O" ]; then
A=$(echo $O | awk '{for(i=1;;i=i+2) if (substr($1,i,2) != "") {idx++; if (idx % 2 == 0) printf "%c", (index("0123456789ABCDEF",substr($1,i,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+1,1))-1) } else exit;}')
echo $A | sed -e 's/1 Opis 9 Powrot 0 Wyjscie//g'
else
echo "Problem operatora - brak możliwości sprawdzenia"
fiTak patrząc na to to można by zrobić chyba full automat, informacja o operatorze jest, potem zapytać modem, jak odpowie to sprawdzić co wyszły i podjąć decyzję o wyniku.
Teraz muszę powalczyć z bazą BTSów bo coś mi nie działa
Ale nie napisałeś jaki masz modem ![]()
A no widzisz
poedytowałem logi w postach żeby nie śmiecić i zniknęła ta infromacja
Modem to: ZTE INCORPORATED MF100 (Malowany na O2
)
Nie wiem czemu nie działa mi informacja o BTS. Ściągnąłem bazę (ograniczyłem do małopolski) i jak ręcznie przeglądam to moja pozycja w bazie istnieje. Tak samo jak kliknę na link CID to otwiera mi stronkę BTSearch i wyświetla się pozycja (nawet dwie ale ta druga jakaś błędna i z poza województwa).
Przeglądając skrypt 3ginfo.sh to w zasadzie powinno działać bo tu nie ma znaczenia jaki modem.
Chyba że się mylę.
uci show 3ginfo pokaż.
A tak w ogóle to zrób 3ginfo-test i wyślij to mejlem do mnie.
Problem jest z LAC,
skrypt odczytuje 520 a powinno być 520F. Nie wiem gdzie znika "F". Wpisałem ręcznie za linijką:
LAC=$(echo "$O" | awk -F[,] '/\+CREG/ {printf "%s", $3}' | sed 's/[^A-F0-9]//g')bezpośrednio
LAC=$(echo "520F")czyli wymusiłem LAC i zadziałało.
p.s. Raport leci na e-mail
Ok, przeanalizuje sobie dane i zobaczymy co jest do zmiany. Dzięki.
Jeszcze może to się przydać:
Na polecenie
gcom -d /dev/ttyUSB2 -s /usr/share/3ginfo/scripts/3ginfo.gcom
Dostałem:
+CSQ: 13,99
+COPS: 0,0,"Plus",0
+ZPAS: "EDGE","CS_PS"
+CREG: 2,5,520f,5701
DEVICE:ZTE INCORPORATED MF100"f" jest z małej litery, czy wielkość liter ma znaczenie?
play_fresh2.sh
#!/bin/sh DEVICE=$(uci -q get 3ginfo.@3ginfo[0].device) O=$(gcom -d $DEVICE -s /usr/share/3ginfo/scripts/play_fresh2.gcom | cut -f2 -d\") if [ ! -z "$O" ]; then A=$(echo $O | awk '{for(i=1;;i=i+2) if (substr($1,i,2) != "") {idx++; if (idx % 2 == 0) printf "%c", (index("0123456789ABCDEF",substr($1,i,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+1,1))-1) } else exit;}') echo $A | sed -e 's/1 Opis 9 Powrot 0 Wyjscie//g' else echo "Problem operatora - brak możliwości sprawdzenia" fi
No tak, jak sie na szybko pisze to oczywistych spraw nie widać.
echo $O | awk '{for(i=1;;i=i+4)if(substr($1,i,4)!=""){printf "%c",(index("0123456789ABCDEF",substr($1,i+2,1))-1)*16+(index("0123456789ABCDEF",substr($1,i+3,1))-1)}else exit;} 'Małe uproszczenie.
Podmieniłem A-F na a-f i działa wszystko. Widać mój modem tutaj wysyła hexy małymi literami.
Tak, niestety tak.
Zainstaluj sobie nową wersję i sprawdź działanie. Powinno wszystko działać. Konfig zostaw swój, skrypt do limitu nazywa się tak samo: play_fresh2
Potwierdzam: 3GInfo dla ZTE MF100 działa w 100%
Dzięki!
Strony Poprzednia 1 2 3 4 5 6 Następna
Zaloguj się lub zarejestruj by napisać odpowiedź
eko.one.pl → Oprogramowanie / Software → 3G INFO
Forum oparte o PunBB, wspierane przez Informer Technologies, Inc