motofan logo
6 страниц V « < 4 5 6        
> 

Elf's and mod's by zema00, погодный информер

zema00
сообщение 8.1.2010, 1:28 Закрепленное сообщение!


Опытный
***

Группа: Пользователи
Сообщений: 112
Регистрация: 19.6.2009
Пользователь №: 201 595

Рейтинг: 35



Gismeteo

Spoiler:
Погодный информер под ЕП1 . Эльф заточен под мелкий шрифт ленге (типа как на скрине). Прикрепленное изображение. Закинуть в тел все в одну папку. Внимание! наобходим запущенный SyncSock GPRS internet
Прикрепленный файл Gismeteo_v4.zip   ( 36.91 килобайт ) Кол-во скачиваний: 638
[close]


WD
Spoiler:
Альтернатива фонарику. При запуске загорается экран белым, выход по красной кнопке. Эльф для ЕП1.
smile.gif
Прикрепленный файл WD.rar   ( 2.55 килобайт ) Кол-во скачиваний: 759


WD - сокращение от английского white display.
[close]

Balance
Spoiler:
Состояние счета не рабочем столе. Мод делал давно, т.к. у меня в теле совсем мало оперативки чтоб держать в авторане такой большой эльф Informer.. Решил выложить.
Прикрепленный файл Balance.zip   ( 6.67 килобайт ) Кол-во скачиваний: 357
[close]


Сообщение отредактировал zema00 - 4.10.2010, 16:20
Прикрепленное изображение
Прикрепленный файл IDs_towns_gismeteo.txt   ( 76.66 килобайт ) Кол-во скачиваний: 612
Прикрепленный файл WD.rar   ( 2.55 килобайт ) Кол-во скачиваний: 759
Прикрепленный файл Gismeteo_v4.zip   ( 36.91 килобайт ) Кол-во скачиваний: 638
Прикрепленный файл Balance.zip   ( 6.67 килобайт ) Кол-во скачиваний: 357
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 30.9.2010, 20:17


Гуру
******

Группа: Разработчики
Сообщений: 720
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 515



Можно пожалуйста WD в zip, а то rar не распаковать

Zema00:в зип


Сообщение отредактировал zema00 - 1.10.2010, 22:03
Прикрепленный файл WD.zip   ( 3.01 килобайт ) Кол-во скачиваний: 163
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zema00
сообщение 2.10.2010, 21:12


Опытный
***

Группа: Пользователи
Сообщений: 112
Регистрация: 19.6.2009
Пользователь №: 201 595

Рейтинг: 35



Цитата(Osta @ 28.9.2010, 21:39) *


5-ое слово из запроса не отображается (1,2,3,4,5)


Попробуй эту версию, если попрежнему не будет отображатся, то пожалуйста сними лог.


Удалил файл.

Сообщение отредактировал zema00 - 3.10.2010, 11:53
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 3.10.2010, 9:15


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



увы не отображается
лог снять не могу
+ нет пробела между последним и предпоследним словом в обоих версиях
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zema00
сообщение 3.10.2010, 11:50


Опытный
***

Группа: Пользователи
Сообщений: 112
Регистрация: 19.6.2009
Пользователь №: 201 595

Рейтинг: 35



Цитата(Osta @ 3.10.2010, 13:15) *


+ нет пробела


с пробелом решу вопрос.

Цитата
доделать внеочередной запрос USSD через 10 мин после окончания разговора?


Неподскажешь как получать конец разговора? crazy.gif
Цитата
лог снять не могу


В логе нужно смотреть что приходит, ответ запроса может приходить не словами, а кодом.
и возможно пятое слово это "пробел" или "еще какой-нить символ", попробуй ради интереса отобразить (хоть у тебя всего пять слов в ussd) восемь слов , к примеру, 1,2,3,4,5,6,7,8

Сообщение отредактировал zema00 - 3.10.2010, 11:51
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Osta
сообщение 3.10.2010, 13:31


Freestyler
********

Группа: Легенды MotoFan.Ru
Сообщений: 10 329
Регистрация: 20.7.2004
Пользователь №: 8 235
Модель телефона: Moto
Прошивка: *#9999#


Настроение:
Все невыспавшиеся в следующей жизни будут котами



Рейтинг: 4362



Цитата(zema00 @ Сегодня, 14:50)

Неподскажешь как получать конец разговора?
*


глянь как там в либе ивент call_end или что-то подобное
ловишь его - запускаешь таймер
Цитата(zema00 @ Сегодня, 14:50)

попробуй ради интереса отобразить (хоть у тебя всего пять слов в ussd) восемь слов
*


делал - глухо
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 3.10.2010, 18:09


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 464



zema00, Если слово не найдено, то возвратит NULL, иначе - указатель на начало слова. Слова индексируются с 1. Входная строка изменяется!!!

Код
WCHAR * GetWordInString(WCHAR *input, UINT32 word_index)
{
    UINT32 i;
    WCHAR *ptr, *word;

    if(input == NULL || word_index <= 0)
        return NULL;

    //Удаляем пробелы в начале
    ptr = input;
    while(*ptr == L' ') ptr++;
    memcpy(input, ptr, u_strsize(ptr));

    //Удаляем повторяющиеся пробелы между словами
    for(i=0; input[i] != 0; i++)
    {
        if(input[i] == L' ' && input[i+1] == L' ')
        {
            memcpy(&input[i], &input[i+1], u_strsize(&input[i+1]));
            i--;
        }
    }

    //Удаляем пробел в конце.
    ptr = input + u_strlen(input);
    if(*ptr == L' ') *ptr == 0;


    //Поиск слова
    ptr = input;
    word = input;
    for(i=0; i<word_index - 1; i++)
    {
        word = u_strstr(ptr, L" ");
        if(word == NULL) break;
        ptr = word + 1;
    }

    return ((word == NULL) ? (NULL) : (word + 1));
}



вот ф-ция которая не изменяя строки ищет слово.
Код
WCHAR * GetWordInStr (WCHAR *Str, UINT32 WordIDX)
{
    UINT32 i;
    WCHAR *begin, *end;
    WCHAR *word, symbl;

    if(Str == NULL || WordIDX <= 0)
        return NULL;

    begin = Str;
    while(*begin == L' ') begin++;

    end = Str + u_strlen(Str);
    while(*end == L' ') end--;

    //Save symbol
    symbl = *(end + 1);
    *(end + 1) = 0;

    word = begin;
    for(i=0; i<WordIDX-1; i++)
    {
        word = u_strstr(begin, L" ");
        if(word == NULL) break;

        while(*word == L' ') word++;
        begin = word;
    }

    *(end + 1) = symbl;
    return word;
}


код приложения:
Код

    WCHAR str[] = L"   !sfgsdg  sd s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD   ";

    udbg("String before search '%s'\n", str);

    udbg("1 word pointer: %s", GetWordInStr(str, 1));
    udbg("2 word pointer: %s", GetWordInStr(str, 2));
    udbg("3 word pointer: %s", GetWordInStr(str, 3));
    udbg("4 word pointer: %s", GetWordInStr(str, 4));
    udbg("5 word pointer: %s", GetWordInStr(str, 5));
    udbg("6 word pointer: %s", GetWordInStr(str, 6));
    udbg("7 word pointer: %s", GetWordInStr(str, 7));
    udbg("8 word pointer: %s", GetWordInStr(str, 8));

    udbg("String after search '%s'\n", str);


лог мидвея:
Код
Testing: dbg: @39: String before search ''
   !sfgsdg  sd s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 1 word pointer: !sfgsdg  sd s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 2 word pointer: sd s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 3 word pointer: s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 4 word pointer: skdjfhgds 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 5 word pointer: 1231231123   asdjkf ak OLOLO xDD  
Testing: dbg: @39: 6 word pointer: asdjkf ak OLOLO xDD  
Testing: dbg: @39: 7 word pointer: ak OLOLO xDD  
Testing: dbg: @39: 8 word pointer: OLOLO xDD  
Testing: dbg: @39: String after search ''
   !sfgsdg  sd s    skdjfhgds 1231231123   asdjkf ak OLOLO xDD  


Думаю комментарии излишни smile.gif
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 4.10.2010, 0:30


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 464



zema00, я у себя исправил косяк с балансом.
вот код:
Код

    info_balance.info.str[0] = 0;
    if (info_balance.Words[0] != '0')
    {
        //Удаляем пробелы в конце строки
        WCHAR *pointer = str + u_strlen(str);
        while(*pointer == L' ') pointer--;
        *(pointer + 1) = 0;

        //Пропускаем пробелы в начале строки
        pointer = str;
        while(*pointer == L' ') pointer++;

        //Исчем наше слово
        for(i=0; i<info_balance.countWords; i++)
        {
            WCHAR *ptr = pointer;
            WCHAR *word = pointer;

            for(j=0; j<info_balance.Words[i] - 1; j++)
            {
                word = u_strstr(ptr, L" ");
                if(word == NULL) break;

                while(*word == L' ') word++;
                ptr = word;
            }

            if(word == NULL) continue;

            ptr = u_strstr(word, L" ");
            if(ptr == NULL) ptr = pointer + u_strlen(pointer) + 1;

            u_strncat(info_balance.info.str, word, (ptr - word));
            u_strncat(info_balance.info.str, L" \0", 2);
        }
    }
    else
    {
         u_strncpy(info_balance.info.str, str, INFO_STRING_SIZE);
    }


текст USSD у меня такой: Informer: dbg: @39: req_ussd = Balans=6660r (OP=10000 do 10.10 11:56) Ostatok: MTS=147 MB=14.1
слова в конфиге 1, 7, 8
выводит Balance=6660r MTS=147 MB=14.1
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
zeDDer
сообщение 4.10.2010, 7:04


mCore hacker
*****

Группа: Разработчики
Сообщений: 474
Регистрация: 27.6.2007
Из: Беларусь, Слуцк
Пользователь №: 139 587
Модель телефона: V3x
Прошивка: У вас такой нет)
Финалист Конкурса 2010

Рейтинг: 464



Кстати, вот подправленное обнаружение слов от ома:
Код
        for (i=0; i < INFO_STRING_SIZE; i++)
        {
            if ((str[i] == L' ' && str[i+1] != L' ') || str[i] == L'\n' || str[i] == 0)
            {
                n++;
                for (j=0; j < info_balance.countWords; j++)
                {
                    if (info_balance.Words[j] == n)
                    {
                        u_strncat(info_balance.info.str, str+b, i-b);
                        u_strncat(info_balance.info.str, L" \0", 2);
                        break;
                    }
                }
                b=i+1;
            }
        }
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Unreal_man
сообщение 28.6.2015, 5:04


Гуру
******

Группа: Разработчики
Сообщений: 720
Регистрация: 16.12.2009
Из: Другого Края Земли
Пользователь №: 211 211
Модель телефона: Motorola Moto Z Play


Настроение:
:-I



Рейтинг: 515



У кого есть рабочий Гисметео? А то скачал из шапки, а то после добавления в авторан, после перезагрузки он включается, а после перезагрузки уже не работает. И не обновляется как я понял. Ни в ручную ни авто. Создается файл xml 0.5кб. Когда открываю его то он какой-то обрезанный в сравнении с тем что архиве лежит. Проверьте у себя пожалуйста или дайте рабочий или я что не так сделал.

Сообщение отредактировал Unreal_man - 28.6.2015, 5:18
Юзер вышелВ друзьяВизиткаП/Я
К началу страницы
+Ответить
Elf's and mod's by zema00, погодный информер · Эльфы, их разработка и портирование · Forum
 

6 страниц V « < 4 5 6
Ответ в темуСоздание новой темы
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 28.3.2024, 14:00

Форум живёт: