niedziela, kwietnia 10, 2011

Komórka - w końcu to taki mały komputerek ;-)

Kiedyś tu narzekałem (jak często robię, bo blog to w końcu miejsce do narzekania ;-)), że nie ma takich fajnych, małych komputerków o małym poborze mocy na których można by było sobie stawiać jakieś zabawne aplikacje....

Jednak jeden już mam ;-) Nazywa się G1 ;-)

Dziś dostał bojowe zadanie monitorowania mojej sieci. Niestety Internetia działa źle, teraz mam internet "w kratkę", kilka minut podziała, po czym przestaje i znów działa i znów przestaje ;-)
Żeby im to zgłosić najprościej byłoby mieć dane liczbowe, bo jeśli podejdą do sprawy poważnie to ktoś od nich może po prostu porównać ichnie logi z tym co im mogę dostarczyć i może zidentyfikuje gdzie leży problem (jak ja to kiedyś zrobiłem z kolegą w pierwszej firmie ;-) A było to tak, że przy pomocy radia przesyłaliśmy pozycję GPS pojazdu, żeby jednak nie zagłuszać zbytnio komunikacji to wysyłanie następowało wg. pewnego algorytmu opisanego z jednej strony konieczną różnicą odległości, a z drugiej strony czasem (w sumie standard, w Androidzie też można powiedzieć providerowi lokalizacji by się darł o jej zmianie tylko jeżeli minęło minimum 5 minut, albo pozycja zmieniła się minimum o 500 metrów), sęk w tym, że rzeczywiste dane były o wiele rzadsze. No i co zrobiliśmy? Z jednej strony dodaliśmy do aplikacji po stronie dyspozytora logowanie tego co przyszło z radia, z drugiej jak już zebraliśmy te dane pobraliśmy dane za interesujący nas okres ze stacji bazowej, która logowała wszystkie informacje kto i kiedy co przesyłał (konieczne do tworzenia bilingów). Z połączenia tych danych wyszła nam przyczyna, po prostu radio używane u dyspozytora miało problem polegający na tym, że jeżeli w odstępie mniejszym niż 5 sekund przychodziło do niego więcej niż 1 wiadomość to do komputera meldowało tylko 1 wiadomość. Radio zostało wymienione na nowszy model bez tego problemu i klient był zadowolony).
Mało prawdopodobne by mój log trafił w ogóle do kogoś kompetentnego bo pewnie zaginie na 1 linii wsparcia (btw. ciekawa sprawa, jak się różnią ludzie z backendu od tych z frontendu. Zwykle dane dostarczone przez 1 linie wsparcia nie pomagają technicznym, choć zwykle byłyby dość proste do zebrania), ale spróbować warto ;-)

Mój loger wykorzystuje SL4A i jest prostym skryptem w Pythonie, który co jakiś czas próbuje pobrać 1 plik z jednej z moich stron, w razie się to nie udaje to loguje to do pliku. Na razie jestem w fazie ustalania dobrego czasu między kolejnymi próbami, bo niestety lub stety ;-) Python jest przebiegły i w razie problemów próbuje jeszcze raz i jeszcze raz i czasem krótsze przerwy w działaniu sieci mogą zostać nie wykryte (tak jak to się teraz dzieje, bo od dobrej minuty jest problem, a programik tego jeszcze nie zalogował).
Sam tester wygląda tak:
import android
import time
import urllib

droid = android.Android()

i=0

while True:
status = 'OK'
try:
a = urllib.urlopen("http://www.przemelek.pl/file/1.txt?"+str(i))
except Exception, err:
f=open('/sdcard/netLog.txt','a')
f.write(str(time.time())+'\n')
f.close()
status=err
print(i,status)
i=i+1
time.sleep(10)


Dam mu teraz trochę czasu i zobaczymy czy działa.

Ale istotne jest to, że mam jednak taki mały komputerek ;-) Jeden problem, że SL4A działa tylko wtedy gdy telefon nie jest zablokowany, przez co jego "telewizor" musi być ciągle włączony.


Podobne postybeta
Python for Android vs. AppInventor - 2:0 ;-)
Jak nie zapomnieć kupić biletu miesięcznego ;-)
Dalsze śledzenie geolokalizacji Google'a :-)
SSD a programowanie
Python z urllib = najlepszy menadżer pobierania ;-)