Motivation to fork Gnokii

Note

Please note that this is original list of differences written by Marcin when forking Gnokii, so it represents state of the code in that time.

  1. Unicode used almost everywhere. In MyGnokii and Gnokii with modern

    phones (they return everything in Unicode) things are converted from Unicode and again to Unicode in other places. No more unnecessary conversions.

  2. Almost everything is structural. In Gnokii some things are declared

    in files, not in “main” phone structure. It can make some problems, when will try to support two phones on two serial ports in one application.

  3. in Gammu you can make support for some things without adding source

    to “main” phone modules. Very good idea for things, which are available only for few models and for all other will be UNIMPLEMENTED. It includes also some obsolete functions - why should we compile RLP source, when all new better phones have modems built in ?

  4. Gnokii/MyGnokii has to have some compatibility with previously written source. In Gammu some solutions are reimplemented and done easier.

  5. no more reimplementing C libraries in source - see snprintf in gnokii.

  6. more OS supported.

  7. better sharing source. Less source = smaller application easier to debug.

  8. better user friendly interface

  9. no more 2 years rewriting source…

  10. it’s easier to see, what frames are implemented, what not (in phone modules they’re put line after line).

  11. better compatibility with ANSI C = no warnings in MS VC 6

  12. all locations for user start from 0 (in Gnokii some from 0, some from 1)

  13. some things like SMS can be accessed few ways

  14. when possible, there are used “constant” locations. I will explain on the example:

    1. save two calendar notes in any Nokia 61xx phone. Call them “reminder” and “call” notes. Reminder will be returned by phone of 1’st location, Call on 2’nd.
    2. Now Reminder will be deleted (for example, from phone keypad). Call will be moved from 2’nd to 1’st.
    3. When will read calendar notes again, have to read all notes again because of changed locations (let’s say, we won’t read Call note again. It will have location 2 in PC. Now you will write new note into phone (for keypad) and it will save in under location 2. When will try to save Call not with location 2, it will overwrite new saved note !).

    This is not good. When for example delete one entry from phonebook, other locations “stays” on their places. These are “constant” locations.

    With “constant” locations, when delete one location from PC, don’t have to read full memory from phone.

etc. etc.

Of course, some of these things can be in the future in gnokii too…