domenica 12 febbraio 2012

Log su Android (2)

In fase di debugging puo' essere utile non tracciare il programma con il DDMS ma anche inviando i dati al file di log da leggere in diretta mediante Logcat

Per stampare sul file di log il contenuto delle variabili da esaminare si deve aggiungere al programma la chiamata

if (Config.LOGD) Log.d("Nome_programma","Variabile 1 :"+variabile1);


In questo caso viene stampato il valore della variabile1. La prima stringa "Nome_programma" serve ad effettuare un filtro sul comando logcat come per esempio
adb logcat -s Nome_programma:*


In questo modo si vedono solo le parti del log relative al programma in debugging. Il log puo' essere stampato su un file del computer mediante piping
adb logcat -s Nome_programma:* > file_log.txt


Le stesse cose possono essere fatte, con maggiore semplicita' da dentro Eclipse, usando la finestra Logcat in basso nello schermo selezionando l'apposito tab ed impiegando il filtro











sabato 11 febbraio 2012

Screenshot su Android

per effettuare uno screenshot di una applicazione di propria scrittura in esecuzione sul telefono si puo' andare nel mene DDMS (in alto a destra in Eclipse insieme a Java e Debug)
si apre la finestra in cui si deve scegliere l'icona della macchina fotografica
Un esempio di cattura di schermo di una applicazione su cui sto lavorando adesso la potete trovare nella immagine sottoriportata

Force portrait

Per impostare lo schermo dell'applicazione in modo che non ruoti muovendo il telefono si deve impostare nel Manifest.xml il comando


<activity
            android:name=".GeocompassActivity"
            android:label="@string/app_name" 
            android:screenOrientation="portrait">

venerdì 10 febbraio 2012

Applet Wireless Netowork su Gnome


nel caso si cancellasse erroneamente l'applet che gestisce le connessioni Wi-Fi nella barra di Gnome, questa puo' essere ripristinata cliccando destro sulla barra/Aggiungi al Pannello/Area di Notifica

mercoledì 8 febbraio 2012

Bussola Geologica - Geological Compass

 Un utilizzo dei sensori del telefono Android per creare una bussola da rilevamento geologico

 da http://portal.tugraz.at/portal/page/portal/i_2720/Projects/diggc
 Al contrario del normale metodo per orientare la bussola con questo programma basta appoggiare il telefono sulla superficie piana da misurare e si ha direttamente la misura di strike/dip

-------------------------------------------------------------------------------------------
import android, time,math
droid = android.Android()
droid.startSensingTimed(1,1000)
time.sleep(2)
while True:
    azimuth = droid.sensorsReadOrientation().result[0]
    pitch = droid.sensorsReadOrientation().result[1]
    roll = droid.sensorsReadOrientation().result[2]
    pimezzi = math.pi/2


    cosalfa = math.cos(roll-pimezzi)
    cosbeta = math.cos(pitch-pimezzi)
   
    dir_maxpendenza = math.degrees(math.atan(cosalfa/cosbeta))
    if (pitch < 0):
                dir_maxpendenza = dir_maxpendenza + 180
        if ((pitch > 0) and (roll < 0)):
                dir_maxpendenza = dir_maxpendenza + 360
        dir_maxpendenza = (math.degrees(azimuth)+dir_maxpendenza)% 360
    print "Strike : " + str(dir_maxpendenza)
    ang_maxpendenza = 90-math.degrees(math.acos(math.sqrt((cosalfa*cosalfa)+(cosbeta*cosbeta))))
    print "Dip: "+ str(ang_maxpendenza)
droid.stopSensing()
-------------------------------------------------------------------------------------------

martedì 7 febbraio 2012

Git e GitHub

ho spostato il progetto su Git Hub e riporto di seguito un breve tutorial
prima di registrarsi su GitHub e' necessario configurare la propria Linux Box creando le proprie chiavi ssh con il comando
ssh-keygen -t rsa -C "your_email@youremail.com"
formulando la passphrase
successivamente ci si registra su GitHub e nel menu "Account Settings” > Click “SSH Public Keys” > Click “Add another public key” si deve inserire il contenuto del file rsa.pub contenuto nella directory .ssh della propria home.
Si puo' testare il corretto inserimento digitando ssh -T git@github.com

successivo passo importante e' quello di definire l'utente che usa Git
git config --global user.name "Firstname Lastname" 
git config --global user.email "your_email@youremail.com"
 la mail deve essere la stessa con cui e' stata firmata la chiave RSA

successivamete dall'interfaccia del sito si deve creare un repository

per iniziare ad usare il repository ci si deve poi porre nella root del progetto sul disco locale e scrivere
git init
questo comando crea una directory nascosta in cui vengono inseriti i file di configurazione di Git
Dopo di cio' per popolare il server remoto si deve

git add .

git commit -m 'commento al commit'
git remote add origin git@github.com:username/nome_repository.git

git push origin master


per effettuare gli aggiornamenti si puo' procedere,ponendosi nella directory di radice del progetto sottoposto a Git con
git diff per vedere le differenze con il progetto precedente


git commit  -m "stringa" per preparare l'aggiornamento del progetto su GitHub. Fino ad ora comunque non sono state fatte modifiche al sistema di GitHub e tutto rimane in locale. Nella stringa si puo' riassumere in modo stringato le modifiche effettuate

git push -u origin master effettua l'invio e la sincronizzazione con il database remoto

Attenzione: se si sono aggiunti dei file rispetto al commit precedente si deve in modo esplicito digitare il comando
git add nomefile  per includere il file nel progetto Git
per aggiungere invece in un colpo solo tutti i file che sono stati creati nel progetto si digita invece
git add .  (attenzione al punto finale..e' importante)

con git status si ha un elenco della situazione della sincronia del progetto

se si vuole invece copiare un progetto da git e creare una copia locale (clone) si puo' digitare
git clone git@github.com:c1p81/GpsTest.git

domenica 5 febbraio 2012

DGPS su GitHub

il codice del progetto per il GPS Differenziale e' stato pubblicato su GitHub
al link https://github.com/c1p81/GpsTest

per scaricare il codice si puo' utilizzare il link git@github.com:c1p81/GpsTest.git

Feature Matching OpenCv

Il problema e' il seguente: trovare le differenze tra le due foto. Le due immagini sono state riprese a distanza di oltre un anno ed il ...