PDA

View Full Version : سوال: مشكل با KDPhone DigitDetected



merced
چهارشنبه 08 خرداد 1387, 22:11 عصر
يه برنامه تلفن گويا هست كه قرار است كدي از كاربر بگيرد.

1- رويداد DigitDetected بعضي وقتا ها (كم) اجرا نميشه .
2- اگر كاربر يك عدد را به سرعت وارد كند به ترتيب وارد نمي شوند .. ولي اگر به آرامي اين كار را انجام دهد برنامه بدرستي عدد رو شناسايي مي كنه .

ممكن هست به خاطر شرط هاي زياد داخل اين تابع اين اتفاق ميفته ؟؟‌

مهران موسوی
پنج شنبه 09 خرداد 1387, 00:30 صبح
ميشه بگيد چه شرطهايي گذاشتين ؟؟

بهتره اول با يك روال كد رو بگيريد بعد پاس بديد به يك تابع تا پردازش لازم روش انجام بشه ... اگه بخوايين هم عمليات دريافت و پردازش رو يك جا انجام بديد زياد جالب نميشه ...

merced
شنبه 11 خرداد 1387, 19:22 عصر
ممنون. درسته . ولي من تو digit detect چك مي كنم كه الان در كدوم مرحله از دريافت اطلاعات هستيم. و اونوقت تابع مورد نظر رو فراخواني مي كنه. برنامه بايد پويا باشه و به ازاي هر دكمه كه فشرده شد تمام شرط ها چك شده و تابع مورد نظر فراخواني شود .

مهران موسوی
شنبه 11 خرداد 1387, 19:39 عصر
شما پشت سر هم digit detect رو چك ميكنيد ؟ در طول اجراي برنامه هميشه در حال چك كردن هستيد ؟

merced
شنبه 11 خرداد 1387, 20:01 عصر
مسلمه !! هر وقت رويدادش اجرا بشه بايد مشخص بشه كه كدوم تابع فراخواني بشه .
شما فرض كن وقتي كاربر 12 رو زد يه پيغام ميده و يه عدد ديگه بايد بگيره و دوباره همين روال ادامه داره تا وقتي به عدد آخري برسه .

مهران موسوی
یک شنبه 12 خرداد 1387, 01:39 صبح
خوب شما وقتي كاربر مثلا 12 رو زد تا بعد از پخش پيغام نيازي به دريافتdigit detect ندارين .. اين بستگي به خودتون داره كه برنامتون رو به بهينه ترين شكل ممكن بنويسيد تا مشكلي در اون به وجود نياد .. بهتون پيشنهاد ميكنم از قابليتهاي چند وظيفه اي كه در دلفي به اساني در اختيارتون قرار ميگيره استفاده كنيد ... ( Thread )

babak_delphi
یک شنبه 12 خرداد 1387, 18:19 عصر
ایم مشکل مربوط به شما نیست بلکه ضعفِ سخت افزار است
مودم هم برای تن ها و صداهای خروجی و هم ورودی کلاً از یک بافر استفاده می کند
به همین دلیل در زمان پخش صدا اگر چند DTMF پشت سر هم و به سرعت دریافت شود ممکن است DTMF اول را از دست بدهید
همانطور که گفتم این مربوط به تک بافر بودن مودم است و مشکل از شما نیست
یا باید از سخت افزار دیگری استفاده کنید و یا الگوریتم برنامه را طوری تغییر دهید که احتمال وقوع این مشکل به حداقل برسد.