Jumping Jack Flash weblog

Archivio per il 'Programmazione' Categoria


Esportazione appunti (Jotter) da cellulari Symbian UIQ 2.x (p800, p900, Motorola a1000)

Pubblicato da jumpjack su 21 Febbraio 2008

I telefoni UIQ 2.x usano per gli appunti un formato particolare, probabilmente proprieario, binario,
incompatibile con qualunque altra applicazione. Su alcuni modelli è FORSE possibile esportali tramite
SyncML, ma in ogni caso non sul mio Motorola a1000.

Questo è uno studio di reverse engineering sul formato del jotter, che dovrebbe portare, con l’aiuto di chi legge,
a scrivere un programma per PC in grado di esportare le note del Jotter.

Gli appunti sono organizzati su due file:

c:\system\apps\jotter\jotter.ini  File delle categorie

c:\documents\jotter\jotter  File dei dati

Il file jotter.ini sembra contenere il percorso c:\documents\jotter\jotter tante volte quante sono le
categorie esistenti, incluse quelle predefinite Generale e Personale.

E’ inoltre presente l’elenco delle categorie; ogni entry è formato da:

un  byte che indica la lunghezza del testo MOLTIPLICATA PER 4 (???)

il testo

4 byte che rappresentano l’UID della categoria; il terzo di questi byte vale 0×10 se la categoria è
“di sistema” (Generale, Personale, e forse un’altra (???)  ).

La categoria “Tutto” ha l’UID speciale ff ff 00 00

Categoria ”Personale”: 01 10 00 00

Categoria ”Generale”: 02 10 00 00

Sembra che, A VOLTE (???), aggiungendo una nuova categoria, questo elenco non vnga aggiornato, ma quello nuovo viene accodato a quello vecchio.

Le categorie sono elencate in ordine alfabetico.

E’ POSSIBILE che cambiando i percorsi associati alle categorie si possa usare un file Jotter
diverso per ogni categoria (???). Forse bisogna prima creare a mano le cartelle (???).

Il file Jotter contiene i dati degli appunti. Ogni entry è formato da 6 campi (elencati all’inizio del file):

Create_date (8), Update_date (8), Flags ( 8) , UID (4) , Sketch (6), Text_Jot (xxx)

Le date sono in formato symbian standard (vedi articolo apposito).

I flag sono sempre tutti a 00 00 00 sul mio A1000.

L’UID è ovviamente quello della categoria associata.

“Sketch” è presente solo se c’e' un disegno associato alla nota

Text_jot è formato da 2 byte:

- se il primo vale 0×00, il secondo indica IL DOPPIO della lunghezza della stringa dell’appunto.

- se il secondo vale 0×40, il primo indica la lunghezza ESATTA della stringa

- se il secondo vale 0×4Y e il primo 0xQR, con Y=qualunque , allora la lunghezza della stringa è data da 0×0YQR

Probabilmente questo schema è descrivibile in un modo piu’ sensato, che al momento non mi viene in mente…

PROBLEMA: non tutti gli appunti rispettano questo schema: alcuni sono semplicemente stringhe
precedute dalla loro lunghezza!

Questo pero’ puo’ dipendere che il Jotter sul mio a1000 è stato ”ereditato” dal SonyEricsson p800
che avevo prima, per cui forse c’e' stato un miscuglio di formati.

PROBLEMA2: bisogna scoprire se esiste una tabella di indirizzi che punta ai vari entry, per individuare
anche quelli ”speciali” senza intestaiozne.

Questa prima bozza di programma è in grado di estrarre ALCUNI degli appunti (solo se successivi
al 2003), individuandoli tramite le loro date:

http://www.planetmobile.it/jumpjack/ReadJotter.zip

Pubblicato su Motorola a1000, Programmazione, Symbian, Symbian UIQ | Non ci sono Commenti »

Leggere coordinate GPS da ricevitore bluettoth esterno con PersonalJAVA e JavaBT su UIQ

Pubblicato da jumpjack su 28 Ottobre 2007

import se.sics.bt.symbian
import java.lang.Short
import jarray

lib = se.sics.bt.symbian # Connessione a libreria JavaBT
address = jarray.array([0,10,58,35,16,194],’h') # Array di “short” per indirizzo GPS
commander = lib.BTCommander()
device = lib.BTDevice(”LC_GPS”, address, commander) # Prepara connessione a GPS
port = 1
abyte0 = jarray.zeros(3,’b') # Crea array di 3 byte
currentSocket = device.connect(port, commander.RFCOMM, 20) # Apre connessione

i = 1;
print “\nReading data…”
MAX=200 # Numero di bytes da leggere al ricevitore
n=0
dati = “Dati ricevuti: “
while i > -1 and n<MAX:
n=n+3
i = currentSocket.read(abyte0, 3, 1000)
j = 0
while j < i:
dati = dati + chr(abyte0[j]) # Accoda a stringa i dati letti
j = j+1
print “\ndone”
print “LAT: “, dati[dati.find("$GPGGA")+18:dati.find("$GPGGA")+18+9]
print “LON: “, dati[dati.find("$GPGGA")+30:dati.find("$GPGGA")+30+10]
currentSocket.close()

Download file con indentatura corretta:

http://www.planetmobile.it/jumpjack/BT_test.py 

Pubblicato su GPS, Java, Programmazione, jython | Non ci sono Commenti »

Accedere al Bluetooth tramite PersonalJava su telefoni UIQ (A1000, p800, p900)

Pubblicato da jumpjack su 27 Ottobre 2007

Utilizzando PersonalJava, normalmente non è possibile accedere al bluetooth, perchè le librerie JSR82 sono
per J2ME, non per PesonalJava.

Ho però finalmente scoperto, dopo lunghe ricerche, che qualcuno, qualche anno fa, ha scritto una libreria bluetooth
apposta per Symbian UIQ 2.1: è nata per funzionare sul SonyEricsson p900, e pensavo che, come tante applicazioni
“evolute” che girano sui SonyEricsson (vedasi Python, mShell, mobinfo.dll,…) non funzionasse sull’a1000…

E invece FUNZIONA! Non solo: sembra che questa libreria sia anche migliore della JSR82!

Tramite le librerie JavaBT è possibile accedere al bluetooth, ad esempio per leggere le coordinate inviate da un’antenna
GPS.

E’ sufficiente scaricare il programmino java di prova per vedere comparire direttamente sullo schermo i dati
“crudi” trasmessi da un’antenna GPS esterna.

La libreria è fornita anche coi codici sorgenti, per chi volesse ricompilarla per altri sistemi.

La documentazione purtroppo lascia un po’ il tempo che trova…:
http://www.sics.se/humle/projects/mobitip/javabt/tutorial.php 

A parte il fatto di poter leggere i dati di un GPS, la disponibilità di una libreria Bluetooth dovrebbe rendere possibile
anche comunicare direttamente col PC, quindi usare il cellulare come telecomando per il PC, o il PC per inviare
messaggi SMS dal cellulare. Non è purtroppo possibile controllare le applicazione del cellulare tramite PC, perche’
PersonalJava non permette di ”cliccare” virtualmente sullo schermo del telefono o di inviare ”pressioni di tasti” alle
applicazioni.

HikeTracker è un altro progetto per p900 che ho trovato, che si basa sull’uso di bluetooth tramite librerie JavaBT, ma sembra che sull’a1000 non funzioni (il programma crasha).

Ad HikeTracker è ispirato un altro progetto, InhouseTracker, che dovrebbe permettere la localizzazione precisa
all’interno di ambienti chiusi.

Purtroppo entrambi i progetti hanno solo documentazione in tedesco…

Mobitip è un altra applicazione che si basa su JavaBT, ma pare non funzionare sull’a1000.

Comfuture è un’altra applicazione che si basa su JavaBT, volta a rendere l’intera casa telecontrollabile tramite
telefono bluetooth!

Pubblicato su GPS, Java, Programmazione, jython | Non ci sono Commenti »

Risorse per programmazione Visual basic

Pubblicato da jumpjack su 19 Settembre 2007

Forum Italiani:
http://forum.ioprogrammo.it/board.php?boardid=13&sid=c5d3190e4d0be2e5d2a354db7c6929c8

Forum Inglesi:
http://www.vbforums.com/index.php?
http://216.92.17.166/board2/  (EXCEL VBA)
http://www.tek-tips.com/
http://www.codeguru.com/
http://vbcity.com/forums
http://www.vbexplorer.com/VBExplorer/q&aform.asp
http://p2p.wrox.com/forum.asp?FORUM_ID=68
http://www.ozgrid.com/forum/forumdisplay.php?f=8 Excel-VBA
http://www.xtremevbtalk.com/index.php?  Specializzato in VB.NET (–>cos’e’ VB.NET?)
http://www.vba-programmer.com/  Sorgenti vari per Word, Ecxcel,…
http://www.outlookcode.com/ VBA per Outlook (ottimo sito e forum)
Enorme forum di programmazione in generale: http://help.lockergnome.com/office/Programming-VBA-forum-79.html
Altro grande forum di programmazione in generale: http://www.dreamincode.net/forums/
Forum-gateway a vari newsgroup di programmazione con migliaia di messaggi: http://www.velocityreviews.com/forums/forumdisplay.php?s=56c5d9252883c9b28bfca57700abb15f&f=16

 Forum programmazione JAVA della sun (Gateway a newsgroups, quindi affollatissimo!):

http://forum.java.sun.com/forum.jspa?forumID=80&start=0

Tutorial vari in italiano: http://excelvba.altervista.org/
Funzioni gia’ pronte per stringhe: http://www.romankoch.ch/capslock/strfun.bas
Manda evento mouse a finestra: http://www.lucidx.com/outsmart.txt
Manda evento mouse a finestra - 2: http://vbcity.com/forums/topic.asp?tid=135087
Codice già pronto: http://www.freevbcode.com/searchresults.asp
Trucchi e consigli VBA Access (italiano): http://www.sitocomune.com/
VBA Word: http://word.mvps.org/faqs/MacrosVBA/index.htm
Gruppo Google su programazione Access (ITA): http://groups.google.it/group/it.comp.appl.access/topics?lnk=gschg&hl=it
Gruppo Google Visual Basic (ITA): http://groups.google.it/group/it.comp.lang.visual-basic/topics?hl=it&lnk=gschg

Pezzi di codice sorgente già pronti:
http://www.jojo-zawawi.com/code-samples-pages/code-samples.htm
http://www.vba-programmer.com/ 

Pubblicato su Programmazione | Comments Off

Programmare i PocketPC (Windows Mobile)

Pubblicato da jumpjack su 21 Luglio 2007

CASL 4.3 (Compact Application Solution Language):
descrizione: http://www.freewarepocketpc.net/ppc-download-casl-4-3.html
DOWNLOAD
IDE
Scrive programmi per PocketPC / Windows Mobile, PalmOS e Windows
Supporto BT Supporto porta seriale
Supporto socket (HTTP e Telnet)
Supporto IR
Accesso ai file del PDA  

PocketZeus Lite v1.72
Permette di programmare direttamente sul palmare
Descrizione: http://www.freewarepocketpc.net/ppc-download-pocketzeus-lite-v1-72.html
DOWNLOAD

 Basic4ppc
Descrizione: http://www.freewarepocketpc.net/ppc-download-basic4ppc-desktop-v4-0.html
DOWNLOAD
Supporto librerie esterne
Supporto porta seriale
Supporto rotazione schermo
Avvio applicazioni dalla sezione “programmi”
Richiede RUNTIME: http://www.freewarepocketpc.net/ppc-download-basic4ppc-runner-2-05.html 
DOWNLOAD RUNTIME

PocketConsole
descrizione: http://www.freewarepocketpc.net/ppc-download-pocketconsole-v1-3.html
DOWNLOAD
Permette di lanciare applicazioni che non hanno interfaccia grafica.
NON è un emulatore DOS, ma una specie di “DOS nativo per PPC”.
Usare PocketConsole con EmbeddedVisualBasic

PocketCMD - Command prompt per PocketPC
Descrizione: http://www.symbolictools.de/public/pocketconsole/applications/PocketCMD/index.htm
CMD - Command prompt ufficiale della Microsoft per Windows CE
Descrizione: http://www.symbolictools.de/public/pocketconsole/applications/cmd/index.htm

Pubblicato su PocketPC, Programmazione | Non ci sono Commenti »