Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.217.65.190] |
|
Сообщ.
#1
,
|
|
|
Ребят, у меня есть просьба следующего плана:
Мне нужен таймер для ВинМобайл очень своеобразный, но проблема в том, что я под эту ось никогда не писал и честно-говоря не совсем представляю как и чего пишется. Таймер нужен следующий: - есть 4 поля ввода, куда вводят числа (время паузы между сигналами в секундах) - 5-ое поле ввода - количество повторений N - кнопка "поехали" Нужно, чтобы при нажатии на этой кнопке таймер сделал N повторений следующего цикла: пауза1 бипнули неким образом, пауза2 бипнули, пауза3 - бипнули, пауза4 - бипнули Если какая-то из пауз нулевая - фазу можно пропустить. На Делфи это выглядело бы примерно так: procedure timer() const paus_cnt = 4; var n, i, j : word; pause : array [1..paus_cnt] word; begin //тут заполнение n и массива pause { ИЗ серии pause[1]:=strtoint(form1.edit1.text); pause[2]:=strtoint(form1.edit2.text); pause[3]:=strtoint(form1.edit3.text); pause[4]:=strtoint(form1.edit4.text); n :=strtoint(form1.edit5.text); } for i:=1 to n do for j:=1 to paus_cnt do if pause[j]>0 then begin sleep(1000*pause[j]); windows.Beep(456,300); //frequency, duration end; end; И еще хотелось бы, чтобы при выходе эта программка сохраняла все своим данные в файлик, а при котрытии - считывала их. Вот пожалуй и все. И я хотел бы попросить, если это возможно, чтобы кто-то собрал подобный код и приложил к сообщение в откомпилированном виде. У меня кажись Windows Mobile 6.1 Professional |
Сообщ.
#2
,
|
|
|
Ставь таймер SetTimer на минимальный шаг.
С этим шагом тебе либо будет приходить сообщение WM_TIMER, либо вызываться твой обработчик - по желанию. (либо OnTimer) Считай количество вызовов. Далее в цикле для каждого периода, если counter%(period/step) == 0, то вызывай обработку + выход из цикла. Имхо, самый простой вариант, но безусловно не realtime. Вот ещё можно почитать про одиночный таймер-колесо |
Сообщ.
#3
,
|
|
|
SVK, спасибо, просто пока что я смутно представляю на чем писать такие приложения (под ВинМобайл), как их отлаживать, какие системные вызовы и т.д. И разбираться ради 1 приложения - большого смысла не вижу, особенно, учитывая, что следующее писать, скорее всего буду нескоро.
Учитывая, что по моим оценкам, чтобы написать такое требуется минут 15-20 при знании всей этой кухни, я решил, что сделать это за меня - будет не слишком большой наглостью. Особенно, учитывая, что в других разделах я сам помогаю вроде не так и мало. Ну, конечно, если так думаю только я, то через день-другой буду или разбираться или искать вариант с оплатой. Не думаю, что такой скриптик может стоить много. |
Сообщ.
#4
,
|
|
|
Soul , дело в том, что программирование для ВинМобайл, в данном случае, почти ничем не отличается от программирования для Windows XP/Vista/7 . Единственная трудность - в WinCE нет функции Beep, поэтому придется проигрывать wav.
Мне вот только не понятно, в названии топика говорится о таймере (т.е. асинхронная работа), в твоем же коде используется sleep (синхронная работа). Что именно тебе надо? Если синхронная, то код у тебя уже есть, надо его только переписать на C++. |
Сообщ.
#5
,
|
|
|
Таймер я имел в виду не системный, а тот, который в мобильниках, например.
Одним словом: я каждый день делаю определенные упражнения, для которых я хочу задавать себе ритм выполнения и постепенно увеличивать некоторый фазы для прогресса. Вот и все. Но компилировать-то, наверное, надо как-то иначе? Ведь не будут же вин32 приложения бегать под ВинМобайл? На С++, конечно, переписать не проблема. Как организовать контролы и проиграть wav-ку? |
Сообщ.
#6
,
|
|
|
Цитата Soul @ Эх, опередил мои предположения. Может тебе тогда попробовать уже готовое ПО? поиск по слову метроном (из прошлого Palm, помню достаточно большую массу подобного ПО, в том числе и с несколькими таймерами). Например: Open Metronome я каждый день делаю определенные упражнения, для которых я хочу задавать себе ритм выполнения и постепенно увеличивать некоторый фазы для прогресса. Вот и все. |
Сообщ.
#7
,
|
|
|
Цитата Soul @ Но компилировать-то, наверное, надо как-то иначе? Ведь не будут же вин32 приложения бегать под ВинМобайл? Я свой диплом писал и отлаживал на PC А потом просто перекомпилировал под ВинЦе и все заработало Так что можешь взять VS2008, поставить нужный SDK, сделать 2 проекта, один для PC (простой Win32), другой для Smart Devices. Проекты можешь положить в одну папку и они должны включать одни и теже файлы. Вот и все. Такой способ таботает как часы Цитата Soul @ Как организовать контролы и проиграть wav-ку? wav проиграть PlaySound'ом. Контролы организовывай так, как тебе удобно Только учти размер дисплея |
Сообщ.
#8
,
|
|
|
Спасибо, поставил вот эту штуку: http://4pda.ru/forum/index.php?showtopic=214478&hl=%EC%E5%F2%F0%EE%ED%EE%EC
мне вполне подходит. |