Hello, Fonts and a LCDgui (plain text)

Rade Girel rade.girel at web.de
Mon Feb 7 17:45:10 UTC 2011

Hello OsmocomBB list members,

To shortly introduce myself, i am a sysadmin with much spare time and
a Motorola C115 mobile phone.

I came to this place after watching a recording of the OsmocomBB talk
at the 27c3. That really started my interest on opensource GSM.

After reading the wikipages and the mailing list archives i downloaded
the sources and had a fully compiling OsmocomBB setup within a few hours.

Great work!

After slaying some headphonecables and an usbcable i hooked my c115
onto the serialport of my pc and it booted out of the box!

Since i am neither a programmer nor an electronic engineer i thought
about what i could be interested in doing that contrbiutes to OsmocomBB.
 (Learning a little C has not hurt too many people i think. so i am on it.)

I didnt find it at http://bb.osmocom.org/trac/wiki/AreasOfWork but in
the Mailinglistarchives of April-2010 i stumbled upon Christian Vogels
post "Subject: PATCH: 5x8 font". After some manual patching i made it
to compile the demo app (Printing all available characters in the font
from upper left corner down to the bottom. Now that looked allmost like
a phone :)

It seems like there have not been any follow ups on proportional fonts
and the remaining ascii characters as well as the possibility to view
different sizes of fonts on the screen.

Because there is not much to see on the C115 and there is no
navigationsystem of any kind implemented in the compal_e88 firmware

I typed together a ericsson clone menu structure with a total of 330
menuitems (transations english to german allmost finished) to have
something to display once the proportional 5x8 fonts are finished.

now i would continue to write
 a menu action handler that checks if a navigation key is pressed
 if  a entry in the menu is selected lets look if there is
 a PhoneMenu "muid" with the siblings "suid" the menu is drawn.
 if it is a sibling only a switch case list where all actions
 get caught and processed will handle it.

Well, what do you think about that? Should it be built in another way?
Am i to early in typing menue structures while the whole "rendering"
is not sorted out in any way? Does anyone work on the fonts or a UI?

I really am not able judge whether a nested structure monster like this
really is the right solution. What it definitly is it is easy to read
understand and extend. at least for me ;)

if someone wants it i can post the complete menu (~1200 lines) somewhere.

Best wishes,

Below are some snipplets of the things i allready did:


struct PhoneMenu
       &nbspint muid;                        /* menu uid */
       &nbspconst char* menuLabel_en;        /* menu name, english */
       &nbspconst char* menuLabel_de;        /* menu name, german */
       &nbspchar siblings;                        /* amount of siblings within the menu */
       &nbspstruct PhoneMenuSibling pms[];  /* nested structure below */ 

struct PhoneMenuSibling
       &nbspint suid;                        /* sibling uid */
       &nbspconst char* siblingLabel_en;        /* label in english */
       &nbspconst char* siblingLabel_de;        /* label in german */


A Menu looks like this:

struct PhoneMenu menu =        /* the startscreen */
 "Main Menu",                        /* menu label */
 "Hauptmenü",                         /* menu label in german language */
 6,                                 /* 6 items in the list below */
        {1, "Phonebook", "Telefonbuch"},
        {2, "Messages", "Nachrichten"},
        {3, "Call information", "Anrufinformation"},
        {4, "Active call", "Aktive Verbindung"},
        {5, "Settings", "Einstellungen"},
        {6, "Extras", "Extras"}

struct PhoneMenu menu_phone_book = 
 "Phone book",
        {11, "Call Contact", "Kontak Anrufen"},
        {12, "Add Contact", "Kontakt hinzufügen"}, 
        {13, "Edit Contact", "Kontakte bearbeiten"},
        {14, "Business Cards", "Visitenkarten"},
        {15, "Call from SIM", "Adresse aus SIM"},
        {16, "Groups", "Gruppen"},
        {17, "Calling Cards", "Rufkarten"},
        {18, "Options", "Optionen"},
        {19, "Memory status", "Speicherverbrauch"}
        {10, "Special numbers", "Spezialnummern"}


struct PhoneMenu menu_phone_book_business_cards_receive = 
 "empfange Visitenkarte",
        {1431, "Via Infrared", "via Infrarot"},
        {1432, "Via Bluetooth", "via Bluetooth"}

More information about the baseband-devel mailing list